c51设置波特率为9600程序
时间: 2023-06-16 12:07:07 浏览: 1105
三种方法将51单片机设置为115200波特率
5星 · 资源好评率100%
下面是C51单片机设置波特率为9600的程序:
```
#include<reg51.h>
#define FOSC 11059200L //晶振频率
#define BAUD 9600 //波特率
#define TIMER_TH0 (65536 - (FOSC / 12 / BAUD)) / 256 //定时器初值高8位
#define TIMER_TL0 (65536 - (FOSC / 12 / BAUD)) % 256 //定时器初值低8位
void UART_init()
{
TMOD = 0x20; //定时器1工作在模式2,自动重装计数
TH1 = TIMER_TH0; //设置定时器1初值高8位
TL1 = TIMER_TL0; //设置定时器1初值低8位
PCON = 0x00; //波特率不加倍
SCON = 0x50; //串口工作在模式1,允许接收
TR1 = 1; //启动定时器1
ES = 0; //禁止串口中断
}
void main()
{
UART_init(); //初始化串口
while(1); //无限循环
}
```
该程序使用定时器1来实现波特率的设置,需要根据实际的晶振频率和波特率计算出定时器1的初值,然后将其分为高8位和低8位分别存放到TH1和TL1寄存器中。同时,需要设置串口工作模式和相关的控制寄存器。在实际应用中,可以在UART_init函数中添加其他相关的设置,如校验位、停止位等。
阅读全文