单片机数码管重影和闪烁
在进行数码管动态扫描时,经常出现相邻LED某些段位微亮的重影。
产生重影的原因:
由于数码管是由发光管组成的,发光管是有反应时间的,太快就会因为发光管没有来的急放电就要显示下一状态,两种状态叠加显示,就成了重影。’
其实LED的响应时间在纳秒级,相当快。但是人的眼睛有视觉滞留的特点,所以当你扫描时间太短的时候,某一个段码已经由亮转为暗,但是人的眼睛还没有反应过来,还以为它是亮的,接着下一个段码就被点亮了,所以就出现了重影现象。如果用高速的摄像机拍摄下来,仔细分析每一帧,是会发现LED段码的确按照你的要求在亮或者灭,只是停留时间较短而已。
解决重影的办法:
1.显示前先将所有数码管熄灭,然后再显示。
2.除了显示数码外,其他时间都是熄灭的。
3.检查是否存在交替显示不同数字。
4.扫描速度要足够快。
如果数码段选端连接P0,则共阴极数码管消除重影为:
#define SEGPORT P0
sbit bit_select = P2^0;
sbit seg_select = P2^1;
SEGPORT = 0;
seg_select = 1;
seg_select = 0;
SEGPORT = 0xff;
bit_select = 1;
bit_select = 0;
闪烁:
如果停留时间太长的话,也就意味着暗的时间太长,人眼没能将亮暗的变化连续起来。就像拍摄电影,如果帧数较少的时候,在激烈动作的时候会出现跳帧。换个例子,就像本来每秒24帧的静态图片可以在人眼中形成连续的画面,你从中间抽取10帧画面,还在一秒内重放这些画面,就会感觉到闪烁。