每日一记—蓝牙模块应用(一)

日期:2018.9.27


最近在研究蓝牙模块,先是手机蓝牙串口通信的软件开发,虽然有很多例子,但是对于小白的我还是弄了挺长时间。今天先介绍一下硬件部分的程序设计和仿真。硬件电路采用的是51单片机和蓝牙模块HC-05的连接。单片机程序如下:

#include <reg52.h>

sbit P1_0 = P1^0;        //Êä³ö¿Ú1
sbit P1_1 = P1^1;        //Êä³ö¿Ú2

#define uchar unsigned char;    //´æ´¢½ÓÊÕµ½µÄÐÅÏ¢
uchar tempbuf;

/*³õʼ»¯´®¿Ú*/
void BlueteethInit()
{
	SCON = 0x50;        //´®¿Úģʽ1£¬ÔÊÐí½ÓÊÕ
	TMOD = 0x20;        //T1¹¤×÷ģʽΪ2£¬×Ô¶¯ÖØ×°
	PCON = 0x00;        //²¨ÌØÂʲ»±¶Ôö
	
	REN = 1;
	
	TH1 = 0xfd;         //ÉèÖò¨ÌØÂÊΪ9600
	TL1 = 0xfd;
	
	RI = 0;
	
	EA = 1;             //¿ª×ÜÖжÏ
	ES = 1;             //¿ª´®¿Ú½ÓÊÕÖжÏ
	
	TR1 = 1;            //¶¨Ê±Æ÷¿ªÆô
}
void main()
{
	BlueteethInit();
	P1_0 = 0;
	P1_1 = 1;
	TI = 0;
	while(1)
	{
		if(tempbuf == 0x31)   //Ê®½øÖÆΪ49£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ1
			P1_0 = 1;
		if(tempbuf == 0x30)   //Ê®½øÖÆΪ48£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ0
			P1_0 = 0;
		if(tempbuf == 'A')   //Ê®½øÖÆΪ49£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ1
			P1_1 = 1;
		if(tempbuf == 'B')   //Ê®½øÖÆΪ48£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ0
			P1_1 = 0;
	}
}
void Serial(void) interrupt 4
{
	RI = 0; //¶Á±êÖ¾ÇåÁã
	ES = 0; //¹Ø±Õ´®¿ÚÖжÏ
	tempbuf = SBUF;
	ES = 1;
	SBUF = tempbuf;  //½«ÄÚÈÝ·µ»Øµ½ÊÖ»ú¶Ë£¬¿ÉÔÚÊÖ»ú²é¿´·¢Ë͵ÄÄÚÈÝ
	while(!TI)
		TI = 0;  //д±êÖ¾ÇåÁã
}

由于我是用KEIL编写的,导致复制到这里注释全部乱码,需要注意的就是while循环里的判断,0x31是ASCII数值,对应的十进制字符就是1,0x30对应的是0。然后生成我们需要使用的HEX文件。


protus仿真:

搭建仿真电路

用到的器件如下:

AT89C51、Resistor(Generic)、CRYSTAL、Capacitors(Generic)、LED-、button、compim

需要注意的是X1晶振的数值和U1单片机的数值设置到11.0592MHz,

P1端口的设置

最后在设置中的“program file”中选择刚才生成的HEX,就可以进行仿真了,仿真效果如下,

接下来就是如何测试串口通信效果了。

用Virtual Serial Port Driver 软件实现虚拟串口的连接

虚拟出了com1和com2的连接,从设备管理器中看会更清晰

最后我们把仿真电路中的P1设置为com1,然后打开串口调试助手AccessPort,设置相同的波特率,然后打开串口com2,写入字符1或0,或者A或B,可以实现仿真。

当我输入0后可以将D1的蓝色关闭,同时我再次输入B后可以打开D2为蓝色,

这样我们就实现了硬件电路的仿真工作,将单片机的P1串口替换为蓝牙模块后,通过手机发送相应的字符to那个样会实现点亮和关闭D1和D2的控制。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值