第 7章 MCS-51单片机的串行接口
MCS-51中的串行接口是一个全双工 (full duplex)通信接口,即能同时进行发送和接收(若可以发送和接收,但不能同时进行,则称半双工;只能发送或接收的称为单工),它可以作 UART通用异步接收和发送器用,也可以作同步移位寄存器用。
MCS-51串行接口中有一个接收缓冲器,这意味着,
在第一个字节从接收寄存器读走之前,就可以开始第二字节的接收(但如果第二字节已经接收完毕,第一字节还没有被读走,则第一字节将丢失)。串行口的接收和发送均是通过特殊功能寄存器 SBUF的操作完成的:要发送的数据要写入 SBUF,接收的数据从 SBUF
读取,也就是说,在物理上,它对应着两个寄存器,
一个发送寄存器,一个接收寄存器。
7.1 MCS-51串行接口的四种运行模式
模式 0,同步移位寄存器方式。 8位数据(先为
LSB)从引脚 RXD接收 /移出,引脚 TXD输出移位时钟,波特率固定为晶振频率的 1/12。模式 0通常用来扩展输入输出口。
模式 1,10位数据被发送(从引脚 TXD)或接收(从引脚 RXD),1个启动位,8个数据位,
1个停止位。在接收时,停止位被送入特殊功能寄存器的 SCON的 RB8位。波特率可变。
模式 2,11位数据被发送(从引脚 TXD)或接收
(从引脚 RXD),1个启动位,8个数据位,可编程的第 9个数据位,1个停止位。发送时,第 9位
( SCON 的 TB8位)可被赋予 0或 1。例如,可将奇偶校验位送至 TB8位。在接收时,停止位被送入特殊功能寄存器 SCON的 RB8位。模式 2的波特率可为 1/32或 1/64晶振频率。
模式 3,11位数据被发送(从引脚 TXD)或接收
(从引脚 RXD),1个启动位,8个数据位,可编程的第 9个数据位,1个停止位。发送时,第 9位
( SCON 的 TB8位)可被赋予 0或 1。实际上,除了波特率之外,模式 2和模式 3是相同的。模式 3
的波特率是可变的。
7.2 串行口控制寄存器
1.串行口控制寄存器 SCON 串行口控制寄存器 SCON,字节地址 98H,所有位均可位寻址,位地址 98~ 9FH。 SCON的格式如下图所示。
串行口控制寄存器 SCON的格式
SM0,SM1是串行口 4种工作方式选择位,所对应的工作方式如下表所示。
SM2是多机通信控制位。
(1)若 SM2=1,则模式 2和模式 3可用于多处理机通讯,在这些方式中,9个数据位被收到,第 9位数据被送入 RB8,然后是停止位。仅当 RB8=1,
单片机在收到停止位后,串行口中断被激活。
(2)若 SM2=0,则不论收到的第 9位数据是,1”还是,0”,都将前 8位数据送入 SBUF,并产生中断请求。
在方式 1时,如果 SM2=1,则只有收到有效的停止位才会激活 RI,在方式 0,SM2必须为 0。
REN 允许串行接收位由软件置,1”或清,0”。
REN = 1,允许串行接收
REN = 0,禁止串行接收
TB8 为要发送的第 9位数据在方式 2和 3时,TB8是要发送数据的第 9位数据。由软件置,1”或清,0”。双机通信时,
TB8 一般作为奇偶校验位使用;多机通信中用来表示主机发送的数据是地址帧还是数据帧。 TB8 = 1,为地址帧,TB8 = 0
为数据帧。
RB8 为接收到的第 9位在方式 2和 3时,RB8存放接收到的第 9位数据。在方式 1,如果 SM2 = 0,RB8是收到的停止位。在方式 0,不使用 RB8。
TI 发送中断标志位串行口工作在方式 0时,串行发送第 8位数据结束时由硬件置,1”。在其他工作方式,串行口发送停止位的开始时置,1”。 TI = 1,表示一帧数据发送结束,TI的状态可供软件查询,也可申请中断。 CPU相应中断后,向 SBUF写入要发送的下一帧数据。 TI必须由软件清,0”。
RI 接收中断标志位串行口工作在方式 0时,接受完第 8位数据结束时由硬件置,1”。在其他工作方式,串行口接收到停止位的开始时置,1”。 TI = 1,表示一帧数据接收完毕,并申请中断,要求 CPU从
SBUF取走数据。 RI的状态也可供软件查询,RI
必须由软件清,0”。
2,特殊功能寄存器 PCON 特殊功能寄存器
PCON字节地址为 87H,不能位寻址,其格式如图所示。
SMOD:波特率选择位例如:方式 1的波特率的计算公式为
)1(
32
2 S M O D 溢出率定时器?
PCON的寄存器格式
7.3 波特率的产生模式 0的波特率是固定的,即
120
晶振频率的波特率模式?
模式 2的波特率取决于特特殊功能寄存器 PCON的
SMOD位。
如 SMOD=0,波特率是晶振频率的 1/64。
如 SMOD=1,则波特率等于晶振频率的 1/32,即模式
2的波特率按下式计算晶振频率的波特率模式 6422
S M O D
串行口控制寄存器 SCON中的 SM2为方式 2和方式 3的多机通讯控制位,当串行口以方式 2或方式 3工作时,若 SM2=1,此时仅当串行口接收到的第 9位数据 RB8为 1
时才置 1中断标志 RI,若接收到的 RB8为 0,
则不产生中断标志,信息被丢失。应用串行口的这个特性,便可实现多机通讯。
7.4 多机通讯