MCS-51单片机串行接口(5)

发布时间:2021-06-07

MCS-51单片机串行接口

在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。可通过对串行口编程设定。各种工作方式下其波特率的设置均有所不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,由定时器T1的溢出率确定。

(1) 方式0的波特率 方式0时,其波特率固定为振荡频率的1/12,并不受PCON中SMOD位的影响。因而,方式0的波特率=fosc/12。

(2) 方式2的波特率 方式2的波特率由系统的振荡频率fosc和PCON的最高位SMOD确定,即为2SMOD×fosc/64。在SMOD=0时,波特率=fosc/64;在SMOD=1时,波特率=fosc/32。

(3) 方式1、3的波特率 MCS-51串行口方式1、3的波特率由定时器T1的溢出率和SMOD的值共同确定,即

方式1、3的波特率=(2SMOD/32)×定时器T1的溢出率。

其中定时器溢出率取决于计数速率和定时器的预置值。计数速率与TMOD寄存器中C/的设置有关。当C/=0时,为定时方式,计数速率= fosc/12;当C/=1时,为计数方式,计数速率取决于外部输入时钟的频率,但不能超过fosc/24。

定时器的预置值等于M-X,X为计数初值,M为定时器的最大计数,与操作模式有关。(可取213、216、28)。如果为了到达很低的波特率,则可以选择16位的操作模式,即模式1,或模式0,可以利用T1中断来实现重装计数值。

为能实现定时器计数初值重装,则通常选择操作模式2。在模式2中,TL1作计数用,TH1用于保存计数初值,当TL1计满溢出时,TH1的值自动装到TL1中。因此一般选用T1工作于模式2作波特率发生器。设T1的计数初值为X,设置C/T=0时,那么每过256-X个机器周期,定时器T1就会产生一次溢出。

则T1的溢出周期为:

溢出周期=12/fosc×(256-X)

溢出率为溢出周期之倒数,所以 fosc2SMOD fosc2SMOD

波特率= 3212 (256 X)384 (256 X)

定时器T1模式2的计数初值由上式可得:

2SMOD f X 256 384 波特率

(4)在8032/8052单片机中,工作方式1、工作方式3的波特率取决于定时器/计数器1、定时器/计数器2决定。由T2CON中的TCLK、RCLK选择。发送器的波特率由TCLK选择,TCLK=1时,由定时器/计数器2决定,TCLK=0时,由定时器/计数器1决定。接收器的波特率由RCLK选择,RCLK=1时,由定时器/计数器2决定,RCLK=0时,由定时器/计数器1决定。

定时器/计数器1构成波特率发生器的波特率计算与8031/8051/8751相同。

定时器/计数器2构成波特率发生器的波特率与SMOD无关。由于定时器状态时(C/T2=0),加法计数器对时钟脉冲(fosc/2)计数,所以波特率计算公式为:

波特率=fosc/2×16×[65536-(RCAP2H、RCAP2L)]

式中,(RCAP2H、RCAP2L)是定时器/计数器2的初值。

计数器状态(C/T2=1)的波特率为:

波特率=外部时钟频率/16×[65536-(RCAP2H、RCAP2L)]

外部时钟的最高频率fosc/2中。

(三)习题与思考题

MCS-51单片机串行接口(5).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219