C语言不太会~ 错误总是改不掉,求高手帮着改改~ 用51单片机的串口通信来接收发送来的ASCII码,想用switch来判断接收到的这些字符~
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned a;
void init()
{
TMOD=0X20;//设置定时器1为方式2
TH1=0xfd;
TL1=0xfd;//装初值
TR1=1;//启动定时器1
SM0=0;
SM1=1;//设置串口为工作方式1
REN=1;//使能接收
EA=1;//打开总中断开关
ES=1;//打开串口中断开关
}
void main()
{
init();
while(1);
}
void ser()interrupt 4
{
RI=0;//将接受中断标志位清0;
a=SBUF;//将接受到的数据赋值给a
switch(a);
{
case 65: P2=0X17; break;//发送的是A 前进指令
case 66: P2=0X1B; break;//发送的是B 右转指令
case 67: P2=0X27; break;//发送的是C 左转指令
case 68: P2=0X2B; break;//发送的是D 后退指令
case 97: P2=0X00; break;//发送的是a 停止指令
case 98: P2=0X00; break;//发送的是b 停止指令
case 99: P2=0X00; break;//发送的是c 停止指令
case 100: P2=0X00; break;//发送的是d 停止指令
default: break;
}
ES=1;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>