#串行口的控制寄存器
MCS-
51单片机串行口是由
缓冲器SBUF、
移位寄存器、串行口控制寄存器SCON、电源控制寄存器PCON及波特率发生器T1组成。
主要解释如下:
1.串行口数据缓冲器SBUF
MCS-51单片机内的串行接口部分,具有两个物理上独立的缓冲器:发送缓冲器和接收缓冲器,以便能以
全双工的方式进行通信。串行口的接收由移位寄存器和接收缓冲器构成双缓冲结构,能避免在接收数据过程中出现帧重叠。发送时因为CPU是主动的,不会发生帧重叠错误,所以发送结构是单缓冲的。
在逻辑上,串行口的缓冲器只有一个,它既表示接收缓冲器,也表示发送缓冲器。两者共用一个寄存器名SBUF,共用一个地址99H。
即:在完成串行口初始化后,发送数据时,采用MOV SBUF,A指令,将要发送的
数据输入SBUF,则CPU自动启动和完成串行数据的输出;接收数据时,采用MOV A,SBUF指令,CPU就自动将接收到的数据从SBUF中读出。
2.串行口控制寄存器SCON
串行口控制寄存器SCON包含:串行口工作方式选择位、接收发送控制位、以及串行口状态标志位。其格式如下:
D7--D0分别对应
SM0 SM1 SM0 REN TB8 RB8 TI RI
①SM0 SM1(SCON.7、SCON.6):串行口的工作方式选择位
②SM2(SCON.5):多机通信控制位。在方式2或方式3中,若SM2=1,则只有当接收到的第9位数据(RB8)为1时,才能将接收到的数据送入SBUF,并使接收中断标志RI置位向CPU申请中断,否则数据丢失;若SM2=0,则不论接收到的第9位数据为1还是为0,都将会把前8位数据装入SBUF中,并使接收中断标志RI置位向CPU申请中断。在方式1,如SM2=1,则只有收到有效的停止位时才会使RI置位。在方式0时,SM2必须为0。
③REN(SCON.4):串行口接收允许位。由软件置位以允许接收,由软件清0来禁止接收。
④TB8(SCON.3):在方式2和方式3中为发送的第9位数据。在多机通信中,常以该位的状态来表示主机发送的是地址还是数据。通常协议规定:TB8为“0”表示主机发送的是数据,为“1”表示发送的是地址。
⑤RB8(SCON.2):在方式2和方式3中为接收到的第9位数据。它和SM2、TB8一起用于通信控制。
⑥TI(SCON.1):发送中断标志。由硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位,必须由软件清“0”。
⑦RI(SCON.0):接收中断标志。由硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位,必须由软件清“0”。