单片机:屏幕闪烁的厉害

字数受限制,迫不得已,放在空间里了。请百度放行!
2025-04-14 08:27:00
推荐回答(4个)
回答1:

显示程序改为:
void disp(uchar top,uchar middle,uchar bottom)
{
uchar i;
dis_array[7]=top/10;
dis_array[6]=top%10;
dis_array[5]=10;
dis_array[4]=middle/10;
dis_array[3]=middle%10;
dis_array[2]=10;
dis_array[1]=bottom/10;
dis_array[0]=bottom%10;

for ( i=0;i<8;i++)
{
show=0xff;
P2=dispcode[i];
show=number[dis_array[i]];
delay_ms(15);
}
}
如还有问题。反馈下你的结果。我再改其他地方。

回答2:

可能是你的数码管显示消隐有问题
show=0xff;
show=number[dis_array[i]];
P2=dispcode[i];
delay_ms(3);
试着改一下

show=number[dis_array[i]];
P2=dispcode[i];
delay_ms(3);
show=0x00;

回答3:

如果你是用扫描点亮屏幕,注意每次关断的时间不要超过16ms,否则会感觉闪;因为人眼睛视觉差的问题;一般不建议超过10ms比较好;

回答4:

楼上说对了...动态扫瞄要注意消隐时间,因为会有视觉暂留问题..太长时间的消隐..会让你感觉屏幕闪动...