请各位大神帮忙看看,新人刚接触单片机

2019-07-15 18:37发布

做了一个用数码管显示数字,并且让数字每隔一段时间加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();
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
cccsssc
2019-07-16 14:26
亲,我知道你这个问题在哪里,
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();
        }
}

一周热门 更多>