网站大量收购独家精品文档,联系QQ:2885784924

第5章 单片机原理与应用.ppt

  1. 1、本文档共224页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
  串行口工作在方式0时,没有起始位、停止位和校验位等,而且SCON中的TB8、RB8在方式0中没有意义。当CPU发送或接收8位数据且TI或RI中断请求标志位被置位后,向CPU申请中断响应,TI和RI不会被硬件自动清零,需要用户的应用程序将其清零。   在方式0下,SCON中的SM2必须为0。   2.方式1——波特率可调的10位UART方式   当用户的应用程序将SM0和SM1编程为“01B”时,串行口工作在方式1,其工作原理如图5-20所示。方式1的波特率取决于T1的溢出率,设置不同的T1溢出率,就可以使串行口工作在不同的波特率。方式1的波特率由下式确定: 方式1波特率=(2SMOD/32)×定时器1的溢出率 式中,SMOD是特殊功能寄存器PCON的最高位,即波特率加倍控制位。它是一个二进制位,其值为1或0,当SMOD=1时,串行口的波特率被加倍。   MCS-51单片机以方式1接收数据时,REN(接收允许控制位)被软件置位,数据从RxD(P3.0)脚位输入,CPU以所使用波特率16倍的采样速率采样RxD脚位的电平变化。当采样到RxD电平从“1”→ “0”跳变时就启动定时器,接收的值是经过三次采样中至少两次相同的值,以保证接收的数据准确无误。当检测到一个有效的起始位(Start bit)后开始接收一帧的其余信息,直到接收到停止位(Stop bit)。方式1的一帧信息为10位,包括1个起始位(低电平)、8个数据位(LSB→MSB)和1个停止位(高电平)。当满足RI=0和收到的停止位为1或SM2=0这两个条件时,停止位进入RB8,并且RI被置位,向CPU申请接收完成中断响应。如果这两个条件不满足,接收到的信息将被丢弃。所以用户编程时特别要注意RI必须在每次接收完成后将其清零,以准备下一次接收。通常情况下,串行口工作在方式1时,SM2=0。串行口方式1接收数据的时序如图5-21所示。 图5-20 串行口方式1的工作原理 图5-21 串行口方式1接收数据的时序   MCS-51单片机串行口在以方式1发送数据时,数据信息从TxD脚位送出,每发送一帧信息包括10个位:1个起始位、8个数据位和1个停止位,8个数据位是按LSB→MSB的顺序输出的。当CPU执行写SBUF指令后(此时TI必须是0),异步串行发送器被触发,启动发送动作。当10个位的一帧信息发送完成后,TI中断请求标志被置位,向CPU申请中断响应。串行口方式1发送数据的时序如图5-22所示。 图5-22 串行口方式1发送数据的时序   3.方式2——波特率固定的11位UART方式   当用户的应用程序将SM0和SM1编程为“10B”时,串行口工作在方式2。方式2的波特率取决于单片机使用的晶体振荡器频率,一旦晶体振荡器频率确定,方式2的波特率即确定,对方式2来讲波特率加倍控制位SMOD有效。方式2的波特率由下式确定: 方式2波特率=(2SMOD/64)×fosc 式中,SMOD是特殊功能寄存器PCON的最高位,即波特率加倍控制位。它是一个二进制位,其值为1或0,当SMOD=1时,串行口的波特率被加倍。   MCS-51单片机串行口以方式2接收数据时,REN(接收允许控制位)必须为1,接收的信息从RxD脚位输入,方式2接收的信息为11位:1个起始位、8个数据位、1个附加位(可以作为校验位或帧识别位)和1个停止位。串行口接收器在接收到第9个位后,当满足RI=0和SM2=0或接收的第9位为1这两个条件时,接收到的8位数据被送入SBUF,第9个位被送入RB8,同时将RI置位,向CPU发送接收完成中断请求信号。如果不满足这两个条件,接收到的信息将被丢弃。串行口方式2接收数据的时序如图5-23所示。 图5-23 串行口方式2和3接收数据的时序   方式2发送的数据信息从TxD脚位输出,发送一帧信息包括11个位:1个起始位、8个数据位、1个附加位(可以作为校验位或帧识别位)和1个停止位。发送的附加位(第9位)数据存放在TB8中,在一帧信息发送之前,TB8可以由用户应用程序将其清零或置位,它可以作为校验位或帧识别位使用。串行口方式2发送数据的时序如图5-24所示。 图5-24 串行口方式2和3发送数据的时序   下面举例说明TB8和RB8的应用。   假设有两片8051之间利用串行口连接相互通信,通信时每帧数据需要有奇校验位,实现的电路图如图5-25所示。假定两者设定的波特率相同。 图5-25 两片8051之间的异步通信连接电路图   为了实现每帧数据有奇校验位,下面的程序需要使用TB8和RB8作为校验位使用。软件包括两片8051各自的发送和接收程序。首先1#8051发送字符“A”,当2#8051接收到字符“A”后回应字符“B”。如果1#8051接收到的“B”不正确,再重新执行上述步

文档评论(0)

好文精选 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档