51单片机接收多个蓝牙

51单片机接收多个蓝牙,第1张

蓝牙有RXD与TXD引脚, 用串口通信 ,代码可以参考网上的一些资料 使用AT指令的时候,先使蓝牙模块进入AT模式,然后你就当蓝牙就是命令的接收端,单片机或者PC串口就是命令的发送端(就当蓝牙是独立的模块空芹)。

串口发送培燃的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软件弊弯,搜索到与单片机相连的蓝牙模块后即可实现数据通信了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12242466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存