【超详细】C51单片机与HC-05蓝牙模块实现手机点灯

news/2024/10/16 19:52:41/

此文记录HC05蓝牙模块在C51单片机上的学习历程

文章目录

  • 一、硬件连接
        • (1)配置模式下接线
        • (2)正常模式下接线
  • 二、配置模式操作
  • 三、正常模式
  • 四、使用蓝牙通过蓝牙调试app点灯
    • 1.单片机代码烧录与蓝牙连接
    • 2.蓝牙调试app配置


一、硬件连接

HC05一共有6个引脚,此实验一般只用到中间四个,即RXD、TXD、GND、VCC
在这里插入图片描述
HC05有两种模式,一是正常模式,二是配置模式,一定注意两种模式的接线方法是不同的

无论哪种模式,VCC与GND的接线方法是相同的,即VCC接单片机的5V口(供电电压为3.6V~6V,接到3.3V上是不亮的),GND接单片机的GND,如下所示
在这里插入图片描述


(1)配置模式下接线

在这里插入图片描述
在配置模式下,单片机通过串口与电脑连接,电脑通过AT指令即可完成对HC05模块的参数配置。此时接线为:

配置模式下HC05的RXD接单片机的RXD,TXD接TXD。

由于博主使用的单片机型号为STC89C52RC,查看原理图得单片机的RXD为p30口,TXD为p31口

在这里插入图片描述

则连接如下图所示
在这里插入图片描述


(2)正常模式下接线

在这里插入图片描述

在正常模式下HC05的RXD接单片机的TXD,TXD接RXD。


二、配置模式操作

使用配置模式接线后,将单片机通过串口连接电脑。若此时给单片机上电,在连接无误的情况下, HC05模块上有灯快速闪烁,大概1s闪两次,此时还未进入配置模式。
给单片机断电,一直按住HC05模块上的小按钮,如下图所示:
在这里插入图片描述
在按住按钮的同时给单片机上电,上完电后松开按钮,HC05首先会快速闪烁,在1s后进入慢闪状态,大约2s闪烁一次,此时成功进入配置模式。
打开串口助手,题主这里用的是sscom5.13.1。打开之后配置串口助手,如下图所示,
(1)首先注意串口号是否正确
(2)然后一定要将波特率设置为38400(此波特率为配置模式的波特率,无论后面通过指令将波特率变为多少,都是调整的正常模式的波特率,配置模式的波特率为38400是不变的)
(3)勾选加回车换行选项(若使用的串口助手无此选项,手动在代码后加上\r\n,例如AT\r\n)
在这里插入图片描述

(4)打开串口,在输入框内输入AT,点击发送。若一切正常,则会收到OK,如下图所示。
若没有收到,请检查接线,或者中奖了,单片机/模块有问题
在这里插入图片描述

接下来可以使用AT指令对模块进行配置,部分AT指令如下

AT+ROLE=0 (蓝牙模块设为从机,此时只可以被搜索)
AT+CMODE=1 (蓝牙模块可以和任意设备连接)
AT+UART=9600,0,0 (设置波特率9600)
AT+NAME=HC05 (设置蓝牙的名字为HC05,手机蓝牙搜索时就找这个名字)
AT+PSWD=1234 (设置密码,手机蓝牙串口APP连接蓝牙模块,需要输入密码)
以上,蓝牙串口通通返回OK 。

例如改变波特率为9600:

在这里插入图片描述


三、正常模式

将接线按照正常模式接入,即RXD对TXD,TXD对RXD。给单片机上电,HC05会快速闪烁。下载一个手机蓝牙调试app(题主使用的为Bluetooth spp pro,其他在应用市场上搜索的大部分也可以使用),搜索到自己的设备
在这里插入图片描述
点击连接,输入密码(一般默认为1234,可以在配置模式下通过AT指令修改自己的连接密码),然后连接成功。


四、使用蓝牙通过蓝牙调试app点灯

1.单片机代码烧录与蓝牙连接

单片机代码如下:
UART_init () 配置文件

#include <REGX52.H>void UART_init()		//9600bps@11.0592MHz
{PCON |= 0x80;		//使能波特率倍速位SMODSCON = 0x50;		//8位数据,可变波特率  TMOD &= 0x0F;		//清除定时器1模式位TMOD |= 0x20;		//设定定时器1为8位自动重装方式TL1 = 0xFA;		//设定定时初值TH1 = 0xFA;		//设定定时器重装值ET1 = 0;		//禁止定时器1中断TR1 = 1;		//启动定时器1ES=1;EA=1;
}

.h文件

#ifndef __UART_H__
#define __UART_H__
void UART_init();
#endif

main.c文件

#include <REGX52.H>void main()
{UART_init();P2=0x00;while(1){}
}void UART_Routine() interrupt 4{if (RI==1){P1=SBUF;//将SBUF值赋值给P1if (P1==0x01){P2=~0x80;RI=0;}else if (P1==0x02){P2=~0x40;RI=0;}}}

将代码烧录进单片机后,给单片机上电,此时HC05快速闪烁,打开手机app进行蓝牙连接,连接成功后HC05进入慢闪(大约5s快速闪两次)。

在这里插入图片描述


2.蓝牙调试app配置

连接成功后选择键盘模式,选择配置键盘值
在这里插入图片描述
配置两个按键的键盘值
在这里插入图片描述
在这里插入图片描述

!!! 别忘记选择IO模式,选择为hex模式,若选错模式则实验会毫无反应
(若选择为ascii模式,则代码需要改动,例如键盘发送01给单片机,在hex模式下单片机收到的值为0x01,在ascii模式下收到的为0x0031,具体转换方法请查看acii码表)
在这里插入图片描述
配置结束后,点击保存键盘配置。
按下1键,单片机led D8闪烁;按下2键,单片机led D7闪烁,此时实验成功。


http://www.ppmy.cn/news/157651.html

相关文章

导致无人机倾斜摄影免像控点三维重建中出现模型高程偏差大原因及解决方法探讨

导致无人机倾斜摄影免像控点三维重建中出现模型高程偏差大原因及解决方法探讨 无人机倾斜摄影是一种高效的三维测量技术&#xff0c;可用于建筑物、地形和基础设施等场景的快速、精确测量。然而&#xff0c;在进行无人机倾斜摄影时&#xff0c;出现模型高程偏差大的问题是很常…

江苏魔百盒M301H_Hi3798MV300-300H-310芯片通刷-免费卡刷固件包

江苏魔百-盒M301H_Hi3798MV300-300H-310芯片通-刷-免费卡刷固件包 本固件针对江苏版魔百盒M301H-Hi3798MV300和Hi3798MV300H芯片-华为万物互联世界logo和动画&#xff0c; 红外、蓝牙、语音遥控版免拆卡刷包和救砖强刷包固件-支持最新RTL8822CS无线及以前无线型号&#xff1a;…

2-基于51单片机的蓝牙智能台灯设计

具体实现功能 系统由单片机最小系统光敏电阻及AD模块蓝牙模块红外模块LED灯蜂鸣器电源构成 具体功能&#xff1a; &#xff08;1&#xff09;当人靠近的时候灯亮&#xff0c;太靠近的时候&#xff0c;蜂鸣器鸣叫发出警报&#xff0c;如果在一定时间内人没有离开&#xff0c;…

传统+智能融合,新款智能仪表盘WP-101操控新体验

国内两轮电动车用户群体庞大&#xff0c;2021年中国两轮电动车累计销量达成4100万辆。2022年大量城市《新国标》过渡期结束&#xff0c;两轮电动车换购又将迎来一轮小高峰&#xff1b;此外&#xff0c;在节能减排、碳达峰、绿色出行等政策指引及产业链上下游发展助推下&#xf…

机智云AIoT+arduino单片机+智能家居系统及安防控制

摘要:提出了一种基于机智云物联网云平台和Arduino单片机控制的智能家居安防系统设计模式&#xff0c;主要研究智能家居系统在无线组网技术和下位机子系统的软硬件功能&#xff0c;经过理论验证、仿真实验、电路搭建到智能家居模型的建立&#xff0c;完成了一套由无线Wi-Fi组网、…

基于51单片机的蓝牙智能小车——《加强篇》

在前面的两篇文章中&#xff0c;我已经介绍了51智能小车的一些最基本功能&#xff0c;大家如果学习前两篇文章&#xff0c;我相信大家能够掌握了智能小车基本原理&#xff0c;并且完全已经有能力将小车制作出来并且实现小车的基本操作功能。但是呢&#xff0c;如果小车只能是人…

基于51单片机智能可控洗衣机控制系统设计

目录 设计课题&#xff1a;全自动洗衣机 1 二、设计任务书 1 1、题目 1 2、设计要求 2 三、主要技术指标和说明 2 摘 要 2 (5)各种操作和洗衣机的运行状态均用LED显示. 2 一、设计任务与要求 3 &#xff08;3&#xff09; 通过“K3”键控制洗衣机运行、暂停和解除报警功能。 3 …

基于51单片机简易智能家居

基于51单片机的智能家居的设计 前言一、项目简介二、开发环境/工具&#xff1a;1.Keil 5/Keil 42.STC-ISP3.蓝牙串口助手4.手机app 三、硬件设计&#xff1a;1.单片机与蓝牙模块连接2.单片机与火焰传感器模块连接3.单片机与水银开关报警模块连接 四、程序设计&#xff1a;1.头文…