51单片机的波特率怎么计算? 51单片机波特率计算公式
方式0
方式0的波特率固定为主振动频率的1/12。
方式2
方案2的波特率由PCON中的选择位SMOD确定,可以由下式表示:
波特率=2的SMOD次方除以64乘以fosc。 也就是说,如果SMOD=1,则波特率为1/32fosc;如果SMOD=0,则波特率为1/64fosc
方式1和方式3
作为波特率发生器的计时器T1的公式如下。
T1溢出率=T1计数率/溢出发生所需的周期数
式中的T1计数率取决于是在计时器状态下动作还是在计数器状态下动作。 在定时器状态下工作时,T1计数率为fosc/12; 在计数器状态下操作时,T1计数率为外部输入频率,该频率应小于fosc/24。 发生溢出所需的周期与计时器T1的操作模式和T1的预设值有关。
计时器T1在模式0下动作:溢出所需周期数=8192-x
计时器T1在模式1下动作:溢出所需周期数=65536-x
计时器T1以模式2动作:溢出所需周期数=256-x
方式2是自动重载初始值的8位计时器/计数器模式,所以适于用作波特率发生器。 这就是为什么许多单片机系统使用这种看起来“奇怪”的晶体振动的原因,因为当时钟表频率使用11.0592MHZ时,很容易获得标准的波特率。
下表列出了计时器T1在方式2下运行的常见波特率和初始值。
常用波特率fosc(MHz ) SMOD TH1初始值
19200 11.0592 1 FDH
9600 11.0592 0 FDH
4800 11.0592 0 FAH
2400 11.0592 0 F4H
1200 11.0592 0 E8H
例如
9600 11.0592 0 FDH
T1溢出率=T1计数率/溢出发生所需的周期数
发生溢出所需的循环数=256-FD(253 )=3
SMOD=(11059200/12 ) *3 *1/32=9600