資源簡介
STC89C52單片機與HC-06模塊下位機測試程序,帶有注釋,不懂的可以到我的博客留言
http://blog.csdn.net/itas109

代碼片段和文件信息
/***********************************************************
STC90C51RD+與HC-06藍牙連線:
藍牙??STC90C51RD+
RXD????TXD
TXD????RXD
其他連線:
P2.0、P2.1、P2.3分別接一個指示燈
!!!!
!!!!注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻
!!!!
手機采用藍牙串口通信助手
最后已改用Android自編藍牙通信軟件
By?itas109
http://blog.csdn.net/itas109
***********************************************************/
#include?
#include?
unsigned?char?tmp;
unsigned?int?c=0;
sbit?led1=P2^0; ????//指示燈0
sbit?led2=P2^1; //指示燈1
sbit?led3=P2^3; //指示燈3
void?init();???//串口初始化
void?send(unsigned?char?a); //單字節發送函數
void?ctrl();?//接收處理函數
void?main()
{
init();
??????????while(1)
??????????{?????????
??????????????????if(RI==1)?????????????????????//?是否有數據到來
??????????????????{
???????????????????RI?=?0;
??????????????????tmp?=?SBUF;???????????????????//?暫存接收到的數據
??ctrl();
??}???????
??????????}
}
?void?init() //串口初始化
?{
? ??ES=0; ??//關中斷
??SCON?=?0x50;????????????????????????//?REN=1允許串行接受狀態,串口工作模式1
??//10位UART(1位起始位,8位數據位,1位停止位,無奇偶校驗),波特率可變
??TMOD?=?0x20;????????????????????????//?定時器1工作于方式2,8位自動重載模式?用于產生波特率
??????????TH1=TL1=0xFD;???????????????????????//?波特率9600?(本次測試采用晶振為11.0592)
??????????
??????????PCON?&=?0x7f;???????????????????????//?波特率不倍增
??????????TR1?=?1; ??//定時器1開始工作,產生波特率
??//發送標志位置0
??TI=0; ??//接收標志位置0
??RI=0;
??
??//EA=0;
??????ES=1;
??????????led1=0; ???????????????????????????//初始化設置3個指示燈全亮
??led2=0;
??led3=0;
?}
???
void?send(unsigned?char?a) //單字節數據發送
{ //注意:若單片機TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻
TI=0;
SBUF=a;
while(TI==0);
TI=0;
if(c%2) //發送指示燈標志,每接收一次,此燈亮滅交替
?led3=1;
else
?led3=0;
c++;
}?
void?ctrl() ????????????//接收處理函數
{
?? ??switch(tmp)
??{
?? case?‘1‘:
led1=1; ??????? ????//收到字符1,指示燈0滅
send(tmp);
break;
case?‘2‘: ?//收到字符2,指示燈1滅
?led2=1;?
?send(tmp);
?break;
case?‘3‘: ????//收到字符3,指示燈0、1亮
?led1=0;
?led2=0;
?send(tmp);
?break;
case?‘4‘: //收到字符4,指示燈0、1滅
??led1=1;
??led2=1;
??send(tmp);
??break;
case?‘5‘: //收到字符5,指示燈3亮
led3=0;
send(tmp);
break;
default:???????????????????//其他,燈全滅
??led1=1;
??led2=1;
??led3=1;
??send(tmp);
??}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????????58??2013-05-22?19:45??README.txt
?????目錄???????????0??2013-05-22?19:43??111\
?????文件????????7562??2013-05-22?18:08??111\10.LST
?????文件????????4140??2013-05-22?18:08??111\10.OBJ
?????文件????????2840??2013-05-22?18:08??111\10.c
?????文件????????4509??2013-05-22?18:08??111\111
?????文件????????7586??2013-05-22?18:08??111\111.M51
?????文件?????????846??2013-05-22?18:08??111\111.hex
?????文件??????????53??2013-05-22?18:08??111\111.lnp
?????文件????????5959??2013-05-22?19:43??111\111.plg
?????文件???????56078??2013-05-22?19:43??111\111.uvopt
?????文件???????13392??2013-05-21?14:03??111\111.uvproj
?????文件???????56076??2013-05-22?18:09??111\111_uvopt.bak
?????文件???????13393??2013-05-18?15:51??111\111_uvproj.bak
?????文件????????6376??2009-05-07?14:37??111\STARTUP.A51
?????文件???????14062??2013-05-22?18:08??111\STARTUP.LST
?????文件?????????749??2013-05-22?18:08??111\STARTUP.OBJ
- 上一篇:IAR for avr 6.11 注冊機
- 下一篇:面部表情識別實驗 報告
評論
共有 條評論