找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3|回复: 0
打印 上一主题 下一主题
收起左侧

按键调频与代码对比

[复制链接]
跳转到指定楼层
楼主
ID:1176683 发表于 2026-11-9 11:14 来自触屏版 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前面讲的数制模块同时可以作为单片机简易开发板用。

这两天趁着周末写了几个适合初学者的小应用。今天就先聊聊第一个:如何用按键来动态调节LED的闪烁频率。

为了让大家看清底层,我特意把代码打印出来做了对比(附实机图与代码图)。

代码逻辑对比(见图1):
这里有两种写法,结果是一样的,但思路不同:

第一种(未注释部分):利用定时器累加变量 t,当 t 超过设定的 Num 值时,利用 BIN4 = ~BIN4; 直接对端口取反,实现翻转,然后 t 清零。

第二种(被注释掉的 /* */ 部分):是完全按状态拆分的写法。前半段 t <= Num 时执行动作1,后半段 t > Num && t <= (2*Num) 时执行动作2,然后再手动把引脚置1或置0。

很多新手会觉得第二种更“好理解”,因为每一段逻辑都写死了。但第一种取反的写法,才是单片机里最原汁原味的位操作。

避坑点:
闪烁间隔时间和数码管的动态扫描如果都在中断里处理,极其容易打架。一定要理清定时器0和定时器1的分工。

下一期,咱们再聊聊跑马灯状态机里,我留下的一个“复位陷阱”。

. (213.65 KB, 下载次数: 0)

.

IMG_20261109_110726.jpg (561.47 KB, 下载次数: 0)

IMG_20261109_110726.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶顶 踩踩
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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