|
#include<reg52.h>//聲明頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int//宏定義
uchar a=0;//定義一個(gè)變量a,用來讀取串口的數(shù)據(jù)
void delay(uint z)//一個(gè)帶參數(shù)的延時(shí)程序
{
int i,j;//定義兩個(gè)變量
for(i=10;i>0;i--)
for(j=z;j>0;j--);//將參數(shù)z賦值給j
}
void init()//初始化子程序
{
TMOD=0x20; //設(shè)置定時(shí)器T1為工作方式2
TH1=0xfd;
TL1=0xfd; //T1定時(shí)器裝初值
TR1=1; //啟動(dòng)定時(shí)器T1
REN=1; //允許串口接收
SM0=0;
SM1=1; //設(shè)置串口工作方式1
EA=1; //開總中斷
ES=1; //開串口中斷
}
void main()//主程序
{
init();//調(diào)用初始化子程序
while(1)//死循環(huán)
{
switch(a)//判斷a從串口讀取到的數(shù)據(jù)
{
case 0001://如果是0x1f就前進(jìn)
P2=0x01;
break;
case 0002://如果是0x2f就后退
P2=0x02;
break;
case 0003://如果是0x3f就左轉(zhuǎn)
P2=0x04;
break;
case 0004://如果是0x4f就右轉(zhuǎn)
P2=0x0f;
break;
case 0x05://如果是0x00就停止
P2=0xf0;
break;
}
}
}
void chuan() interrupt 4//串口中斷服務(wù)程序
{
RI=0;//軟件清除串口響應(yīng)
a=SBUF;//讀取單片機(jī)串口接受的藍(lán)牙模塊發(fā)送的數(shù)據(jù)
}
|
|