T5L0与蓝牙模块HC-05通信,写一份c51代码
时间: 2024-01-13 11:02:17 浏览: 57
好的,下面是一个简单的8051单片机通过T5L0和蓝牙模块HC-05进行通信的示例代码:
```
#include<reg52.h>
#include<intrins.h>
#define FREQ_OSC 11059200UL // 定义系统晶振频率
#define BAUD_RATE 9600 // 定义串口波特率
sbit LED = P1^0; // 定义P1.0引脚为LED控制引脚
sbit RXD = P3^0; // 定义P3.0引脚为串口接收引脚
sbit TXD = P3^1; // 定义P3.1引脚为串口发送引脚
void init_uart(); // 初始化串口函数
void send_char(unsigned char ch); // 发送字符函数
unsigned char recv_char(); // 接收字符函数
void main()
{
unsigned char ch;
TMOD |= 0x80; // 设置定时器5为模式2,自动重装载模式
TH5 = (65536 - FREQ_OSC/12/1000) / 256; // 计算定时器5的高字节值
TL5 = (65536 - FREQ_OSC/12/1000) % 256; // 计算定时器5的低字节值
ET5 = 1; // 使能定时器5中断
EA = 1; // 使能总中断
TR5 = 1; // 启动定时器5
init_uart(); // 初始化串口
while(1)
{
ch = recv_char(); // 接收一个字符
if(ch == '1') // 如果接收到字符'1'
{
LED = 1; // 点亮LED
send_char('O'); // 发送字符'O'表示成功
}
else if(ch == '0') // 如果接收到字符'0'
{
LED = 0; // 熄灭LED
send_char('O'); // 发送字符'O'表示成功
}
}
}
void init_uart() // 初始化串口函数
{
TMOD |= 0x20; // 设置定时器1为模式2,8位自动重装载模式
TH1 = 256 - FREQ_OSC/12/16/BAUD_RATE; // 计算波特率发生器重载值
TL1 = 256 - FREQ_OSC/12/16/BAUD_RATE;
TR1 = 1; // 启动定时器1
SCON = 0x50; // 设置串口工作模式为模式1,允许接收
}
void send_char(unsigned char ch) // 发送字符函数
{
SBUF = ch; // 把字符放入发送缓冲区
while(TI == 0); // 等待发送完成
TI = 0; // 清除发送完成标志
}
unsigned char recv_char() // 接收字符函数
{
while(RI == 0); // 等待接收完成
RI = 0; // 清除接收完成标志
return SBUF; // 返回接收到的字符
}
void timer5_isr() interrupt 15 // 定时器5中断服务程序
{
TH5 = (65536 - FREQ_OSC/12/1000) / 256; // 重新加载定时器5的高字节值
TL5 = (65536 - FREQ_OSC/12/1000) % 256; // 重新加载定时器5的低字节值
}
```
这个程序实现了一个简单的串口通信,当接收到字符'1'时,点亮LED,并发送字符'O'表示成功;当接收到字符'0'时,熄灭LED,并发送字符'O'表示成功。同时,使用定时器5来实现1ms的定时器,以便我们可以在串口通信过程中进行其他的操作。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)