世界足球俱乐部杯

MCS - 51 单片机串口:结构揭秘与工作流程详解

出处:维库电子市场网 发布于:2025-04-27 14:16:49

  在电子技术领域,MCS - 51 凭借其广泛的应用和稳定的性能备受关注。MCS - 51 单片机内部配备了一个全双工的异步串行通信,这一接口在单片机的数据传输中起着关键作用。其结构如图 4 - 18 所示,当工作时,单片机 P3 口的 P3.0 引脚和 P3.1 引脚会处于第二功能状态,分别作为串口的数据接收端 RXD 和发送端 TXD。

  从角度来看,串口控制寄存器 SCON 对串口的工作方式起到决定性作用,而串口的波特率则与定时 / 1 的溢出率有着直接关联。此外,串口在发送数据和接收数据的过程中,都能够产生串口中断请求,这为数据的高效处理提供了保障。
  发送缓冲区具有只能写入不能读出的特性。在发送数据时,在发送控制器的精准控制下,发送缓冲区中的并行数据会被转换为串行数据,并插入必要的格式信息,从而形成完整的字符数据帧,终通过 TXD 引脚发送出去。接收缓冲区则恰恰相反,只能读出不能写入。接收数据时,由 RXD 引脚接收字符数据帧,在接收控制器的作用下,字符数据帧中的格式信息被滤除,然后数据被移位寄存器转换成并行数据并存入接收缓冲区。由此可见,MCS - 51 单片机的串口是全双工的,能够同时进行数据的发送和接收,大大提高了数据传输的效率。
  MCS - 51 单片机的串口拥有 4 种工作方式,每种方式都有其独特的应用场景。
  方式 0:并行 I/O 接口扩展

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

  数据发送:发送数据前,首先要将 TI 清 0,然后向 SBUF 中写入数据即可启动串口的发送,例如指令 “MOV SBUF,A”。之后,引脚 TXD 和 RXD 分别会出现移位脉冲和数据位。当所有数据位发送完毕后,串口发送中断请求标志位 TI 会被单片机硬件置 1,表明数据发送过程结束。需要注意的是,单片机硬件在任何时候都不会自动将 TI 清 0,再次发送数据前,必须用软件指令将 TI 清 0,如执行指令 “CLR TI”。
  数据接收:接收数据前,必须令 REN = 1 且 RI = 0,以启动串口的接收过程。之后,TXD 引脚会出现移位脉冲,串口等待 RXD 引脚上出现的数据位,并将其送入移位寄存器。当接收完一个完整数据帧后,硬件将移位寄存器中的数据送入接收缓冲区 SBUF,并将接收中断请求标志位 RI 置 1,表明数据接收完毕。再次接收数据前,需将 SBUF 中的数据取走,并将 RI 清 0。取 SBUF 中的数据可以用指令 “MOV A,SBUF”,该指令将接收缓冲区的数据送入累加器 A。同样,只能用软件指令将 RI 清 0,如指令 “CLR RI”,因为单片机硬件不会自动将 RI 清 0。
  方式 1:8 位数据传输

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

  数据发送:与方式 0 相似,发送前先将 TI 清 0,然后向 SBUF 中写入数据启动发送,被发送的数据从 TXD 向外输出,低位在前高位在后。一帧数据发送完毕后,TI 被单片机硬件置 1,再次发送数据前,必须用软件指令将 TI 清 0。
  数据接收:令 REN = 1 且 RI = 0 启动接收过程,通过 RXD 接收字符数据帧,接收顺序为先低位再高位。实际上,数据的接收是通过采样实现的,每个数据位上 RXD 被采样 3 次,其中两次相同的采样值作为采样结果送入接收端的移位寄存器。一个完整字符帧接收完毕后,RI 被置 1,并且接收的 8 个数据位被送入接收缓冲区,而停止位 “1” 被送入接收方 SCON 的 RB8 中。若再次接收数据,则必须提前将 RI 清 0。
  方式 2 和方式 3:多机通信
  串口工作方式 2 和方式 3 属于多机通信方式(多机通信的具体实现方法见前文关于 SM2 的描述),主机与从机的连接关系如图 4 - 23 所示,其时序如图 4 - 24 所示。方式 2 和方式 3 的差别是波特率计算公式不同。其字符帧包含 11 个二进制位,与方式 1 相比,在停止位前多了 TB8 位,该 TB8 位来自于发送方 SCON 寄存器中的 TB8 位,发送方的 TB8 位终将被送入接收方 SCON 寄存器的 RB8 位中。
  数据发送:与其他工作方式的发送过程相同,发送前需将 TI 清 0,然后向 SBUF 中写入数据以启动发送,数据由 TXD 向外发送,数据发送完毕后,TI 被硬件置 1,再次发送数据前,必须用指令将 TI 再次清 0。
  数据接收:串口接收数据前,需令 REN = 1 且 RI = 0,数据由 RXD 引脚接收。在字符数据帧中,停止位和 D7 之间的位来自发送方的 TB8,并被送入接收方 SCON 寄存器的 RB8 位中。因此在图 4 - 24 所示接收时序中,停止位和 D7 之间的位用 RB8 表示。一个字符数据帧接收完毕后,RI 不一定被硬件置 1,RI 被硬件置 1 的情况有两种,分别是:①SM0 = 0;②SM0 = 1 并且 RB8 = 1。再次接收数据前,必须将 RI 清 0,并令 REN = 1。
关键词:MCS - 51 单片机  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//domainnameq.cn,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
 一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
 9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!