单片机c语言程序出了个问题,想请教大家

来源:百度知道 编辑:UC知道 时间:2024/06/08 10:33:08
这是一个用单片机c语言写的关于4*4小键盘输入显示的程序.我建立了两个模块即两个程序文件keypad.c和main.c分别来存放小键盘的输入函数,和主程序.build编译是出现了一个错误:"小键盘的输入.C(62): error C141: syntax error near 'char', expected 'while'";
请大家帮忙分析一下
这是keypad.c文件
#include<regx51.h>
code char key_code[]={0x7e,0xbe,0xbd,0xbb,0xde,0xdd,0xdb,0xee,0xed,0xeb,0x7d,0x7b,0xe7,0xd7,0xb7,0x77};
code ksp[]={0x7f,0xbf,0xdf,0xef}; void delay(void)
{
unsigned char i,j;
for(i=0;i<5;i++);
for(j=0;j<255;j++);
;
}
char keypad_scan()
{
char key,i;
P2=0xf0;
while(P2!=0xf0)
do {
for(i=0;i<3;i++)
{
P2=ksp[i];
if(P2!=ksp[i])
{
delay();//延时消抖后再判断该行有无键按下
key=P2;
if(key!=ksp[i]) return (key);
}

}while(1);
}
char gotkey()
{
char temp,i;
temp=keypad_scan();
for(i=0;i<16;i++)
{if(temp==key_code[i])
ret

error C141: syntax error near 'char', expected 'while'";
语法错误啊:仔细看看这几行吧:
while(P2!=0xf0)
do {
for(i=0;i<3;i++)
{
P2=ksp[i];
if(P2!=ksp[i])
{
delay();//延时消抖后再判断该行有无键按下
key=P2;
if(key!=ksp[i]) return (key);
}

}while(1);

这个是什么。,我怎么看不懂呢