一开始貌似发错了 现在纠正了 大家看看有没有明显的错误 编译是能通过的
/**************************************************************************************
功能: 在串口调试助手上输入 c1k001、c1k010或者c1k100三种命令串口反馈 OK! 单片机控制I/O
做相应动作 ,输入其他字符串串口反馈 Error! I/O口全部置零
***************************************************************************************/
#include
#include
#include
#define uchar unsigned char
uchar bur[8]={0},flag0,flag1,flag2;
uchar f[5] = "OK!" ;
uchar g[8] = "Error!" ;
uchar buf1[8] = "c1k001", buf2[8] = "c1k010", buf3[8]= "c1k100" ;
int c,d,i=0;
uchar dat;
void UART_Init() //串口初始化,PC串口端设置:波特率19200,8,无,1,无
{
EA = 1;
ES = 1;
SCON = 0x50; //UART工作于模式1,REN=1
TMOD = 0x20; //Timer1工作于模式2
PCON = 0x80; //SMOD1 = 1
TH1 = 0xFD; //波特率19200 Bds at 11.0592MHz
TL1 = 0xFD;
TR1 = 1; //启动Timer1
}
void Uart_SendData(uchar dat) //串口输出函数
{ SBUF=dat;
while(TI==0);
TI=0;
}
//主函数
void main(void)
{
UART_Init(); //串口初始化
P1=0x00;
P2=0x00;
while(1)
{flag0=strcmp(buf1,bur); //比较输入字符串是不是“c1k001”
flag1=strcmp(buf2,bur); //比较输入字符串是不是“c1k010”
flag2=strcmp(buf3,bur); //比较输入字符串是不是“c1k100”
if(i>0) //如果串口有字符输入则进入下面的判断
{
if (flag0==0) // 如果输入字符串是“c1k001”
{ i=0;c=0;
P1=0x01;
P2=0x00;
for (c=0;c