void ss(void)
{
P0=0x00;
while(1)
{
while(sum1<40)
{
while(!flag)
time(sum1,sum2);
sum1++;
sum2++;
flag=0;
time(sum1,sum2);
}
sum1=0;
time(sum1,sum2);
while(sum1<4)
{
while(!flag)
time(sum1,sum2);
sum1++;
sum2++;
flag=0;
time(sum1,sum2);
}
sum1=0;
sum2=0;
time(sum1,sum2);
while(sum2<20)
{
while(!flag)
time(sum1,sum2);
sum1++;
sum2++;
flag=0;
time(sum1,sum2);
}
sum2=0;
time(sum1,sum2);
while(sum2<4)
{
while(!flag)
time(sum1,sum2);
sum1++;
sum2++;
flag=0;
time(sum1,sum2);
}
sum1=0;
sum2=0;
time(sum1,sum2);
}
}
问题在于 while(!flag);时,整个1s的时间内,程序一直在空跑,没有扫描数码管
之后只扫描了一次,所以1s内只扫描了一场,当然不会显示了
改后在等待 flag 变高的过程中,一直在扫描数码管,这样应该就可以了
可以参考一下 这个仿真实例,可以仿真试试。