波特率计算来选择晶振频率

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

波特率计算

在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,我们通过软件对MCS—51串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。

串行口的四种工作方式对应着三种波特率。由于输人的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同。一、方式0的波特率

方式0时,移位时钟脉冲由56(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一位数据。所以,波特率为振荡频率的十二分之一,并不受PCON寄存器中SMOD的影响,即:

方式0的波特率=fosc/12

三、方式l和方式3的波特率

方式1和方式3的移位时钟脉冲由定时器T1的溢出率决定,故波特宰由定时器T1的

溢出率与SMOD值同时决定,即:

方式1和方式3的波特率=2SMOD/32·T1溢出率

其中,溢出率取决于计数速率和定时器的预置值。计数速率与TMOD寄存器中C/T的状态有关。当C/T=0时,计数速率=fosc/2;当C/T=1时,计数速率取决于外部输入时钟频率。

当定时器Tl作波特率发生器使用时,通常选用可自动装入初值模式(工作方式2),在

工作方式2中,TLl作为计数用,而自动装入的初值放在THl中,设计数初值为x,则每过“256一x”个机器周期,定时器T1就会产生一次溢出。为了避免因溢出而引起中断,此时应禁止T1中断。这时,溢出周期为:

系统晶振频率选为11.0592MHZ就是为了使初值为整数,从而产生精确的波特率。

如果串行通信选用很低的波特率,可将定时器Tl置于工作方式0或工作方式1,但在

这种情况下,T1溢出时,需用中断服务程序重装初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整。

表6—2列出了各种常用的波特率及其初值。

定时器T1 波特率f OSC SMOD

C/T 模式初值方式0:1MHz 12MHz X X X X

方式2:375K 12MHz 1 X X X

方式1、3:62.5K 12MHz 1 0 2 FFH 方式1、3:19.2K 11.0592MHz 1 0 2 FDH 方式1、3:9.6K 11.0592MHz 0 0 2 FDH 方式1、3:4.8K 11.0592MHz 0 0 2 FAH 方式1、3:2.4K 11.0592MHz 0 0 2 F4H 方式1、3:1.2K 11.0592MHz 0 0 2 E8H 方式1、3:137.5K 11.0592MHz 0 0 2 1DH 方式1、3:110Hz 6MHz 0 0 2 72H 方式1、3:110Hz 6MHz 0 0 1 FEEBH

相关文档
最新文档