串口发送培燃的AT数据是直接给蓝牙模块的,这个串口可以是PC串口也可以是单片机串口。
如果你想用单片机实现AT指令设置蓝牙,就用一个IO控制蓝牙模块的KEY管脚,把AT指令写在程序中,通过串口发送给蓝配亏虚牙模块。参考《吴鉴鹰单片机项目实战精讲》
#include<reg52.h> //串口通信打印与数码管#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6 //申明锁存器1
sbit wela=P2^7 //申明锁存器
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} //定义数码管段选
uchar flag //标志位
uchar a,b,e,f,g,h
void delay(uint x) //毫秒级延时
{
uint i,j
for(i=xi>0i--)
for(j=110j>0j--)
}
void display(uchar e,uchar f) //数码管显示函数
{
wela=1 //位选
P0=0xfe
wela=0
P0=0xff //消影
dula=1 //段选
P0=table[e]
dula=0
delay(1)
wela=1 //族禅位选
P0=0xfd
wela=0
P0=0xff //消影
dula=1 //段选
P0=table[f]
dula=0
delay(1)
}
void init()
{
TMOD=0X21 //T1定时器工作方式2 T0定时器工作方式1
TH0=(65536-50000)/256
TL0=(65536-50000)%256 //装初值
TH1=0XFD
TL1=0XFD //定波特率为9600
SCON=0X50
PCON=0X00
ET0=1
TR1=1
EA=1
ES=1
}
void main()
{
init()
while(1)
{
display(e,f)
if(flag==1)
{
ES=0 //关中断
SBUF=a
while(!TI)
TI=0
if(a==1)
{
TR0=1 //开中断旦数
}
if(a==2)
{
TR0=0
}
ES=1
flag=0
}
}
}
void T() interrupt 1
{
TH0=(65536-50000)/256 //兆迟尘重装初值
TL0=(65536-50000)%256
g++
if(g==20)
{
h++
b=h
SBUF=b
while(!TI)
TI=0
g=0
f=h%10
e=h/10
}
if(h==99)
h=0
}
void Th() interrupt 4
{
RI=0
a=SBUF
flag=1
}
单片机将数据通过蓝牙传到手启卜州机,需要经过以下大约3个步骤:1,使用蓝牙转串口模块连接51单片机的RX和TX引脚,这一步实现源端数据转换;
2,手机内部进行APP的程序设计,调用蓝牙模块并读取数据;
3,开启手机蓝牙悄蔽,并打开第二步设计的APP软件弊弯,搜索到与单片机相连的蓝牙模块后即可实现数据通信了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)