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