Keil C51程序编译出现错误 error C129:missing “;”before ‘keydown’

qq_41842636 2019-06-15 10:35:24
#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);
};
}
...全文
888 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
吖如 2019-06-17
  • 打赏
  • 举报
回复
这行之前少了个分号呗
Aist-memory 2019-06-16
  • 打赏
  • 举报
回复
上面问题可能出在你LCD.h头文件里 (LCD.h里可能是缺少一个分号)
潇湘游子 2019-06-16
  • 打赏
  • 举报
回复
意思就是在129行丢了一个分号

70,005

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧