MCS-51单片机串行接口
(1) 了解串行接口的结构。
(2) 了解串行接口的控制与状态寄存器工作原理。
(二)内容提要
一:串行接口的结构
串行接口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输入移位寄存器、波特率发生器T1等组成。
串行口中还有两个特殊功能寄存器SCON、PCON,特殊功能寄存器SCON用来存放串行口的控制和状态信息。定时器/计数器1(T1)与定时器/计数器2(T2)都可构成串行口的波特率发生器,其波特率是否增倍可由特殊功能寄存器PCON的最高位控制。
二:串行接口控制与状态寄存器
MCS-51串行口的工作方式选择、中断标志、可编程位的设置、波特率的增倍均是通过两个特殊功能寄存器SCON和PCON来控制的。
1. 电源和波特率控制寄存器PCON
电源控制寄存器PCON的格式如下:
电源和波特率控制寄存器PCON,其地址为87H,只能进行字节寻址,不能按位寻址。PCON的最高位D7位作SMOD,是串行口波特率的增倍控制位。当SMOD=1时,波特率加倍。例如在工作方式2下,若SMOD=0时,则波特率为 fosc/64;当SMOD=1时,则波特率为
fosc/32,恰好增大一倍。系统复位时,SMOD位为0。串行口控制寄存器SCON
解SCON各位的含义如下:
D7 D6 D5 D4 D3 D2 D1 D0
98H 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H (1)串行口控制方式选择位SM0、SM1,其SM0、SM1由软件置位或清零,用于选择串行口的4种工作方式。
(2)多机通信控制位SM2和接收中断标志位RI SM2=1时,如果接收到的一帧信息中的第九位数据为1,且原有的接收中断标志位RI=0,则硬件将RI置1;如果第九位数据为0,则RI不置1,且所接收的数据无效。
SM2=0时,只要接收到一帧信息,不管第九位数据是0还是1,硬件都置RI=0,RI由软件清零。SM2由软件置位或清零。
多机通信时,SM2必须置1,双机通信时,通常使SM2=0。方式0时SM2必须为0。
(3)发送中断标志位TI 在方式0中,发送完8位数据后,由硬件置位;在其它方式中,在发送停止位之初,由硬件使TI=1。TI置位后可向CPU申请中断,任何方式中TI位都必须由软件清除。
(4 ) 接收中断标志RI 在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位的一半时由硬件将RI置位(还应考虑SM2的设定)。RI被置位后可允许CPU申请中断,任何方式中TI位都必须由软件来清除。
串行发送中断标志TI和接收中断标志RI共用一个中断源,CPU并不知道是TI还是RI产生的中断请求,所以在全双工通信时,必须由软件来断别。