但动态显示中做不到长期点亮,那么就要换种说法:最大可能让它长期亮,就是 数码管最亮的时候。也就是说,数码管亮的时间越长,它就越亮。
又但是,动态显示中,数码管亮的时间越长,几个数码管就会变得一闪一闪的,甚至是,一个亮完另一个亮,跟流水灯似的。这就是所谓的:刷屏!
因此,又得换一种说法:在保证不闪的情况下,最大可能让它长期亮。
这就是主题了——刷新率。这个名词不陌生,以前的显示器,特别是台式显示器上就要调这个参数。调高了(75Hz),显示器支持不了,调低了(50Hz),屏幕忽闪忽闪的。但用在数码管上,估计比较难入座。
从以前的显示器上,可以得到经验,50Hz对人而言,会闪烁。75Hz已经完全看不出来了。降低一点要求,60Hz绝大多数人已经感觉不到闪烁了。这个刷新率怎么用在数码管上?
为了方便计算,以50Hz为例,则周期T=1/F=20ms,也就是20ms重复一周。假设你有4个数码管,则每个数码管有 5ms 的时间。也就是说,这就是“最大可能的时间”了。每隔这“最大时间”切换一位数码管,就能让数码管到达 最大辉度(亮度)了。
当然,最大亮度也不可能超出硬件设计范围,如果硬件设计驱动电流不够,那么软件怎么弄都是白扯!你好,这里仅将现象的原因解释清楚,你在根据自己程序的实际情况作相应调整。
我们知道动态显示的扫描频率理论上不能低于25Hz,实际应用上往往要到30hz以上才会有较好的显示效果。不按按键时显示是正常的,按下按键后显示就抖动,是因为你没按下按键时扫描频率能够满足显示要求,按下之后,由于程序增多以及大量延时等原因使得扫描频率无法满足要求,以至于出现了“抖动”现象。
解决问题的关键就是如何降低按键程序所运行的时间,以保证扫描程序能够按时扫描。
建议将扫描显示部分的程序放置在定时器的中断处理部分,这样可保证扫描频率,另外将按键处理部分的程序中的延时改为定时中断。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)