|
数码管动态扫描时间哪怕是几十ms一样会闪烁,可能还有其他什么问题啊?我数码管显示程序是在定时中断里的程序是这样的
void display(unsigned char time)
{
unsigned char count1,count2,data1,data2;
count1=time%10;
count2=time/10;
data1=(time+2)%10;
data2=(time+2)/10;
if(green1==1)
{
p22=0;P0=led[count2];delay1ms(5);p22=1;
p23=0;P0=led[count1];delay1ms(5);p23=1;
p24=0;P0=led[data2];delay1ms(5);p24=1;
p25=0;P0=led[data1];delay1ms(5);p25=1;
}
if(green2==1)
{
p22=0;P0=led[data2];delay1ms(5);p22=1;
p23=0;P0=led[data1];delay1ms(5);p23=1;
p24=0;P0=led[count2];delay1ms(5);p24=1;
p25=0;P0=led[count1];delay1ms(5);p25=1;
}
if(yellow1==1)
{
p22=1; p23=1;
p24=0;P0=led[count2];delay1ms(5);p24=1;
p25=0;P0=led[count1];delay1ms(5);p25=1;
}
if(yellow2==1)
{
p24=1; p25=1;
p22=0;P0=led[count2];delay1ms(5);p22=1;
p23=0;P0=led[count1];delay1ms(5);p23=1;
}
}
void dispalytime() interrupt 1
{
if(green1==1) display(nb-t1);
if(green2==1) display(dx-t1);
if(yellow1==1|yellow2==1) display(t1);
if(sos==1) display(t1);
}
|
|