|
#include<reg52.h>//声明头文件
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
uchar a=0;//定义一个变量a,用来读取串口的数据
void delay(uint z)//一个带参数的延时程序
{
int i,j;//定义两个变量
for(i=10;i>0;i--)
for(j=z;j>0;j--);//将参数z赋值给j
}
void init()//初始化子程序
{
TMOD=0x20; //设置定时器T1为工作方式2
TH1=0xfd;
TL1=0xfd; //T1定时器装初值
TR1=1; //启动定时器T1
REN=1; //允许串口接收
SM0=0;
SM1=1; //设置串口工作方式1
EA=1; //开总中断
ES=1; //开串口中断
}
void main()//主程序
{
init();//调用初始化子程序
while(1)//死循环
{
switch(a)//判断a从串口读取到的数据
{
case 0001://如果是0x1f就前进
P2=0x01;
break;
case 0002://如果是0x2f就后退
P2=0x02;
break;
case 0003://如果是0x3f就左转
P2=0x04;
break;
case 0004://如果是0x4f就右转
P2=0x0f;
break;
case 0x05://如果是0x00就停止
P2=0xf0;
break;
}
}
}
void chuan() interrupt 4//串口中断服务程序
{
RI=0;//软件清除串口响应
a=SBUF;//读取单片机串口接受的蓝牙模块发送的数据
}
|
|