串行口在结构上主要由串行口控制寄存器SCON、发送和接收电路三部分组成,见图8-10。与串行口有关的特殊功能寄存器有SBUF、SCON、PCON,下面对它们分别详细讨论。
图8-10 串行口结构示意图
(1)串行口数据缓冲器SBUF(99H):不可位寻址。
SBUF是两个在物理上独立的接收、发送寄存器,一个用于存放接收到的数据,另一个用于存放欲发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是对发送缓冲器进行操作。CPU在写SBUF时,就是修改发送缓冲器的内容;读SBUF时,就是读接收缓冲器的内容。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的,因此可以同时发送、接收数据,为全双工制式。
(2)串行口控制寄存器SCON(98H):可以位寻址。格式如下:
对各位的说明如下:
·SM0、SM1:串行方式选择位。其定义如表8-2所示。
表8-2 串行方式选择
注:fosc是振荡器的频率,UART为通用异步接收和发送器的英文缩写。(www.xing528.com)
·SM2:多机通信控制位,用于方式2和方式3中。在方式2和方式3处于接收方式时,若SM2=1,且接收到的第9位数据RB8为0时,不激活RI;若SM2=1,且RB8为1时,则置RI为“1”。在方式2、3处于接收或发送方式时,若SM2=0,不论接收到的第9位RB8为0还是为1,TI、RI都以正常方式被激活。在方式1处于接收方式时,若SM2=1,则只有收到有效的停止位后,RI置“1”。在方式0中,SM2应为0。
·REN:允许串行接收位。由软件置位或清“0”。当REN=1时,允许接收;当REN=0时,禁止接收。
·TB8:发送数据的第9位。在方式2和方式3中,由软件置位或复位,可做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。
·RB8:接收数据的第9位。功能同TB8。
·TI:发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;在其他方式中,在发送停止位之初由硬件置位。因此,TI是发送完一帧数据的标志。TI=1时,也可向CPU申请中断,响应中断后都必须由软件清除TI。
·RI:接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;在其他方式中,在接收停止位的中间由硬件置位。RI=1时,也可向CPU申请中断,响应中断后都必须由软件清除RI。
(3)电源及波特率选择寄存器PCON(87H):不可位寻址。
PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,不可位寻址,字节地址为87H。在HMOS的51单片机中,PCON除了最高位以外其他位都是虚设的。其格式如下:
与串行通信有关的只有SMOD位。SMOD为波特率选择位。在方式1、方式2和方式3下,串行通信的波特率与SMOD有关。当SMOD=1时,通信波特率乘2;当SMOD=0时,波特率不变。其他各位用于电源管理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。