#include<reg52.h>
#define uchar unsigned char
#define uint unsigned uint
uchar a;
void init()
{
TMOD=0x20; //设置定时器1为方式2
PCON=0x00; //设置SMOD(PCON.7)为0,波特率不加倍
TH1=0xfd; //设置波特率初值为9600
TL0=0xfd; //
TR1=1; //启动定时器1
REN=1; //使能接收
SM0=0; //
SM1=1; //设置串口为工作方式1
EA=1; //打开总中断开关
ES=1; //打开串口中断开关
}
void main(void)
{
init();
while(1);
}
void ser() interrupt 4
{
ES=0;
RI=0; //将接收中断标志位清0
a= SBUF; //将接收到的数据赋给a
switch(a)
{
case 31: P2=0x17; break; //前进
case 34: P2=0x1b; break; //右转
case 33: P2=0x27; break; //左转
case 32: P2=0x2b; break; //后退
case 37: P2=0x00; break; //停止
case 35: P2=0x17; break; //加速
case 36: P2=0x2b; break; //减速
default: break;
}
ES=1;
}
大家帮我看看那里不对,怎么会没反应
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>