C51单片机波特率是怎么设计的?

2025-06-20 15:53:49
推荐回答(1个)
回答1:

/***串口常用小知识***/
/***SCON[7:0]:SM0 SM1 SM2 REN TB8 RB8 TI RI
SM[0:1]:工作方式选择位(注:常用选择01-10位异步收发)
00-同步移位寄存器方式(通常用于扩展I/O口); RXD(P30)数据IO,TXD(P31)移位脉冲输出,8位数据,低位先高位后,波特率固定Fosc/12
01-10位异步收发(8位数据),波特率可变(由定时器1的溢出率控制);1位起始位+8位数据+1位停止位
10-11位异步收发(9位数据),波特率固定;1位起始位+9位数据(第9位TB8/RB8)+1位停止位,波特率固定Fosc/64,或Fosc/32(由PCON最高位SMOD决定)
11-11位异步收发(9位数据),波特率可变(由定时器1的溢出率控制);1位起始位+9位数据(第9位TB8/RB8)+1位停止位
SM2:多机通讯控制位,主要使用于方式2/3。
当接收机SM2=1时,通过RB8识别是否进入中断接受数据(RB8=0 忽略操作,RB8=1 激活RI,进入中断),
当SM2=0时忽略RB8控制功能;
方式0时,SM2必须=0;
方式1时,SM2=1,只有接收到有效停止位才激活 RI,进入中断。
REN:串口中断使能,0 禁止,1 使能;
TB8:方式2/3中发送数据的第9位,可作为奇偶校验,多机通信中,作为地址帧/数据帧标志;
RB8:方式2/3中接收数据的第9位,可作为奇偶检验,或地址帧/数据帧的标志;方式1中,SM2=0时,RB8为接收到的停止位;
TI:发送中断标志,方式0中,发送8位数据结束,或其他方式,开始发送停止位,TI 置1,申请中断,需软件清0;
RI:接收中断标志,方式0中,接收8位数据结束,或其他方式,正接收停止位,RI 置1,申请中断,需软件清0;
***/
/***PCON[7:0]:SMOD (SMOD0) (LVDF) (P0F) GF1 GF0 PD IDL
SMOD:波特率倍频,SMOD=0,串口方式1/2/3时,波特率正常; SMOD=1,串口方式1/2/3时,波特率加倍;
(SMOD0)、(LVDF)、(P0F)为 STC 单片机特有,请参考对应说明.
***/
/***波特率计算:
方式0: Baud=Fosc/12;
方式1: Baud=2^(SMOD)/32 ×T1溢出率;
方式2: Baud=2^(SMOD)/64 ×Fosc;
方式3: Baud=2^(SMOD)/32 ×T1溢出率;
注:T1溢出率=1/T1中断时间;
***/