51单片机一位数码管c程序

来源:百度知道 编辑:UC知道 时间:2024/09/19 19:58:04
看一下哪里错了?
#include<reg51.h>
void Delay(unsigned char n)
{unsigned char i;
do { for(i=0;i<23;i++) ; }
while(n--);
}
main();
unsigned char a,P0,P1;
unsigned char code SM[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
a=0;
while(1);
{P1=0xfe;
P0=SM[a];
Delay(20);
a++;
if(a>9){a==0;}}

main();错了
把函数体用{}括起来
还有你P0和P1应该是单片机的口吧?不要用unsigned定义,直接用就行了,用之前先置1。
看看这个能不能用:
#include<reg51.h>
void Delay(unsigned char n)
{unsigned char i;
do { for(i=0;i<23;i++) ; }
while(n--);
}

unsigned char a;
unsigned char code SM[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
main()
{
a=0;
P0=0xff;
P1=0xff;
while(1) //你原来的while(1);是死循环,程序到这就死了,不往下执行
{
{P1=0xfe;
P0=SM[a];
Delay(20);
a++;
if(a>9){a==0;}}
}
}
最后,下次不要发错地方了。