当前位置:首页 > 单片机 > 单片机
[导读]   串行口工作于方式2和方式3时,被定义为9位异步通信接口。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第9位数据和1位停止位。方式2、方式3的帧格式如下图所示。    

 

  串行口工作于方式2方式3时,被定义为9位异步通信接口。每帧数据均为11位,1位起始位0,8位数据位(先低位),1位可程控为1或0的第9位数据和1位停止位。方式2、方式3的帧格式如下图所示。

方式2的波特率由下式确定

1.方式2发送

发送前,先根据通信协议由软件设置TB8(如双机通信时的奇偶校验位或多机通信时的地址/数据的标志位),然后将要发送的数据写入SBUF,即可启动发送过程。串行口能自动把TB8取出,并装入到第9位数据位的位置,再逐一发送出去。发送完毕,则使TI位置1。

串行口方式2和方式3发送时序如下图所示。

例1:方式2发送在双机串行通信中的应用。

下面的发送中断服务程序是在双机串行通信中,以TB8作为奇偶校验位,本程序采用偶校验发送。处理方法为数据写入SBUF之前,先将数据的偶校验位写入TB8(设第2组的工作寄存器区的RO为发送数据区地址指针)。

2.方式2接收

当串行口的SCON寄存器的SMO、SM1两位为10,且REN=1时,允许串行口以方式2接收数据。接收时,数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD引脚从1到O的负跳变,并判断起始位有效后,便开始接收一帧信息。在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF(接收缓冲器)。

(1)RI=0,意味着接收缓冲器为空。

(2)SM2=0或接收到的第9位数据位RB8=1。

当满足上述两个条件时,接收到的数据送入SBUF(接收缓冲器),第9位数据送入RB8,且RI置1。若不满足这两个条件,接收的信息将被丢弃。

串行口方式2和方式3接收时序如下图所示。

例2:方式2接收在双机通信中的应用。

本例对例1发送的数据进行偶校验接收,程序如下(设1组寄存器区的RO为数据缓冲区指针)。

方式3
当SM0、SM1两位为11时,串行口被定义工作在方式3。方式3为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。

方式3的波特率由下式确定

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭