标题: 蓝牙控制51单片机点亮LED 调试程序 [打印本页]

作者: yrx0203    时间: 2021-5-15 22:14
标题: 蓝牙控制51单片机点亮LED 调试程序
1.     下载相关软件。如串口助手和蓝牙助手
2.     串口助手上有相应的操作,随便点点就行
3.     一些AT指令。
HC08调试过程.docx (664.34 KB, 下载次数: 40)
4.      AT 指令用来设置模块的参数,模块在未连线状态下可以进行 AT 指令操作,连线后进入串口透传模式。模块启动大约需要 150ms,所以最好在模块上电 200ms 以后才进行 AT 指令操作。除特殊说明外,AT 指令的参数设置立即生效。同时,参数和功能的修改,掉电不会丢失。AT 指令修改成功后统一返回 OK(“AT+RX、AT+VERSION”等查看信息类指令除外),不成功不返回任何信息
5.     串口通信准备知识:功能是利用串口助手文本模式发送0x00点亮led,发送0x01熄灭led。实现方式串口通信:uart,SBUF暂存
/**************************************************************************************
*                            串口通信实验                                                                           *
实现现象:下载程序后打开串口调试助手,将波特率设置为4800,选择发送的数据就可以显示
               在串口助手上。
注意事项:无。                                                                                                                                    
***************************************************************************************/

#include"reg52.h"                //此文件中定义了单片机的一些特殊功能寄存器

typedefunsigned int u16;      //对数据类型进行声明定义
typedefunsigned char u8;
sbitled0=P2^0;     
/*******************************************************************************
* 函数名         :UsartInit()
* 函数功能              :设置串口
*******************************************************************************/
void UsartInit()       //串口初始化函数,函数名可以自定义
{
SCON=0X50;               //设置为工作方式1      01100000
TMOD=0X20;              //设置计数器T1工作方式2        00100000
PCON=0X80;              //波特率加倍
TH1=0XF3;                         //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1;                                        //打开接收中断
EA=1;                                        //打开总中断
TR1=1;                               //打开计数器
}

/*******************************************************************************
* 函数 名       : main
* 函数功能            : 主函数
*******************************************************************************/
voidmain()
{      
UsartInit(); //      串口初始化
while(1);        
}

/*******************************************************************************
* 函数名         : Usart() interrupt 4
* 函数功能             : 串口通信中断函数
*******************************************************************************/
voidUsart() interrupt 4         //第五级中断,因为从0开始数,所以用标号4,即中断4
{
u8 receiveData;       //定义读取函数
receiveData=SBUF;//出去接收到的数据
RI = 0;//清除接收中断标志位
SBUF=receiveData;//将接收到的数据放入到发送寄存器
if(SBUF=='0')
{
        led0=0;
}
    if(SBUF=='1')
{
        led0=1;
}
while(!TI);                     //等待发送数据完成
TI=0;                                         //清除发送完成标志位
}


6.     单片机与蓝牙模块连接的关键点在与串口通信。
7.     手机APP发送相应的字符给蓝牙模块,蓝牙模块与单片机进行串口通信,蓝牙模块把从手机端接收到的内容发送给单片机并放在单片机的SBUF上。程序中主要是通过对SBUF上的字符进行判断从而做出控制。注意晶振用11.0592MHZ的。


作者: 潇潇来了    时间: 2021-7-21 15:51
看起来很好学的,我要学学
作者: dzc3458    时间: 2021-9-6 11:08
问一下,hc05蓝牙模块主模式可以被手机连接吗,连接成功串口会不会返回数据




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1