蓝桥杯单片机开发板的数码管的消影
目录
最初认识:
当用定时器定时刷新数码管时,为保证有一定的亮度,所以是不会使用延时函数。动态刷新数码管利用的是人的视觉暂留,人的视觉暂留是0.1-0.4s左右,而我在数码管动态定时刷新一般是设置成1ms或者是2ms刷新一次,由于我试过了5ms去刷新,结果效果非常不好。
分析:
为什么会存在“鬼影”?
我的解决启发来源于
6.5 单片机数码管显示消隐_seven-soft的博客-CSDN博客_数码管显示消隐
再结合这块蓝桥杯单片机的开发板来分析并解决:
先说鬼影的表现形式:
如果是先开段选后开位选,就会在显示的数字之前存在被显示数字的影子。
如果是先开位选后开段选,就会在显示的数字之后存在被显示数字的影子。
以先开段选信号再开位选信号为例:
你开了段选,再开位选,你段选的信号被送进来了,由于是动态刷新,位选信息还是上一根数码管的位选,而位选的某一个位从0变为1还是从1变为0,存在一个瞬态,段选信号来了,而位选信号还保留之前的状态(方便理解,可以认为是脉冲的上升沿或者是下降沿被滞后了,延迟了一段时间,在波形仿真中就可以看到),尽管时间短暂,但也是存在这短时间,而正是由于存在这极其短暂的时间使得存在“鬼影”(暗却存在),如果是白天你是看不到的,但是当你用手去遮着光就可以看到了,晚上就更加明显了,故称为“鬼影”。
同理,先开位选再开段选在被显示数字之后存在影子就明晰了,附上图片:
解决方法:
既然存在一个瞬态,那就屏蔽这个瞬态,(让这个瞬态对我不产生任何影响),在先开段选后开位选之前,让上一个位选信号对我没有影响(不选中任何数码管),所以就应该是先
位选不选择任何数码管(消除影子)->再段选->再位选
或者是
先段选不选中数码管的任何段->再位选->再段选
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?