数码管显示程序出错

2019-07-15 23:26发布

#include<reg51.h>
void delay(unsigned int A)
unsigned char code LED[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};


void main()
{
        unsigned int lednum;
        lednum=0;
        while(1)
        {
                lednum++;
                P0=LED[lednum];
                if(lednum==16)
                lednum=0
                delay(600);

        }
}

void delay(unsigned int A)
{       
        unsigned int x,y;
        for(x=A;x>0;x--)
                for(y=110;y>0;y--);
}


出错在第三条语句
我的是共阳极的数码显示  但是报错的结果是
warning C258: 'LED': mspace on parameter ignored
error C244: 'LED': can't initialize, bad type or class
那个LED我都换了好几个字符了都是出现这个错误


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
dongyumin
1楼-- · 2019-07-16 04:55
LED[]数组就16个字节。
你这几条
                lednum++;
                P0=LED[lednum];
                if(lednum==16)
最后一次是LED[16]了。超过数组大小。

评分

参与人数 1积分 +1 收起 理由 冰葑世纪 + 1 您的付出是论坛的动力,感谢您一直支持!.

查看全部评分

mokedeng
2楼-- · 2019-07-16 07:11
 精彩回答 2  元偷偷看……
冰葑世纪
3楼-- · 2019-07-16 08:50
本帖最后由 冰葑世纪 于 2013-7-28 21:49 编辑

lednum 是uint  而数组是uchar  。不同类型。、不过也可以,不是这问题。,是有些语句没加分号
lsw900822
4楼-- · 2019-07-16 12:11
                lednum++;
                P0=LED[lednum];
                if(lednum==16)
                lednum=0   这里就出问题了,LED[llednum]中的lednum 最大只能是15  你怎么能够到16才清零当lednum加到了16的时候应该马上清零   ……      void delay(unsigned int A)  这个参数用什么大写A呢????刚开始学就养成这些坏习惯
dongyumin
5楼-- · 2019-07-16 13:34
函数声明没有分号!delay()调用也没有分号。
冰葑世纪
6楼-- · 2019-07-16 16:40
lednum=0  也没有分号。小伙子,靠谱点、

一周热门 更多>