首页 理论教育 单片机串口应用简明指南

单片机串口应用简明指南

时间:2023-10-20 理论教育 版权反馈
【摘要】:MCS-51系列单片机的串口是一个可编程的全双工串行通信接口。图4-4 MCS-51系列单片机串口结构图发送数据时,执行一条向SBUF写入数据的指令,把数据写入串口发送寄存器,就启动发送过程。表4-3 SCON寄存器结构SM0、SM1:串口工作方式选择位,其定义见表4-4。MCS-51单片机的全双工串口可编程为4种工作方式,现分述如下:方式0方式0为移位寄存器I/O方式。

单片机串口应用简明指南

MCS-51系列单片机串口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统,也可以通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。串口的结构如图4-4所示。

978-7-111-43308-8-Chapter04-6.jpg

图4-4 MCS-51系列单片机串口结构图

发送数据时,执行一条向SBUF写入数据的指令,把数据写入串口发送寄存器,就启动发送过程。在发送时钟的控制下,先发送一个低电平的起始位,紧接着把发送数据寄存器的内容按低位在前、高位在后的顺序一位一位地发送出去,最后发送一个高电平的停止位。一个字符发送完毕,串口控制寄存器中的发送中断标志TI位置位。

接收数据时,串行数据的接收受到串口控制寄存器SCON中的接收允许位REN控制。当REN为1时,接收控制器就工作了,对接收数据线进行采样,当采样到从“1”到“0”的负跳变时,接收控制器开始接收数据。为了减少干扰的影响,接收控制器在接收数据时,将1位的传送时间平均分成16份,用当中的7、8、9三个状态对接收数据线进行采样。三次采样中,当两次采样是低电平时,就认为接收的是“0”;当两次采样为高电平时,就认为接收的是“1”。如果接收到的起始位的值不是“0”,则起始位无效,复位接收电路。如果起始位是“0”,则开始接收其他各位数据。接收的前8位数据依次移入输入移位寄存器,接收的第9位数据置入串口控制寄存器的RB8位中。如果接收有效,则输入移位寄存器中的数据置入接收数据寄存器中,同时控制寄存器中的接收中断位RI置1,通知CPU来取数据。

串口应用涉及控制寄存器。

1.串口控制寄存器SCON

它用于定义串口的工作方式、进行接收、发送控制和监控串口的工作过程,字节地址为98H,其各位定义见表4-3。

表4-3 SCON寄存器结构

978-7-111-43308-8-Chapter04-7.jpg

SM0、SM1:串口工作方式选择位,其定义见表4-4。

表4-4 串行口工作方式设置表

978-7-111-43308-8-Chapter04-8.jpg

注:fosc为晶振频率。

SM2:多机通信控制位。在方式0时,SM2一定要等于0。在方式1中,当SM2=1则只有接收到有效停止位时,RI才置1。在方式2或方式3当SM2=1且接收到的第9位数据RB8=0时,RI才置1。

REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。

TB8:是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通信中作为区别地址帧或数据帧的标志位。

RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若SM2=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。

TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其他方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。

RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其他方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0。

另外,对于串口发送中断TI和接收中断RI,无论哪个响应,都触发同一个串口中断,到底是发送中断还是接收中断,只有在中断服务程序中通过软件来识别。

在系统复位时,SCON的所有位都被清0。

2.电源管理寄存器PCON(www.xing528.com)

PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,不能进行位寻址,只能按字节方式访问。其结构格式见表4-5。

表4-5 PCON寄存器结构

978-7-111-43308-8-Chapter04-9.jpg

在非CHMOS型单片机中,除SMOD位外,其他位均为虚设,SMOD是串口波特率倍增位,当SMOD=1时,串口波特率加倍。系统复位默认为SMOD=0。

3.中断允许寄存器IE

中断允许寄存器在第3章中已阐述,这里重述一下对串口有影响的位ES。ES为串行中断允许控制位,ES=1,允许串行中断;ES=0,禁止串行中断。

MCS-51单片机的全双工串口可编程为4种工作方式,现分述如下:

(1)方式0

方式0为移位寄存器I/O方式。可外接移位寄存器以扩展I/O口,也可以外接同步I/O设备。8位串行数据从RXD输入或输出,TXD用来输出同步脉冲。

输出:串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fosc/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。

输入:当串口以方式0接收时,先置位允许接收控制位REN。此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。当RI=0和REN=1同时满足时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。

(2)方式1

方式1为波特率可变的10位异步通信接口方式。发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。

输出:当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据从TXD引脚输出,发送完一帧数据后,就由硬件置位TI。

输入:在REN=1时,串口采样RXD引脚,当采样从1至0的跳变时,确认是开始位0,就开始接收一帧数据。只有当RI=0且停止位为1或者SM2=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。所以在方式1接收时,应先用软件清0RI和SM2标志。

(3)方式2

方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。

输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通信中地址/数据信息的标志位,也可以作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令时,就启动发送器发送。发送一帧信息后,置位中断标志TI。

输入:在REN=1时,串口采样RXD引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。在接收到附加的第9位数据后,当RI=0或者SM2=0时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失,且不置位RI。再过一位时间后,不管上述条件是否满足,接收电路即行复位,并重新检测RXD上从1到0的跳变。

(4)方式3

方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。

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

我要反馈