8051的串口波特率的计算(笔记版)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8051的串口波特率的计算

1、方式0的波特率,固定为晶振频率的十二分之一。

2、方式2的波特率,取决于PCON寄存器的SMOD位。PCON是一个特殊的寄

存器,吹了最高位SMOD位,其他位都是虚设的。计算方法如下:

SMOD=0,波特率为晶振的1/64;

SMOD=1,波特率为晶振的1/32.

3、方式1与方式3的波特率都是由定时器的溢出率决定的。

公式为:

BR=(2SOMD/32)*(定时器TI的溢出率)

通常情况下,我们使用定时器的方式2,即比率发生器,自动重载计数常数。

溢出的周期为:

T=(256-X)*12/fosc

溢出率为溢出周期的倒数,即

T1=1/T

所以:

式中:SMOD是所选的方式,fosc是晶振频率。X是初始值。

51单片机模拟串口波特率计算方法

1.计算波特率位间隔时间(即定时时间,其实就是波特率的倒数)

位间隔时间(us)=10(6)(us)/波特率(bps)

2.计算机单片机指令周期:

指令周期(us)=12/晶振频率(Mhz)

补充问题:做串口通信时,为什么要把晶振频率设为11.0592,为什么要把波特率设为9600?

先说波特率。波特率从300到115200都可以,甚至更高或更低。一般规范的波特率都是3的倍数,比如9600、19200、38400;但是并不是一定的,波特率也可以是10000或者10001、10002,只要你的设备能产生符合这个要求的频率,尤其是自己用时,波特率都是很随意的,没有限制。只是多数时候为了和电脑配合,波特率才规范为固定的几个值,且为了传输稳定,用9600。

用11.0592晶振的原因是51单片机的定时器导致的。通常用11.0592M晶振是为了得到标准的无误差的波特率。举例说来,如我们要得到的9600的波特率,晶振为11.0592M和12M,定制器1为2SMOD设为1,分别看看那所求的TH1为何值。代入公式:

11.0592M

9600=(2/32)*((11.0592M/12)(256-TH1))

TH 1=250

12M

9600=(2/32)*((12M/12)(256-TH1))

TH1=249.49

相关文档
最新文档