9.2 MCS-51单片机串行接口

更新于 2026年10月10日 版权声明
9.2 MCS-51单片机串行接口

MCS-51单片机内部有一个可编程全双工串行接口,可同时发送和接收数据。它有四种工作方式,可供不同场合使用。波特率由软件设置,通过片内的定时/计数器产生。接收、发送均可工作在查询或中断方式。

9.2.1 MCS-51系列单片机串行口结构

MSC-51单片机的内部结构如图9-4所示,由发送缓冲寄存器SBUF、发送控制器、发送控制门、接收缓冲寄存器SBUF、接收控制器、移位寄存器和中断等部分组成。

图示

图9-4 MCS-51串行口结构

1.SBUF

SBUF是两个在物理上独立的接收、发送寄存器,一个用于存放接收到的数据,另一个用于存放待发送的数据,可同时发送和接收数据。两个缓冲器共用一个地址99H,通过对SBUF的读、写语句来区别是对接收缓冲器还是发送缓冲器进行操作。CPU在写SBUF时,操作的是发送缓冲器;读SBUF时,就是读接收缓冲器的内容。

2.SCON

SCON是MSC-51系列单片机的一个可位寻址的专用寄存器,用于串行数据通信的控制。字节地址为98H,位地址为9FH~98H。其各位的定义见表9-1。

表9-1 SCON的各位定义

图示

对各位的含义说明如下:

① SM1、SM0:串行方式选择位,具体含义见表9-2。

表9-2 串行口的工作方式

图示

② SM2:多机通信控制位,用于方式2和方式3中。

③ REN:允许串行接收位。由软件置位或清零。REN=1时,允许接收,REN=0时,禁止接收。

④ TB8:发送数据的第9位。在方式2和方式3中,由软件置位或复位。一般可作奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时TB8为1,数据帧时TB8为0。

⑤ RB8:接收数据的第9位。

⑥ TI:发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;在其他方式中,在发送停止位之初由硬件置位。因此,TI=1是发送完一帧数据的标志,其状态既可供软件查询使用,也可请求中断。TI位必须由软件清零。

⑦ RI:接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;在其他方式中,当接收到停止位时该位由硬件置“1”。因此,RI=1是接收完一帧数据的标志,其状态既可供软件查询使用,也可请求中断。RI位也必须由软件清零。

3.PCON

PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。字节地址为:0x87,其内容见表9-3。

表9-3 PCON的各位定义

图示

与串行通信有关的只有SMOD位。SMOD为波特率选择位。在方式1、2和3时,串行通信的波特率与SMOD有关。当SMOD=1时,通信波特率乘2,当SMOD=0时,波特率不变。(https://www.daowen.com)

9.2.2 串行口工作方式

MCS-51系列单片机串行口有四种工作方式,由SCON中的SM0、SM1两位选择决定。

1.方式0

当SCON中SM1SM0=00时,工作在方式0。在方式0下,串行口作同步移位寄存器使用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。

这种方式通常用于扩展I/O口。

2.方式1

当SCON中SM1SM0=01时,工作在方式1。在方式1下,一帧为10位,其中1位起始位(0),1位停止位(1),8位数据位。数据格式如图9-5所示。用T1作为波特率发生器,图示溢出率。

图示

图9-5 方式1字符帧格式

发送数据时,数据写入SBUF,同时启动发送,一帧数据发送结束,置位发送中断标志位TI。

接收数据时,如REN=1则允许接收。接收完一帧,如RI=0且停止位为1(或SM2=0),将接收数据装入SBUF,停止位装入RB8,并置位RI;否则丢弃接收数据。

3.方式2和方式3

当SCON中SM1SM0=10时,选择工作方式2;当SCON中SM1SM0=11时,选择工作方式2。在方式2和方式3下,一帧数据为11位,其中1位起始位(0),1位停止位(1),9位数据位。第9位数据位在TB8/RB8中,常用作校验位和多机通信标识位。数据格式如图9-6所示。两种方式的波特率不同,其中方式2的波特率图示,方式3的波特率图示溢出率。

图示

图9-6 方式2字符帧格式

9.2.3 波特率设置

MCS-51系列单片机有四种工作方式,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率可变,由定时器T1的溢出率决定。

1.方式0和方式2

在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。在方式2中,波特率取决于PCON中的SMOD值,当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。即波特率图示。

2.方式1和方式3

方式1和方式3的波特率图示

其中,T1的溢出率取决于单片机定时器1的计数速率和定时器的预置值。计数速率与TMOD寄存器中的图示位有关,当C/T=0时,计数速率为fosc/12,当图示时,计数速率为外部输入时钟频率。

表9-4为常用的波特率及获得方法。

表9-4 常用的波特率及获得方法

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)