单片机串口时序time sequence
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行通信(Serial Communication)
方式0。串行口为同步移位寄存器的输入\输出方式,主要用于扩展并行输入或输出口。对51单片机,数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后,波特率固定为f osc/12.
方式1。方式1是10位数据的异步通信口,其中,1位起始位,8位数据位,1位停止位。TXD(P3.1)为数据发送引脚,RXD(P3.0)为数据接收引脚。其传输波特率是可变的,对于51单片机,波特率由定时器1的溢出率决定。方式1的使用很普遍,需要完全掌握。
方式2,3。方式2,3为11位数据的异步通信口。TXD(P3.1)为数据发送引脚,RXD (P3.0)为数据接收引脚。这两种方式下起始位1位,数据9位(含一位附加的第9位,发送时为SCON的TB8,接收时为RB8),停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/64或1/32。方式3的波特率由定时器T1的溢出率决定。
方式2和方式3的差别仅在于波特率的选取方式不同,在两种方式下,接受到的停止位与SBUF、RB8及RI都无关。
串行口基本结构
SBUF相当于一个8位的寄存器。
SBUF共用一个地址99H,但是在物理上是两个独立的寄存器,由指令操作决定访问哪一个寄存器。接收器具有双缓冲结构,即在从接收寄存器中读出前一个已收到的字节之前,便能接收第二个字节。若果第二个字节已接收完毕,第一个字节还没有读出,则将丢失第一个字节。
串行口方式1的时序(Time Sequence)
串行口方式1传送一帧数据(A frame of data)的格式如下:
一帧数据供10位,1位起始位(0),8位数据位,最低位在前,最高位在后,1位停止位(1),帧与帧之间有空闲,也可以无空闲。
方式1数据输出时序图如下:
方式1数据输出时序图
当数据被写入SBUF寄存器后,单片机自动开始从起始位发送数据,发送到停止位的开始时,由内部硬件将TI置1,向CPU申请中断,接下来可在中断服务程序中作相应处理,也可以选择不进入中断。
方式1数据输入时序图
用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输
入移位寄存器最左边时,控制电路进行最后一次移位,当RI=0,且SM=2(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。