找回密码
 立即注册
楼主: 1986cm

《Ai8051U 入门学习心得》打卡记录

[复制链接]
已绑定手机

1

主题

11

回帖

49

积分

新手上路

积分
49
 楼主| 发表于 2026-5-30 23:46:33 | 显示全部楼层
【第 10 集打卡】学习心得:虚拟调试接口与人机交互进阶
课程让我彻底解锁了 Ai8051U 的虚拟调试功能,不用接任何硬件,就能在电脑上完成 LED、数码管和键盘的调试,同时也学会了如何把虚拟键盘的按键值转换成数码管显示的数字,人机交互能力又进了一步!
一、虚拟调试接口:不用硬件也能调试的神器
课程一开始就教了我如何用 STC-ISP 软件开启虚拟调试接口,这简直是新手的福音:
硬件与软件准备:只需要把开发板通过 USB 连接电脑,在 ISP 软件的 “仿真调试接口” 里选择对应的协议,就能开启虚拟 LED、数码管和键盘窗口,完全不用接任何外设。
LED 虚拟调试:可以直接通过串口发送特定格式的命令,控制 DIP40 封装的 IO 口状态,模拟 LED 的亮灭。比如发送4CH 45H 44H 28H 02H 00H 82H,就能让 P0.3 口输出高电平,LED 点亮。
数码管虚拟调试:支持直接发送段码、字符串、长整型数甚至浮点数,在虚拟数码管上显示出来。比如用SEG7_ShowString函数,就能直接在数码管上显示 “12.3” 这样的字符串,不用自己写段码转换函数。
二、虚拟键盘与数码管联动:从按键值到显示数字
课程里的核心任务,就是把虚拟键盘的按键值转换成数码管显示的数字,这让我第一次接触到了按键值与 ASCII 码的转换:
虚拟键盘的工作原理:按下键盘上的数字键,单片机就会收到对应的按键值(比如数字 0 对应的键值是30H),再转换成对应的 ASCII 码(数字 0 的 ASCII 码是48),最后通过数码管的虚拟接口显示出来。
代码实现逻辑:先定义一个段码表,把数字 0-9 对应的段码存到数组里;然后在串口中断里接收按键值,根据键值找到对应的数字,再查表得到段码,最后发送给虚拟数码管显示。
关键知识点:ASCII 码表:课程里的 ASCII 码表让我明白了,为什么数字 0 的键值30H转换成字符就是 '0',因为30H正好是字符 '0' 的 ASCII 码值。
三、课后任务:按键次数计数与双数码管显示
课程里的两个课后任务,让我把虚拟调试和之前学到的按键消抖、数码管显示结合了起来:
任务 1:虚拟键盘按键在数码管显示对应数字:按下数字键,数码管就显示对应的数字,完美实现了按键与显示的联动。
任务 2:两个按键的按下次数分别在左右数码管显示:用两个独立按键,分别计数按下次数,在左右两个数码管上显示,既用到了按键消抖,又用到了数码管的动态扫描,还能通过虚拟接口实时调试。
四、学习感悟与后续计划
以前调试项目,必须接一堆 LED、数码管和按键,接线麻烦还容易出错。现在有了虚拟调试接口,不用接硬件就能看到效果,调试效率高了不止一倍。而且通过虚拟键盘和数码管的联动,我也更深入地理解了按键值、ASCII 码和段码之间的转换关系,为后续做更复杂的人机交互项目打下了基础。
接下来我会把课程里的课后任务完整实现出来,用两个独立按键分别计数,在双数码管上显示次数,同时用虚拟接口实时调试,进一步熟悉人机交互的开发流程。
回复

使用道具 举报 送花

已绑定手机

1

主题

11

回帖

49

积分

新手上路

积分
49
 楼主| 发表于 2026-10-4 12:33:57 | 显示全部楼层
【第 11 集打卡】学习心得:矩阵键盘扫描
学习了矩阵键盘工作原理、行列扫描逻辑、无阻塞消抖算法,并结合数码管、定时器完成了简易洗衣机综合实训项目,成功从独立按键进阶到矩阵多按键开发,对人机交互系统的整体开发流程有了完整认识。
一、矩阵键盘与独立按键的区别
之前学习的独立按键结构简单,一个 IO 口对应一个按键,编程直观,但缺点非常明显,按键数量较多时会大量占用单片机 IO 资源,无法满足控制面板多按键需求。
而矩阵键盘采用行列交叉布局,利用 IO 口复用扫描方式,用少量引脚就能实现大量按键检测。本次实验使用 2 行 4 列矩阵结构,仅用少量 IO 口就实现了 8 个功能按键,极大节省了单片机引脚资源,也让我理解了家电、仪器设备普遍使用矩阵键盘的原因。
二、矩阵键盘扫描底层原理
本节课彻底讲透了矩阵键盘的扫描逻辑,不再是单纯抄代码。矩阵键盘依靠逐列拉低、读取行电平的方式判定按键:首先将所有行设置为高电平输入状态,依次拉低每一列,再读取行引脚电平。如果某一行出现低电平,说明当前行列交叉位置存在按键按下。通过循环遍历所有列,就能精准识别具体按键编号。
同时结合 1ms 系统时基实现定时扫描消抖,不再使用阻塞延时,保证扫描过程不影响数码管显示、定时任务运行,实现按键灵敏、稳定、无连按。
三、无阻塞按键消抖技术应用
以前写按键程序大多使用延时消抖,会阻塞程序运行,导致数码管闪烁、任务卡顿。今天学习的定时器扫描计数消抖非常实用:在定时中断中持续检测按键电平,连续多次检测到稳定电平后,才判定按键有效,完美过滤机械抖动干扰。
这种写法属于工程级写法,响应快、稳定性高、不占用主循环资源,非常适合多任务项目。
四、简易洗衣机综合项目实战
洗衣机实训是一次完整的多模块综合训练,整合了我前面所学的所有知识点:
1. 矩阵按键作为功能面板,实现模式切换、启动控制;
2. 数码管动态扫描实时显示当前模式、倒计时时间;
3. 定时器中断做系统时基与倒计时任务;
4. 利用状态机区分待机、设置、运行三种工作状态。
通过按键切换不同洗衣模式,系统自动匹配对应工作时长,按下启动后开始倒计时,倒计时结束自动停止运行,完整模拟真实洗衣机的工作逻辑。让我真正体会到单片机项目是多模块协同工作,而不是单一功能代码堆砌。
五、调试问题与经验总结
在调试过程中,我遇到过按键误触发、扫描错乱、多键冲突等问题。排查后发现主要是行列扫描顺序不规范、电平读取时机不稳定导致。通过规范 IO 输入输出模式、优化扫描频率、增加按键锁定标记,成功解决所有问题。
回复

使用道具 举报 送花

已绑定手机

1

主题

11

回帖

49

积分

新手上路

积分
49
 楼主| 发表于 2026-10-4 17:50:51 | 显示全部楼层
【第 12 集打卡】学习心得:系统复位
本次课程学习了 单片机的硬件复位、软件复位,并结合密码锁项目实操看门狗、手动软件复位等功能,我对单片机复位机制有了完整的理解。
一、复位分类理解
复位分为硬件复位和软件复位两大类:
硬件复位:复位后全部寄存器恢复初始状态,会重新读取烧录时配置的硬件选项。包含 4 种类型:
1.上电复位:芯片上电自动触发,烧录软件可勾选上电复位使用较长延时,保证电源稳定后再启动程序;对开机速度有要求时,需要搭配 P3.2/P3.3 上拉电阻。
2.低压复位:勾选允许低压复位后,当 VCC 供电电压低于设定阈值(2.0V/2.4V 等),单片机会自动复位,防止低压下程序跑飞;不勾选低压复位时,则只产生低压中断标志,不会直接复位。
3.复位脚复位:需要取消勾选复位脚用作I/O口,复位引脚外接按键 + 电阻,低电平触发硬件复位,适合外部硬件按键重启。
4.看门狗复位(WDT):内部独立计数器,启动后持续计数。如果程序长时间不执行 “喂狗(清零看门狗)”,计数器溢出,直接触发系统复位。看门狗是程序跑飞、卡死时的自救机制,可以设置不同分频系数来调整溢出时间。本次密码锁任务要求 1s 看门狗超时复位,需要匹配对应的分频参数,在主循环里定时喂狗。
5.软件复位:通过操作IAP_CONTR寄存器的 SWRST 位触发。软件复位不会重新读取硬件选项,仅除时钟相关寄存器外,其余寄存器复位。可以选择复位跳转地址:复位回到用户程序区从头运行,也可以跳转到 ISP 下载区,实现代码里一键进入下载模式。密码锁任务中 P3.3 按键手动重启,就是用软件复位实现。
二、结合密码锁项目的收获
课后密码锁任务,把复位知识落地到工程中:
1.开机先显示 3 秒版本号U 1.00,复位后都会重新执行这段开机代码;
2.开启看门狗,1 秒超时自动复位,程序卡死不喂狗就自动重启,提升系统稳定性;
3.P3.3 按键触发软件复位,一键重启,清空密码输入记录,方便重复测试;
4.密码输入逻辑:依次输入数字,8 位密码正确则显示 open,错误或超时就重置显示。
5.工程关键点:看门狗必须在主循环持续喂狗;如果长时间阻塞(比如长延时),会导致来不及喂狗,直接触发看门狗复位。
三、知识点总结与感悟
复位的核心目的:让单片机进入确定、已知的初始状态,避免寄存器随机值带来程序跑飞、外设异常。
不同复位选型有区别:硬件复位会重载硬件配置,软件复位更轻量,适合代码内部重启;看门狗是嵌入式系统可靠性的常用手段,用来捕捉程序死机。
烧录软件的硬件选项配置非常关键:复位脚用作I/O口、低压复位、上电延时这些选项一旦勾选,固化在芯片里,直接改变芯片上电行为,写代码的同时,必须同步确认硬件选项。
嵌入式开发不能只写业务逻辑(密码锁按键、数码管),系统容错、死机保护(看门狗、复位)同样重要,是产品稳定运行的基础。
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-11-7 13:03 , Processed in 0.067605 second(s), 48 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表