首页 理论教育 波特率设定方法单片机应用技术

波特率设定方法单片机应用技术

时间:2023-11-06 理论教育 版权反馈
【摘要】:图6.12串行口方式0的波特率2)方式2的波特率串行口方式2波特率的产生与方式0不同,即输入的时钟源不同,其时钟源输入部分如图6.13所示。即图6.14串行口方式1和3的波特率当SMOD=0时,n=32;SMOD=1时,n=16。表6.2串行口方式1、3常用波特率与其他参数选取关系8051单片机时钟振荡频率为11.059 2 MHz,选用定时器T1工作方式2作为波特率发生器,波特率为2 400波特,求初值。

波特率设定方法单片机应用技术

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

串行口的4种工作方式对应3种波特率。因为输入移位时钟的来源不同,其波特率计算公式也不同。

1)方式0的波特率

由图6.12可知,方式0是由移位时钟脉冲S6(即第6个状态周期,第12个节拍)给出,即每个机器周期可产生一个移位时钟,发送或接收一位数据。因此,波特率固定为振荡频率的1/12,并不受PCON寄存器中SMOD位的影响。

图6.12 串行口方式0的波特率

2)方式2的波特率

串行口方式2波特率的产生与方式0不同,即输入的时钟源不同,其时钟源输入部分如图6.13所示。控制接收与发送的移位时钟由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,因此,方式2波特率取决于PCON中SMOD位的值:当SMOD=0时,波特率为fosc的1/64;若SMOD=1,则波特率为fosc的1/32,即

图6.13 串行口方式2的时钟源输入部分

3)方式1和方式3的波特率

方式1和方式3的移位时钟脉冲由定时器T1的溢出率决定(图6.14),因此,8051串行口方式1和方式3的波特率由定时器T1溢出率与SMOD值同时决定。即

图6.14 串行口方式1和3的波特率

当SMOD=0时,n=32;SMOD=1时,n=16。所以,可用下式确定方式1和方式3的波特率(www.xing528.com)

其中,T1溢出速率取决于T1的计数速率(计数速率)和T1预置的初值。若定时器T1采用模式1时,波特率公式如下

表6.2列出了串行口方式1、3常用波特率及其初值。

定时器T1用作波特率发生器时,通常选用定时器模式2(自动重装初值定时器)比较实用。要设置定时器T1为定时方式(使C/=0),使T1计数内部振荡脉冲,即计数速率为fosc/12(注意应防止T1中断,以免溢出而产生不必要的中断)。须先设定TH1和TL1定时计数初值为X,每经过“28-X”个机器周期,定时器T1就会产生一次溢出。因此T1溢出速率为

可得出定时器T1模式2的初值x。

表6.2 串行口方式1、3常用波特率与其他参数选取关系

【例6.1】 8051单片机时钟振荡频率为11.059 2 MHz,选用定时器T1工作方式2作为波特率发生器,波特率为2 400波特,求初值。

解:设置波特率控制位(SMOD)=0

故(TH1)=(TL1)=F4H

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

如果串行通信选用较低的波特率,可将定时器T1置于方式0或方式1,即13位或16位定时方式;在这种情况下,T1溢出时,需用中断服务程序重装初值(详见3.3节)。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈