SM2 :多机通讯控制位。在方式 0 时, SM2 一定要等于 0 。在方式 1 中,当( SM2 ) =1 则只有接收到有效停止位时, RI 才置 1 。在方式 2 或方式 3 当( SM2 ) =1 且接收到的第九位数据 RB8=0 时, RI 才置1。
REN :接收允许控制位。由软件置位以允许接收,又由软件清 0 来禁止接收。
TB8: 是要发送数据的第 9 位。在方式 2 或方式 3 中,要发送的第 9 位数据,根据需要由软件置 1 或清 0 。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。
RB8 :接收到的数据的第 9 位。在方式 0 中不使用 RB8 。在方式 1 中,若( SM2 ) =0 , RB8 为接收到的停止位。在方式 2 或方式 3 中, RB8 为接收到的第 9 位数据。
TI : 发送中断标志。在方式 0 中,第 8 位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。 TI 置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。 TI 必须用软件清 0 。
RI : 接收中断标志位。在方式 0 ,当接收完第 8 位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于 SM2 的说明)。 RI 置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。 RI 也必须用软件清 0 。
特殊功能寄存器 PCON
PCON 是为了在 CHMOS 的 80C51 单片机上实现电源控制而附加的。其中最高位是 SMOD 。
- 串行口的工作方式
8051 单片机的全双工串行口可编程为 4 种工作方式,现分述如下:
- 方式 0 为移位寄存器输入 / 输出方式。可外接移位寄存器以扩展 I/O 口,也可以外接同步输入 / 输出设备。 8 位串行数据者是从 RXD 输入或输出, TXD 用来输出同步脉冲。
- 输出 串行数据从 RXD 引脚输出, TXD 引脚输出移位脉冲。 CPU 将数据写入发送寄存器时,立即启动发送,将 8 位数据以 fos/12 的固定波特率从 RXD 输出,低位在前,高位在后。发送完一帧数据后,发送中断标志 TI 由硬件置位。
- 输入 当串行口以方式 0 接收时,先置位允许接收控制位 REN 。此时, RXD 为串行数据输入端, TXD 仍为同步脉冲移位输出端。当( RI ) =0 和( REN ) =1 同时满足时,开始接收。当接收到第 8 位数据时,将数据移入接收寄存器,并由硬件置位 RI 。
下面两图分别是方式 0 扩展输出和输入的接线图。
- 方式 1 为波特率可变的 10 位异步通讯接口方式。发送或接收一帧信息,包括 1 个起始位 0 , 8 个数据位和 1 个停止位 1 。
- 输出 当 CPU 执行一条指令将数据写入发送缓冲 SBUF 时,就启动发送。串行数据从 TXD 引脚输出,发送完一帧数据后,就由硬件置位 TI 。
- 输入 在( REN ) =1 时,串行口采样 RXD 引脚,当采样到 1 至 0 的跳变时,确认是开始位 0 ,就开始接收一帧数据。只有当( RI ) =0 且停止位为 1 或者( SM2 ) =0 时,停止位才进入 RB8 , 8 位数据才能进入接收寄存器,并由硬件置位中断标志 RI ;否则信息丢失。所以在方式 1 接收时,应先用软件清零 RI 和 SM2 标志。