首页 百科知识 -串口工作方式

-串口工作方式

时间:2022-10-27 百科知识 版权反馈
【摘要】:方式0是同步移位寄存器输入/输出方式,常用做串行I/O扩展,具有固定的波特率fosc/12.同步发送或接收,由TXD提供移位脉冲,RXD用做数据输入/输出通道.发送或接收的是8位数据,低位在先,高位在后.首先从写SBUF寄存器开始,启动发送操作.TXD输出移位脉冲,RXD同步串行发送SBUF中的数据.每个机器周期TXD发送一个移位脉冲,每个移位脉冲RXD发送一位数据.发送完8位数据后自动置位TI,

四、MCS-51串口工作方式

(一)方式0

方式0是同步移位寄存器输入/输出方式,常用做串行I/O扩展,具有固定的波特率fosc/12.同步发送或接收,由TXD提供移位脉冲,RXD用做数据输入/输出通道.发送或接收的是8位数据,低位在先,高位在后.

首先从写SBUF寄存器开始,启动发送操作.TXD输出移位脉冲,RXD同步串行发送SBUF中的数据.每个机器周期TXD发送一个移位脉冲,每个移位脉冲RXD发送一位数据.发送完8位数据后自动置位TI,请求中断.在RI=0的条件下,置REN=1后,启动一帧数据的接收,由TXD输出移位脉冲,由RXD接收串行数据到SBUF中.每个机器周期TXD发送一个移位脉冲,每个移位脉冲期间RXD接收一位数据,接收一帧数据结束后自动置位RI=1,请求中断.在继续接收下一帧之前,要将上一帧数据取走.

该方式多用于接口的扩展,也可用于短距离的单片机的通信.

(二)方式1

方式1是10位异步通信方式,1位起始位(0),8位数据位,1位停止位(1),可变波特率,由T1的溢出率决定.

执行一条以SBUF为目的的寄存器指令后,数据送往发送缓冲器SBUF,SBUF中的数据从TXD端向外发送,在发送数据前先发1位起始位,然后紧跟8位数据位,再发1位停止位,发送完一帧数据后置位T1=1,请求中断.

当置位REN时,串行口采样RXD引脚.当采样到1至0的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停止位到来时,把停止位送入RB8中,置位RI=1,请求中断,通知CPU从SBUF中取走接收到的数据.

(三)方式2和方式3

方式2和方式3具有多机通信功能,两种方式除了波特率设置不同外,其余完全相同.帧结构为11位,包括1位起始位0,8位数据位,1位校验位TB8/RB8和1位停止位.

在方式2中,波特率固定为fosc/64或fosc/32,由PCON寄存器中的SMOD位选择.SMOD=1时,波特率为fosc/32;SMOD=0时,波特率为fosc/64.

在方式3中,波特率取决于T1的溢出率.发送数据前,由指令设置TB8(例如作为奇偶校验位或地址/数据标志位),将要发送的数据写入SBUF后启动发送操作.内部逻辑会把TB8装入发送移位寄存器的第9位位置,随8位的数据之后发送出去,发送结束后置位TI.多机通信中,发送时用TB8作地址/数据标识,TB8=1时为地址帧,TB8=0时为数据帧.

当置位REN位时,启动接收操作.数据送入移位寄存器,收到的第9位数据RB8,对所接收的数据视SM2和RB8的状态决定是否使RI置1,请求中断.当SM2=0时,不论RB8为何种状态,均置位RI,接收数据.当SM2=1时,为多机通信方式,接收到的RB8为地址/数据标识位.当RB8=1时,接收到数据为地址帧,置位RI,接收数据;当RB8=0时,收到数据为数据帧.若SM2=1,RI不置位,丢弃此帧,若SM2=0,则SBUF接收发送来的数据.

(四)各方式下波特率的计算

当T1作为串行口的波特率发生器时,串行口方式1或方式3的波特率由下式确定:

波特率=2SMOD×(T1溢出率)/32

由于方式2具有自动装载的功能,一般T1选择方式2,此时波特率的计算公式为:

波特率=2SMOD×fosc/[/32×12(28-TH1)]

表4-4 常用波特率及相应的fosc、T1工作方式及初值

img63

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

我要反馈