每日一记—蓝牙模块应用(一)
日期: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; //ÉèÖò¨ÌØÂÊΪ9600TL1 = 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Âë¿ØÖÆ×Ö·ûΪ1P1_0 = 1;if(tempbuf == 0x30) //Ê®½øÖÆΪ48£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ0P1_0 = 0;if(tempbuf == 'A') //Ê®½øÖÆΪ49£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ1P1_1 = 1;if(tempbuf == 'B') //Ê®½øÖÆΪ48£¬¶ÔÓ¦ASCIIÂë¿ØÖÆ×Ö·ûΪ0P1_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的控制。
每日一记—蓝牙模块应用(一)相关推荐
- 蓝牙模块hc05原理图_使用步进电机和Android App的蓝牙控制迷你升降机
背景知识视频教程 使用App Inventor创建Android应用viadean.com Arduino微控制器:学习Arduino制作项目 - 国外课栈viadean.com Arduino ...
- 蓝牙模块引起电路干扰
简 介: 本文讨论了在实际中电子信号处理电路中可能会受到高频电磁波干扰的情况.这些情况在普通的课堂中和教科书中往往都会被省略掉.图4电路中所增加的那些看似对于普通信号处理无关的外围电阻.电容,却在保证 ...
- 常见蓝牙模块介绍和AT指令
目录 一.HC-05主从一体蓝牙模块 二.HC-06从机蓝牙模块 三.低功耗BLE蓝牙4.0模块(cc2540或cc2541) 四.JDY-10 蓝牙4.0 BLE模块 五.蓝牙模块LAYOUT注意 ...
- 每日一记--2014.9.22
说好的每日一记呢, 哎,上周接到了老师的任务,要把项目中的后台数据处理代码读懂,于是就没有时间每天搞段小代码来写写了. 但是通过这一周,自己也学到了不少东西. 1. 首先是如何读别人写的代码: 先看 ...
- 蓝牙模块与电脑无线通信--AD测量大电压
单片机的引脚最大输入电压一般为3.3V或者5.0V,电流是25ma,40ma 而电池一般有3.3V-36V不等,电流也是好几A,超过5.0的电池一接到单片机 AD口,可能和三星手机一样.所有我们需要从 ...
- Linux卸载蓝牙模块,Linux 下调试低功耗蓝牙的笔记
蓝牙4.0版本推出了低功耗规范,简称BLE (Bluetooth Low Energy),很多小型设备,例如小米手环,都是使用低功耗蓝牙.要与这类模块连接,主设备的蓝牙模块必须支持低功耗,例如inte ...
- [TPYBoard - Micropython之会python就能做硬件 7] 学习使用蓝牙模块及舵机
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2 ...
- 低功耗蓝牙onscanresult 出来名字为空_浅析BLE5.0蓝牙模块在智能家居的运用
随着物联网渗透到各个行业领域,也使得各个领域对无线模块BLE蓝牙模块的需求激增.BLE蓝牙模块作为无线通信模块的一种,目前在智能家居.智能穿戴.智慧医疗.蓝牙室内定位等领域已经得到广泛应用.今天,小编 ...
- 蓝牙模块怎么指定查询另一个蓝牙模块_蓝牙模块以IPEX端口外接天线、PCB板载天线最为常见...
蓝牙模块作为一种能提供蓝牙通信,进行蓝牙互联的通信模块,之所以能够不用考虑使用位置或使用方向就可以顺利完成短距离的数据传输,就是因为有一个很重要的天线零部件承担着发射和接收指令的使命,由于目前的技术尚 ...
- 单片机蓝牙烧录_蓝牙模块与单片机如何连接?
蓝牙模块与单片机如何连接? 首先我们来看看蓝牙模块 蓝牙模块HC-05: TX连接单片机P3.0口,RX连接单片机P3.1口. 在蓝牙模块连接到单片机上前,首先通过USB-TTL转接器,连接到电脑上后 ...
最新文章
- java判断自己活了多少天_用程序计算你活了多少天
- 很全的SQL注入语句,有SQL漏洞的都可以拿下
- 网页实时聊天之PHP如何实现websocket
- Android百度地图定位
- Python eval 函数 - Python零基础入门教程
- t–sql pl–sql_SQL日期时间–您应该知道的15个重要功能!
- 主题等.ppt及活动内容.ppt文档规范要求
- wpf ListView圆角
- java反编译jar包
- java 中super_Java中的super
- 中职计算机ps公开课教案,全国“xx杯”计算机类说课大赛课件一等奖作品:《利用PS蒙版制作照片的蒙太奇效果》教学设计.doc...
- jav中什么是组织java程序_在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是以下的______包。A.jav...
- P2P网络与BitTorrent技术简介
- 第八章第二十三题(游戏:找到翻转的单元格)(Game: find flipped cells)
- 基于Kivy的HDR拍摄软件案例分享
- 2021年团体程序设计天梯赛-总决赛 L3-2 还原文件
- 计算机rom和硬盘,都是存储器,但RAM、ROM、闪存、硬盘怎么分?
- Echarts双Y轴,右侧Y轴标签不显示
- 那些年,我们一起写过的“单例模式”
- Vue学习笔记_组件化
热门文章
- Taro小程序 Input组件focus属性失效解决方案
- 虚拟机安装未能启动服务器,虚拟机里安装Windowsserver2016,部署wsus出现无法启动和配置...
- SUBMAIL 短网址 API 授权与验证机制
- Python数据可视化-基于Python-matplotlib
- 程序人生-Hello‘s P2P
- Elastic认证工程师到底有没有用?
- Cadence Allegro PCB如何快速查找元器件
- 如何批量PDF转换JPG
- 教你如何在短期内做好会员运营快速拉新用户
- 【数据库记录】数据库三大范式和BCNF范式