不是数码管的数在闪烁,我扫描的是2ms,就是一个正常的数显示了,然后不该亮的数码管段总是在用很微弱的灯在闪烁
源码太长字数限制了,放网盘里了,http://pan.baidu.com/s/188k44
不是数码管的数在闪烁,我扫描的是2ms,就是一个正常的数显示了,然后不该亮的数码管段总是在用很微弱的灯在闪烁
追答数码管显示时,一般正确的方法是,在动态显示一个数码管之前,先关闭所有的显示,就是把位选关闭了,这样什么都不会显示。关闭的时间只需要保持一个指令周期即可,然后把要显示的数据送出去,然后再选择在哪个数码管显示。这样就可以解决你的问题了。
参考下面的程序:
SCAN = 0xff; // 送数据时,先关闭显示,以避免重影现象
SEG = seg[cnt]; // 送数据
SCAN = sel[cnt]; // 送出数据后,选择对应的数码管
delay_1ms(1); // 延时1ms(延时时间不能太长,最好不要超过5ms)
我刚改了下程序,http://pan.baidu.com/s/1DrV8P,还是在很微弱的闪,我怀疑还是和ds1302有关,因为我拔掉ds1302,显示四个数,第一个数是5少一竖,第二个数是5,后两个和前两个一样,当我插上ds1302的时候,正常显示时间,还是会有微弱的闪烁,如果我把时间扫描调整一下的话,有时就能看见他就是再变向这四个数,这个闪烁就像人打嗝一样,一会突然一下。求帮忙看下,谢谢了。
追答送数码管数据后,延时多长?
最好把电路也弄上来看一下。
不是数码管的数在闪烁,我扫描的是2ms,就是一个正常的数显示了,然后不该亮的数码管段总是在用很微弱的灯在闪烁
源码太长字数限制了,放网盘里了,http://pan.baidu.com/s/188k44
明白了.
你要在驱动每个字符显示的后面加个关显示.也就是送个"全灭码"!
就会好的.
我刚改了下程序,http://pan.baidu.com/s/1DrV8P,还是在很微弱的闪,我怀疑还是和ds1302有关,因为我拔掉ds1302,显示四个数,第一个数是5少一竖,第二个数是5,后两个和前两个一样,当我插上ds1302的时候,正常显示时间,还是会有微弱的闪烁,如果我把时间扫描调整一下的话,有时就能看见他就是再变向这四个数,这个闪烁就像人打嗝一样,一会突然一下。求帮忙看下,谢谢了。
追答先贴图上来看一下
不是数码管的数在闪烁,我扫描的是2ms,就是一个正常的数显示了,然后不该亮的数码管段总是在用很微弱的灯在闪烁
源码太长字数限制了,放网盘里了,http://pan.baidu.com/s/188k44