单片机C语言编程出现语法错误!!!!!(想悬赏多点,但我自己是菜鸟,就只有一点了,10分吧,求帮忙)

编译时显示全错!!!!!!

#include<reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit k1=P1^0;//左前
sbit k2=P1^1;//左后
sbit k3=P1^2;//右前
sbit k4=P1^3;// 右后
sbit k5=P1^4;//快速上升
sbit k6=P1^5;//快速下沉
sbit k7=P1^6;//左转
sbit k8=P1^7;//前进
sbit k9=P3^0;//后退
sbit k10=P3^1;//右转
sbit k11=P3^2;// 微调上升
sbit k12=P3^3;// 微调下沉
sbit k13=P3^4;//步进电机2正转
sbit k14=P3^5;//步进电机2反转
sbit k15=P3^6;// 步进电机1正转
sbit k16=P3^7;// 步进电机1反转
sbit k17=P2^0;// 主船体,探测器切换
uc code t[]={0x00,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}

void main()
{

if(k1==0)
{
delay1ms(5);
if(k1==0)
{
P0=0x00;
delay1ms(5);
while(k1==0)
{
if(k2==0)
{
delay1ms(5);
if(k2==0)
{
P0=0x00;
delay1ms(5);
while(k2==0)
{
if(k1==1)
{
delay1ms(5);
if(k1==1)
{
P0=0x00;
delay1ms(5);
while(k1==1)
{
P0=t[2];
}
}
}
P0=t[3];
}
}
}
P0=t[1];

}
}
}

}

第1个回答  2013-07-13
首先你得语言格式不是很好,C语言是模块化的,你可以先把格式写的清晰,然后认真分析程序,像这样的小程序不需要调试就可以看出来哪里有问题
第2个回答  2013-07-13
1、这句uc code t[]={0x00,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};你后面少了分号“;”
2、delay1ms()的函数实体和函数原型呢,没定义的话,KEIL肯定会压力很大啊本回答被提问者和网友采纳
第3个回答  2013-07-13
uc code t[]={0x00,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff}后面少逗号,缺少delay1ms()函数
相似回答