求帮忙,我数码管显示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
1楼-- · 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跑通,然后对照着找自己程序的问题
努力嘉禾
2楼-- · 2019-03-25 02:44
对,我那个i写错了,改成0了,但是程序总显示我delay函数出错了,这是提示,您看一下


iii.c(5): error C141: syntax error near 'void'

iii.c(26): error C231: 'Delay1000ms': redefinition

iii.c(40): error C231: 'Delay1000ms': redefinition
iii.c - 3 Error(s), 0 Warning(s).
dong2213dong
3楼-- · 2019-03-25 04:50
 精彩回答 2  元偷偷看……
努力嘉禾
4楼-- · 2019-03-25 09:37
嗯,谢谢大佬,现在好啦,这个论坛真的6
wsdymg
5楼-- · 2019-03-25 10:57
果然是新手,根据提示得自己掌握排错得能力。一般从第一个错误开始,你回去检查一下 void前面不就知道错在哪里了。
无影寒冬
6楼-- · 2019-03-25 16:22
 精彩回答 2  元偷偷看……

一周热门 更多>