单片机小白学习之路(二十四)---单片机串口通信理解(四)

2018-09-09  本文已影响0人  飞向深空

目标:单片机串口通信理解(四)


4.串口工作方式

(1)方式0
方式0时,串行口为同步移位寄存器的输入输出方式。
主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。
发送和接收均为8位数据,低位在先,高位在后。
波特率固定为fosc/12。

方式0输出 方式0输入

(2)方式1
方式1是10位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如下所示。其中1位起始位,8位数据位,1位停止位。

方式1

方式1输出
方式1 输入

用软件置REN为1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到
RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并
开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起
始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0
(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收SBUF,第9位(停止
位)进入RB8,并置RI=1,向CPU请求中断。


(3)方式2和方式3

方式2或方式3时为11位数据的异步通信口。TXD为数据发送引脚,RXD为数据接收引脚 。RB8/TB8是第9位。

方式2或方式3
方式2、方式3输出
方式2、方式3输入

接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。


5.串口的使用

(1)如何计算波特率
方式0的波特率 = fosc/12
方式2的波特率 =(2SMOD/64)· fosc
方式1的波特率 =(2SMOD/32)·(T1溢出率)
方式3的波特率 =(2SMOD/32)·(T1溢出率)
T1 溢出率 = fosc /{12×[256 -(TH1)]}


波特率

(2)串口初始化步骤
①确定T1的工作方式(TMOD寄存器);
②确定串口工作方式(SCON寄存器);
③计算T1的初值(设定波特率),装载TH1、TL1;
④启动T1(TCON中的TR1位);
⑤如果使用中断,需开启串口中断控制位(IE寄存器)。


6.串口模块电路

单片机内串口模块电路
引脚
虽然第一幅图TXD还是标TXD,RXD标RXD但再看看第二赋图,TXD标在RXD上,RXD标在TXD上,实现了 交叉
上一篇下一篇

猜你喜欢

热点阅读