51单片机中关于波特率的介绍

来源:本站
导读:目前正在解读《51单片机中关于波特率的介绍》的相关信息,《51单片机中关于波特率的介绍》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《51单片机中关于波特率的介绍》的详细说明。
简介:本文给大家分享了51单片机中关于波特率的介绍。

在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。

方式0

方式0的波特率固定为主振频率的1/12。

方式2

方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:

波特率=2的SMOD次方除以64再乘一个fosc,也就是当SMOD=1时,波特率为1/32fosc,当SMOD=0时,波特率为1/64fosc

方式1和方式3

定时器T1作为波特率发生器,其公式如下:

波特率=51单片机中关于波特率的介绍定时器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)SMODTH1初值

1920011.05921FDH

960011.05920FDH

480011.05920FAH

240011.05920F4H

120011.05920E8H

例如960011.05920FDH

波特率=51单片机中关于波特率的介绍定时器T1溢出率

T1溢出率=T1计数率/产生溢出所需的周期数

产生溢出所需的周期数=256-FD(253)=3

SMOD=011059200/12*3*1/32=9600波特率计算

在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,我们通过软件对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溢出时,需用中断服务程序重装初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整。

提醒:《51单片机中关于波特率的介绍》最后刷新时间 2024-03-14 00:51:25,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机中关于波特率的介绍》该内容的真实性请自行鉴别。