|
剛學(xué)單片機(jī)沒多久,看宋師傅的視頻剛學(xué)到按鍵這一塊。編譯的時(shí)候,提示“main.c(30): error C141: syntax error near 'unsigned'”,是“u8 cnt = 0;”這一行定義變量出錯(cuò),發(fā)現(xiàn)放在main函數(shù)前面就沒問題!癱nt”這個(gè)不是局部變量嗎?為啥放main函數(shù)里面編譯會(huì)出錯(cuò)?另外,發(fā)現(xiàn)定義的bit變量必須放main函數(shù)的最上面,不然編譯也會(huì)出錯(cuò),是什么問題?
#include<reg52.h> //此文件中定義了單片機(jī)的一些特殊功能寄存器
sbit LED1=P2^2;
sbit LED2=P2^3;
sbit LED3=P2^4;
sbit G1=P1^7;
sbit S1=P1^3;
#define u16 unsigned int //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
#define u8 unsigned char
u8 code ledchar[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(u16 i);
void main()
{
bit backup = 1;
bit keybuff = 1;
LED1=0;
LED2=0;
LED3=0;
G1=0;
u8 cnt = 0;
P0=ledchar[cnt];
while(1)
{
keybuff = S1;
if(keybuff != backup)
{
delay(1000);
if(keybuff == S1)
{
if(backup==0)
{
cnt++;
if(cnt>=10)
{
cnt=0;
}
P0=ledchar[cnt];
}
backup = S1;
}
}
}
}
void delay(u16 i)
{
while(i--);
}
|
|