求帮忙,我数码管显示1到9的单片机编程哪里错了

2019-03-24 17:05发布

请大佬看一下哪里错了
#include <STC12C5A60S2.H>


char num[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}
void Delay1000ms();

void main()
{
  char i=1;
  P13=0;
        P22=0;
        P21=0;
        P20=0;
        P11=0;
         while(1)
         {
         P0=num[i];
         i++;
         if (i>=9);
         i=0;
         Delay1000ms();
         }
       
        }
void Delay1000ms()                //@32MHz
{
        unsigned char i, j, k;

       
        i = 122;
        j = 152;
        k = 234;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}       
        此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
dong2213dong
2019-03-24 21:11
如果你的程序是完整的:
1.为什么变量 i 初始化成1,数组元素的下标是从0开始的
2. P13=0; P22=0; P21=0;P20=0;P11=0;这几个变量是不是应该用sbit先定义?
3. if (i>=9);
          i=0;   这个if语句后面加上;之后,判断就相当于没有一样
建议楼主先找个Demo跑通,然后对照着找自己程序的问题

一周热门 更多>