Keil C51程序编译出现错误 error C129:missing “;”before ‘keydown’
#include<reg52.h>
#include"LCD.h"
uchar keydown()
{
uchar i = 0;
uchar key = P2 & 0x0f;
if((P2&0x0f) != 0x0f)
{
delayMs(10);
if((P2&0x0f) != 0x0f)
{
key = P2 & 0x0f;
while((P2&0x0f) != 0x0f);
switch(key)
{
//Key1~4 接P2.4~7
case 0x0e: return 1;
case 0x0d: return 2;
case 0x0b: return 3;
case 0x07: return 4;
}
}
}
return 0;
}
/***********************************************
显示时钟
***********************************************/
void showClock()
{
uchar i = 0;
LCDclear();
for(; i<6; i++)
{
displayField(i);
}
displaySpan('-', ':');
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
/***********************************************
中断加时间
************************************************/
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL1=(65536-50000)%256;
countTimer ++;
if(countTimer == 20)
{
countTimer = 0;
autoAdd1Sec();
}
}
void showLogo(uchar logo[])
{
LCDclear();
displayStr(logo,0,0);
}
void refreshPage()
{
if(g_year != g_LCDyear)
{
g_LCDyear = g_year;
displayField(e_year);
}
if(g_mon != g_LCDmon)
{
g_LCDmon = g_mon;
displayField(e_mon);
}
if(g_day != g_LCDday)
{
g_LCDday = g_day;
displayField(e_day);
}
if(g_hou != g_LCDhou)
{
g_LCDhou = g_hou;
displayField(e_hou);
}
if(g_min != g_LCDmin)
{
g_LCDmin = g_min;
displayField(e_min);
}
if(g_sec != g_LCDsec)
{
g_LCDsec = g_sec;
displayField(e_sec);
}
}
void changeClock()
{
uchar count = 0;
uchar key;
TR0 = 0;
initCousorXY();
while(1)
{
refreshPage();
key = 0;
writeCmd(0x0E);//显示,开光标并闪烁
moveCousor(g_cousorx[count],g_cousory[count]);
key = keydown();
if(key == 2)
{
count ++;
}
if(key == 3)
{
addClkField(count);
}
if(key == 4)
{
subClkField(count);
}
writeCmd(0x0c);//关光标
if(count >= 6)
break;
}
TR0 = 1;
}
void main()
{
uchar mode = 0;//0:显示Logo,1:显示时间
uchar i = 0;
uchar movelen;
uchar logo[] = " welcome!";
uchar move[] = "Tt could be better,but I'm busy."; //貌似最长只能40字节
//uchar move[] = "(*^_^*)";
movelen = sizeof(move)-1;
setDateTime(2013,9,12,18,23,14);
LCDinit();
LCDclear();
showLogo(logo);
while(1)
{
switch(keydown())
{
case 1: mode = ! mode;
if(mode == 1)
{
showClock();
}
else
{
showLogo(logo);
}
break;
case 2: if(mode == 1)
{
changeClock();
}
break;
default: break;
}
if(mode == 1)
refreshPage();
else
{
displayStr(move,1,15-i);
displayStr(" ",1,15+movelen-i);
}
i++;
i = i%(15+movelen+1);
delayMs(200);
};
}