51单片机串口发送数据的程序
时间: 2023-09-16 10:12:16 浏览: 79
以下是基于51单片机的串口发送数据的程序示例:
```c
#include <reg52.h>
// 定义波特率为9600
#define BAUD_RATE 9600
// 定义串口发送函数
void SendData(unsigned char data) {
SBUF = data; // 将数据写入SBUF寄存器
while (!TI); // 等待发送完成
TI = 0; // 完成发送
}
void main() {
TMOD = 0x20; // 定时器1工作在模式2,用作串口波特率发生器
TH1 = 256 - FOSC / 12 / 32 / BAUD_RATE; // 计算波特率发生器的初值
TR1 = 1; // 启动定时器1
// 初始化串口
SCON = 0x50;
// 发送数据
SendData('H');
SendData('E');
SendData('L');
SendData('L');
SendData('O');
}
```
在以上代码中,我们首先定义了一个宏`BAUD_RATE`,表示波特率为9600。然后定义了一个`SendData()`函数,用于将数据写入SBUF寄存器,并等待发送完成。在`main()`函数中,我们设置了定时器1工作在模式2,用作串口波特率发生器,并计算了波特率发生器的初值。然后初始化了串口,并调用`SendData()`函数发送数据。请注意,在发送数据时需要等待上一次发送完成后才能进行下一次发送。
阅读全文