(笔记总结)80C51的串行口

80C51的串行口的结构

SBUF:两个物理上独立的接收、发送缓冲器。他们两个占用同一个地址99H。接收器是双缓冲结构,发送缓冲器,因为发送时,CPU是主动的,不会产生重叠错误。

80C51的串行口的控制寄存器

1.SCON是一个特殊功能寄存器,用来设定串行口的工作方式接收/发送控制以及设置状态标志

SM0和SM1是工作方式选择位(和之前一样),可以选择四种工作方式,如下

SM0、SM1 工作方式 说明 波特率
00 方式0 移位寄存器 12
01 方式1 10位异步收发器(8位数据) 可变
10 方式2 11位异步收发器(9位数据) 64或32
11 方式3 11位异步收发器(9位数据) 可变

RI(SCON.0),接收中断标志位。在方式0时,当串行接收第8位数据结束时;或在其他方式,串行接收停止位中间时,由内部硬件使RI置1,向CPU发出中断申请。在中断服务程序中,用软件将其清0,取消此中断申请。

TI(SCON.1),发送中断标志位。在方式0时,当串行发送第8位数据结束时;或在其他方式,串行发送停止位中间时,由内部硬件使TI置1,向CPU发出中断申请。在中断服务程序中,用软件将其清0,取消此中断申请。

RB8(SCON.2),在方式2或方式3中,是接受到数据的第九位,可以用软件规定起作用,可以用作数据的奇偶校验位。在多机通信中,作为地址帧、数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。

TB8(SCON.3),在方式2或方式3中,是发送数据的第九位,可以用软件规定起作用,可以用作数据的奇偶校验位。在多机通信中,作为地址帧、数据帧的标志位。在方式0和方式1中,该位未用。

REN(SCON.4),允许串行接受位。由软件置REN=1,则启动串行口接收数据。若软件置REN=0,则禁止接收。

SM2(SCON.5),多机通信控制位。主要用于方式2和方式3,当接收机的SM2=1时,可以利用收到的RB8来控制是否激活RI。(RB8=0时,不激活RI,收到的信息丢弃;RB8=1时,激活RI,收到的数据进入SBUF,进而在中断服务中将数据从SBUF中读走)。当接收机的SM2=0时,不论收到的RB8为0和1,均可以是收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。在方式0时,SM2必须是0。在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1。

2.PCON中只有一位SMOD与串行口工作有关,如下

SMOD(PCON.7),波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,比特率增加一倍。复位时,SMOD=0。

猜你喜欢

转载自blog.csdn.net/niuyuce/article/details/84620042