做了一个用数码管显示数字,并且让数字每隔一段时间加1的程序,但里面的一个变量count出问题了,百思不得其解:我用count这个变量放在主循环里面每循环一次加1,到1000的时候就归零重新计数,同时显示数字num+1,达到延迟一定时间显示加1的效果,但是调试的时候发现count最大只能到255,然后就归零重计了,数据类型是unsigned int应该没错啊,请大神指教
程序如下:
void main()
{
unsigned int count=0;
long num=3420;
while(1)
{
a[5]=num/100000%10;
a[4]=num/10000%10;
a[3]=num/1000%10;
a[2]=num/100%10;
a[1]=num/10%10;
a[0]=num%10;
disp();
count++;
if(count==1000)
{
num++;
count=0;
}
}
}
void disp()
{
unsigned char i;
for(i=0;i<6;i++)
{
WE=1;
P0=wei[i];
WE=0;
DU=1;
P0=numbercode[a[i]];
DU=0;
delay1ms();
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
void disp()
{
unsigned char i;//吧这里修改成unsigned int i试一试
for(i=0;i<6;i++)
{
WE=1;
P0=wei[i];
WE=0;
DU=1;
P0=numbercode[a[i]];
DU=0;
delay1ms();
}
}
一周热门 更多>