目录
介绍
HC-05是用于无线通信的蓝牙设备。它适用于串行通信(UART)。
它是一个6引脚模块。
该设备可以使用2种模式; 数据模式和命令模式。
数据模式用于设备之间的数据传输,而命令模式用于更改蓝牙模块的设置。
在命令模式下需要AT命令。
该模块适用于5V或3.3V。它具有板载5V至3.3V稳压器。
由于HC-05蓝牙模块具有3.3 V电平用于RX / TX,而微控制器可以检测3.3 V电平,因此,无需移位HC-05模块的发送电平。但我们需要将发射电压电平从微控制器转移到HC-05模块的RX。
有关HC-05蓝牙模块及其使用方法的更多信息,请参阅传感器和模块部分中的蓝牙模块HC-05主题。
有关8051中UART的信息以及如何使用它,请参阅8051内部的8051中的UART主题。
HC-05蓝牙模块
连接图
HC-05蓝牙模块与8051连接
例程
在这里,我们开发一个小型应用程序,我们可以通过智能手机控制LED开 – 关。
这是通过将8051与HC-05蓝牙模块连接来完成的。HC-05的数据由8051连续接收/发送。
在此应用程序中,当智能手机发送1时,LED将打开,如果发送2,LED将变为OFF。如果收到的数据不是1或2,它将向移动设备返回选择正确选项的消息。
程序
- 初始化8051 UART通信。
- 从HC-05蓝牙模块接收数据。
- 检查是“1”还是“2”并对LED进行相应的控制动作。
/*
*HC-05 蓝牙与8051连接,通过智能手机控制LED
*https://www.qutaojiao.com
*/
#include <reg51.h>
#include "UART_H_file.h" /* Include UART library */
sbit LED=P1^0;
void main()
{
char Data_in;
UART_Init(); /* Initialize UART */
P1 = 0; /* Clear port initially */
LED = 0; /* Initially LED turn OFF */
while(1)
{
Data_in = UART_RxChar(); /* Receive char serially */
if(Data_in == '1')
{
LED = 1;/* Turn ON LED */
UART_SendString("LED_ON"); /* Send status of LED*/
}
else if(Data_in == '2')
{
LED = 0;/* Turn OFF LED */
UART_SendString("LED_OFF"); /* Send status of LED*/
}
else
UART_SendString("Select proper option");
}
}
手机蓝牙app串口工具下载查看这篇文章:
本节课完整项目工程: