单片机c语言实现发送程序将片内RAM 50H起始单元的16个数由串行口 发送。要求发送波特率为系统时钟的32分频,并进行奇偶校验
时间: 2024-05-02 17:22:37 浏览: 101
您好,我明白您的要求,关于单片机c语言实现发送程序将片内RAM 50H起始单元的16个数由串行口发送,可以使用如下示例代码:
```
#include <reg51.h> //51系列单片机头文件
#define FREQ_OSC 11059200 //晶振频率,Hz
#define FREQ_SYS (FREQ_OSC / 12) //系统时钟频率,Hz
unsigned char RAM_DATA[16] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10}; //RAM数据
void send_data(unsigned char data) //发送一个字节的数据
{
SBUF = data; //将数据写入串行口发送缓冲区
while(!TI); //等待数据发送完毕
TI = 0;
}
void main()
{
unsigned char val;
unsigned char sum = 0; //校验和
TMOD = 0x20; //设置定时器1为模式2
TH1 = 0xFD; //计算波特率,32分频
TL1 = TH1;
TR1 = 1; //启动定时器1
TI = 0; //串行口数据发送标志清零
for(val = 0; val < 16; val++)
{
send_data(RAM_DATA[val]); //发送RAM数据
sum += RAM_DATA[val]; //计算数据校验和
}
send_data(sum); //发送数据校验和
}
```
在程序中,我们首先定义了RAM_DATA数组来存储需要发送的数据,然后在主函数中使用send_data函数逐个发送这16个数据,并计算数据的校验和,最后将校验和发送出去。
需要注意的是,在程序中通过设置定时器1的计数值来计算波特率和设置校验位。要实现奇偶校验,可以在send_data函数中添加判断逻辑,根据需要添加校验位。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)