![单片机C语言程序设计实训100例:基于STC8051+Proteus仿真与实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/270/43738270/b_43738270.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.7 按键调节数码管闪烁增减显示
按键调节数码管闪烁增减显示电路图3-8所示。在该仿真电路运行时,可通过4个按键分别实现数字增、减调节,确定及取消调节功能。在调节过程中,数码管将闪烁显示,确定后恢复正常显示,按下取消按键时将恢复到调节之前的值。
![](https://epubservercos.yuewen.com/DF9E4A/23020648309755406/epubprivate/OEBPS/Images/42553-00-68-1.jpg?sign=1738924960-pefc1tFFYMbqM2tUL17NMInAJJ2N2CAG-0-09b486f36f3d59142cefb252799efe8f)
图3-8 按键调节数码管闪烁增减显示电路
1. 程序设计与调试
对于4个整数的数位分解,本案例程序中使用了循环递减的方法,虽然程序代码比使用整除及取余运算符的程序代码复杂一些,但其分解速度却高于后者。
对于4个按键的处理,要注意加入消抖语句,以防出现操作不稳定的问题,尽管在仿真环境中即使不加入消抖语句也不会影响仿真效果。
为实现增、减调节时数码管的闪烁显示效果,本案例程序使用了Adjust变量。如果该变量为1,则表示进入调节状态,主循环内第二部分中的15次循环及延时在跟踪按键操作的同时,由于延时达150ms,使数码管出现闪烁现象。主循环内第一部分内的循环次数越大(本案例设为35),每150ms的黑屏显示后的正常稳定显示时间就越长,否则正常稳定显示时间越短。
2. 实训要求
① 修改主循环内第一部分的循环次数,观察在增、减调节时的闪烁效果差异。
② 在增、减调节,确定或取消调节时,分别输出不同的提示音。
3. 源程序代码
![](https://epubservercos.yuewen.com/DF9E4A/23020648309755406/epubprivate/OEBPS/Images/42553-00-69-1.jpg?sign=1738924960-cWdQlXwNAkCwluNJMp8Fy1E7faTmSuK5-0-b83cd4d50f9f937d000cf20a3d6927d3)
![](https://epubservercos.yuewen.com/DF9E4A/23020648309755406/epubprivate/OEBPS/Images/42553-00-70-1.jpg?sign=1738924960-5sPKkz5WISwcOYr5XkpR3bN9UB5U361u-0-8444dc4f54b53d59a3f7dee88f16bd35)
![](https://epubservercos.yuewen.com/DF9E4A/23020648309755406/epubprivate/OEBPS/Images/42553-00-71-1.jpg?sign=1738924960-ZvxmkZttcAe9yefY51gVxdYMbZvqHVcD-0-167f645f271546644c2995c306e8c3c0)