#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 ini
tialize, bad type or class
那个LED我都换了好几个字符了都是出现这个错误
你这几条
lednum++;
P0=LED[lednum];
if(lednum==16)
最后一次是LED[16]了。超过数组大小。
评分
查看全部评分
lednum 是uint 而数组是uchar 。不同类型。、不过也可以,不是这问题。,是有些语句没加分号
P0=LED[lednum];
if(lednum==16)
lednum=0 这里就出问题了,LED[llednum]中的lednum 最大只能是15 你怎么能够到16才清零当lednum加到了16的时候应该马上清零 …… void delay(unsigned int A) 这个参数用什么大写A呢????刚开始学就养成这些坏习惯
一周热门 更多>