51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > ◆学习MCU > 详细内容
[基础篇]二十一、串行接口
阅读次数:4802  字体大小: 【】 【】【

  1. 方式 2

方式月为固定波特率的 11 位 UART 方式。它比方式 1 增加了一位可程控为 1 或 0 的第 9 位数据。

  1. 输出 : 发送的串行数据由 TXD 端输出一帧信息为 11 位,附加的第 9 位来自 SCON 寄存器的 TB8 位,用软件置位或复位。它可作为多机通讯中地址 / 数据信息的标志位,也可以作为数据的奇偶校验位。当 CPU 执行一条数据写入 SUBF 的指令时,就启动发送器发送。发送一帧信息后,置位中断标志 TI 。
  2. 输入 : 在( REN ) =1 时,串行口采样 RXD 引脚,当采样到 1 至 0 的跳变时,确认是开始位 0 ,就开始接收一帧数据。在接收到附加的第 9 位数据后,当( RI ) =0 或者( SM2 ) =0 时,第 9 位数据才进入 RB8 , 8 位数据才能进入接收寄存器,并由硬件置位中断标志 RI ;否则信息丢失。且不置位 RI 。再过一位时间后,不管上述条件时否满足,接收电路即行复位,并重新检测 RXD 上从 1 到 0 的跳变。

  1. 工作方式 3

方式 3 为波特率可变的 11 位 UART 方式。除波特率外,其余与方式 2 相同。

  1. 波特率选择

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

  1. 方式 0

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

  2. 方式 2

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

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

3 .方式1和方式 3

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

波特率 = 定时器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)

SMOD

TH1 初值

19200

11.0592

1

FDH

9600

11.0592

0

FDH

4800

11.0592

0

FAH

2400

11.0592

0

F4h

1200

11.0592

0

E8h

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号