4. 将“7FH”、“ADH”、“B5H”、“44H”通过串口采用串口方式1发送出去,通信波特率9600b/s,单 片机振荡频率11.0592MHz,SMOD=0。(1)计算T定时器初值;(2)编写程序。
时间: 2024-05-06 12:18:27 浏览: 7
(1) 首先计算出定时器的时钟频率:
时钟频率 = 振荡频率 / 12 = 11.0592MHz / 12 ≈ 921.6kHz
然后计算出发送一个字节所需的时间:
发送一个字节的位数为 8,加上起始位和停止位共10位,所需时间为 10 / 9600 ≈ 1.042ms
因此,T定时器初值 = 65536 - (1.042ms × 921.6kHz) ≈ 55039
(2) 下面是采用串口方式1发送数据的程序:
```c
#include <reg51.h>
void init_serial() {
TMOD |= 0x20; // 设置定时器1为模式2
SCON = 0x50; // 设置串口工作在方式1,允许接收
TH1 = 0xD9; // 设置T1初值,波特率9600
TL1 = 0xD9;
TR1 = 1; // 启动T1
}
void send_byte(unsigned char byte) {
SBUF = byte; // 将要发送的字节放入发送缓冲区
while (!TI); // 等待发送完成
TI = 0; // 发送完成,清空发送标志位
}
void main() {
init_serial(); // 初始化串口
send_byte(0x7F); // 发送0x7F
send_byte(0xAD); // 发送0xAD
send_byte(0xB5); // 发送0xB5
send_byte(0x44); // 发送0x44
while (1); // 程序结束
}
```
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)