关于用单片机实现数码管动态扫描显示

来源:百度知道 编辑:UC知道 时间:2024/06/11 00:34:02
我用数码管做个时钟,为什么数码管显示就1位很亮,其他位都很暗,,???哪位知道怎么回事?还有,当我按下一按键(按下后,时间不走,进入调试状态),按键后数码管就值显示最亮的那个了,其他的全部灭了~~~该怎么解决这个问题?我用C编的,动态扫描延时2ms

那是因为你第一个扫描的时间比较长,原因是你第一个的扫描时间=显示函数中的延时+其他程序循环的时间;

解决的方法有两个:一、除了在显示函数里面显示外,其他地方都关闭显示,也就是说,在返回显示函数的时候,关闭所以的显示;
二、就是在定时中断里面显示

如果是数码管动态显示,那么就是刷新频率造成的。
可以调整一下频率。也就是每个笔段的显示(点亮)时长。
这个是比较繁琐的。
频率太慢,看起来会有闪烁的感觉,或者不能形成有效数字,只是单个显示的循环了。
如果太快就会造成显示为全亮(但亮度不是很高),但是有个别亮度会大一些。那么亮度大的就一定是保持时间长的。

单独做个显示函数,其他地方只是调用。还有扫描时间延长到20ms ,其他中断频率是不是太高了!数码管显示扫描最好用定时器控制,