显示程序改为:
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);
}
}
如还有问题。反馈下你的结果。我再改其他地方。
可能是你的数码管显示消隐有问题
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;
如果你是用扫描点亮屏幕,注意每次关断的时间不要超过16ms,否则会感觉闪;因为人眼睛视觉差的问题;一般不建议超过10ms比较好;
楼上说对了...动态扫瞄要注意消隐时间,因为会有视觉暂留问题..太长时间的消隐..会让你感觉屏幕闪动...