資源簡介
藍牙程序,非常實用,便于移植,可用于各種模塊程序中。

代碼片段和文件信息
/******************************************
本程序實現的功能:
利用藍牙模塊,手機上的藍牙調試助手和STC12之間實現通信
******************************************/
#include?
#include?“stdio.h“
#define?uint?unsigned?int
#define?uchar?unsigned?char
#define?S2RI??0x01??????????//S2CON.0
#define?S2TI??0x02??????????//S2CON.1
#define?S2RB8?0x04??????????//S2CON.2
#define?S2TB8?0x08??????????//S2CON.3
uchar?table0[20]=“i?love?you!“;???//STC12串口1接收字符串數組
uchar?table1[20];????//STC12串口1接收字符串數組
uchar?cnt0cnt1;
void?Delay1000ms() //@11.0592MHz
{
unsigned?char?i?j?k;
i?=?43;
j?=?6;
k?=?203;
do
{
do
{
while?(--k);
}?while?(--j);
}?while?(--i);
}
/****************串行口1、2初始化函數****************/
void?InitUART()
{ //?串口1波特率為115200bps
PCON?&=?0x7F; //波特率不倍速
SCON?=?0x50; //8位數據可變波特率,接收允許
AUXR?|=?0x40; //定時器1時鐘為Fosc即1T
AUXR?&=?0xFE; //串口1選擇定時器1為波特率發生器
TMOD?&=?0x0F; //清除定時器1模式位
TMOD?|=?0x20; //設定定時器1為8位自動重裝方式
TL1?=?0xFD; //設定定時初值
TH1?=?0xFD; //設定定時器重裝值
ET1?=?0; //禁止定時器1中斷
TR1?=?1; //啟動定時器1
ES??=?1;?????????//開串口1中斷
//串口2波特率為115200bps
AUXR?&=?0xF7; //波特率不倍速
S2CON?=?0x50; //8位數據可變波特率
AUXR?|=?0x04; //獨立波特率發生器時鐘為Fosc即1T
BRT?=?0xFD; //設定獨立波特率發生器重裝值
AUXR?|=?0x10; //啟動獨立波特率發生器
????IE2?=0x01; //開串口2中斷??ES2=1
EA=1;????//開總中斷
}
?char?putchar1(unsigned?char?dat)?//使用串口1發送1字節,執行此函數后會有返回值
{
TI=0;
SBUF=dat;?//使用串口發送數據
while(!TI); ?//等待發送完畢
TI=0; //申請串口中斷標志置零
return?SBUF;??//返回串口發送緩沖器的數據
}
/********************************************\
|*???????功能:?串口1發送字符串子函數? ??*|
\********************************************/
void?UART_1PutString(unsigned?char?*buf)
?{
while(*buf)
??????putchar1(*buf++);
}
void?putchar2(unsigned?char?c)?//串行口2發送一個字節
{
????S2BUF?=?c;
????while(!(S2CON&S2TI));??//若S2TI=0,在此等待
????S2CON&=~S2TI; ??//S2TI=0
}
/********************************************\
|*???????功能:?串口2發送字符串子函數? ??*|
\********************************************/
void?UART_2PutString(unsigned?char?*buf)
?{
while(*buf)
??????putchar2(*buf++);
}
void?main()
{?
InitUART();????//初始化串口1、串口2
while(1)
{
???UART_2PutString(table0); //串口2發送數據到手機藍牙調試助手
???UART_1PutString(table1);??//串口1發送手機藍牙調試助手發來的數據到PC
???cnt1=0;
???Delay1000ms();
}
}
/************串行口1中斷處理函數*************/
void?UART_1Interrupt(void)?interrupt?4
{
if(RI==1)
{
RI=0;
table1[cnt0]=SBUF;
cnt0++;
}
}
/************串行口2中斷處理函數*************/
void?UART_2Interrupt(void)?interrupt?8
{
if(S2CON&S2RI)
{
S2CON&=~S2RI;
table1[cnt1]=S2BUF;
cnt1++;
}?
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-01-13?22:30??藍牙模塊調試\
?????文件?????????926??2014-09-26?17:57??藍牙模塊調試\main.lst
?????文件????????2459??2014-09-26?17:57??藍牙模塊調試\main.obj
?????文件?????????830??2014-09-26?17:57??藍牙模塊調試\usart.lst
?????文件????????2870??2014-09-26?17:57??藍牙模塊調試\usart.obj
?????文件????????6466??2015-01-12?15:33??藍牙模塊調試\藍牙模塊.LST
?????文件????????8855??2015-01-12?15:33??藍牙模塊調試\藍牙模塊.OBJ
?????文件????????2967??2015-01-12?17:43??藍牙模塊調試\藍牙模塊.c
?????文件????????7851??2015-01-12?15:33??藍牙模塊調試\藍牙模塊調試
?????文件????????9635??2015-01-12?15:33??藍牙模塊調試\藍牙模塊調試.M51
?????文件????????1407??2015-01-12?15:33??藍牙模塊調試\藍牙模塊調試.hex
?????文件??????????52??2015-01-12?15:33??藍牙模塊調試\藍牙模塊調試.lnp
?????文件?????????181??2015-01-13?22:30??藍牙模塊調試\藍牙模塊調試.plg
?????文件???????55234??2015-01-13?22:30??藍牙模塊調試\藍牙模塊調試.uvopt
?????文件???????13282??2014-09-27?16:42??藍牙模塊調試\藍牙模塊調試.uvproj
?????文件???????55234??2015-01-13?22:08??藍牙模塊調試\藍牙模塊調試_uvopt.bak
?????文件???????13482??2014-09-26?18:23??藍牙模塊調試\藍牙模塊調試_uvproj.bak
- 上一篇:經典平差程序
- 下一篇:GL studio licese.rar
評論
共有 條評論