当前位置:首页 > 单片机 > 单片机
[导读]MCS-51单片机内部有一个全双工的异步串行通信接口,其结构如图4-18所示。串口工作时,单片机P3口的P3.0引脚和P3.1引脚处于第二功能,分别是串口的数据接收端RXD和发送端TXD。

MCS-51单片机串口的基本结构

MCS-51单片机内部有一个全双工的异步串行通信接口,其结构如图4-18所示。串口工作时,单片机P3口的P3.0引脚和P3.1引脚处于第二功能,分别是串口的数据接收端RXD和发送端TXD。

图4-18 MCS-51单片机串口内部结构示意图

串口控制寄存器SCON决定了串口的工作方式,而串口的波特率与定时/计数器1的溢出率直接相关。另外,串口发送数据和接收数据都可以产生串口中断请求。

发送缓冲区只能写入不能读出。发送数据时,在发送控制器的控制下,发送缓冲区中的并行数据转换为串行数据,并被插入格式信息以形成完整的字符数据帧,最后由TXD引脚发送出去。接收缓冲区只能读出不能写入。接收数据时,由RXD引脚接收字符数据帧。在接收控制器的控制下,字符数据帧中的格式信息被滤除,然后数据被移位寄存器转换成并行数据并存入接收缓冲区。可见,MCS-51单片机的串口是全双工的串口,可以同时进行数据发送和接收。

串口的工作方式

MCS-51单片机的串口有4种工作方式,其中方式0主要用于并行I/O接口的扩展,其他方式用于数据传输。

1.串口工作方式0

在方式0时,串口是8位同步移位寄存器,既可以移位输入也可以移位输出,并不是真正的数据通信方式,主要用于扩展外部并行I/O接口。如该方式的时序(见图4-19)所示,TXD是移位脉冲的输出引脚,RXD是数据移位输入或输出的引脚。另外,方式0的字符数据帧中只有8个数据位,没有格式信息。

图4-19串口工作方式0时序

a)发送(输出)时序b)接收(输入)时序

(1)数据的发送

发送数据前,首先将TI清0,然后只要向SBUF中写入数据,就会启动串口的发送,如指令“MOV SBUF,A”。之后,引脚TXD和RXD分别出现移位脉冲和数据位。当所有数据位发送完毕后,串口发送中断请求标志位TI被单片机硬件置1,以表明一次数据发送过程结束。单片机硬件在任何时候都不会自动将TI清0。再次发送数据前,必须用软件指令将TI清0,如执行指令“CLR TI”。

(2)数据的接收

接收数据前,必须令REN=1且RI=0,以启动串口的接收过程。之后,TXD引脚出现移位脉冲,串口等待RXD引脚上出现的数据位,并将其送入移位寄存器。当接收完一个完整数据帧后,硬件将移位寄存器中的数据送入接收缓冲区SBUF,并将接收中断请求标志位RI置1,以表明数据接收完毕。再次接收数据前,需将SBUF中的数据取走,并将RI清0。取SBUF中的数据可以用指令“MOV A,SBUF”,该指令将接收缓冲区的数据送入累加器A。只能用软件指令将RI清0,如指令“CLR RI”,因为单片机硬件不会自动将RI清0。

2.串口工作方式1

在方式1时,串口可接收和发送8位数据,其时序如图4-21所示。1个字符帧中有10个二进制位,包括8个数据位、1个起始位和1个停止位。TXD和RXD分别是发送数据和接收数据的引脚。

图4-21串口工作方式1时序

a)发送(输出)时序b)接收(输入)时序

(1)数据的发送

与方式0相似,发送数据前,首先将TI清0,然后只要向SBUF中写入数据,就会启动串口的发送过程。被发送的数据从TXD向外输出,低位在前高位在后。一帧数据发送完毕后,TI被单片机硬件置1。再次发送数据前,必须用软件指令将TI清0。

(2)数据的接收

接收数据前,令REN=1且RI=0,以启动串口接收过程。通过RXD接收字符数据帧,接收顺序为先低位再高位。实际上,数据的接收是通过采样实现的,每个数据位上RXD被采样3次,其中两次相同的采样值作为采样结果送入接收端的移位寄存器。一个完整字符帧接收完毕后,RI被置1,并且接收的8个数据位被送入接收缓冲区,而停止位“1”被送入接收方SCON的RB8中。若再次接收数据,则必须提前将RI清0。

3.串口工作方式2和方式3

串口工作方式2和方式3属于多机通信方式(多机通信的具体实现方法见前文关于SM2的描述),主机与从机的连接关系如图4-23所示,其时序如图4-24所示。方式2和方式3的唯一差别是波特率计算公式不同,见表4-14。

图4-23多机通信中主机与从机的连接

(1)数据的发送

方式2和方式3的字符帧包含11个二进制位,与方式1相比,在停止位前多了TB8位,该TB8位来自于发送方SCON寄存器中的TB8位。发送方的TB8位最终将被送入接收方SCON寄存器的RB8位中。

图4-24串口工作方式2和方式3时序

a)发送(输出)时序b)接收(输入)时序

与其他工作方式的发送过程相同,发送前需将TI清0,然后向SBUF中写入数据以启动发送。数据由TXD向外发送,数据发送完毕后,TI被硬件置1。再次发送数据前,必须用指令将TI再次清0。

(2)数据的接收

串口接收数据前,需令REN=1且RI=0。数据由RXD引脚接收。在字符数据帧中,停止位和D7之间的位来自发送方的TB8,并被送入接收方SCON寄存器的RB8位中。因此在图4-24所示接收时序中,停止位和D7之间的位用RB8表示。一个字符数据帧接收完毕后,RI不一定被硬件置1。见表4-16,RI被硬件置1的情况有两种,分别是:①SM0=0;

②SM0=1并且RB8=1。再次接收数据前,必须将RI清0,并令REN=1。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭