表6-1串行口的4种工作方式方式SMOSMI功能说明000同步移位寄存器方式(用于扩展I/0口)0118位异步收发,波特率可变(由定时器控制)1029位异步收发,波特率为f../64或f.../321319位异步收发,波特率可变(由定时器控制)(2) SM2-多机通信控制位多机通信是在方式2和方式3下进行。当串口以方式2或方式3居(RB8)为“1”接收时,如果SM2=1,则只有当接收到的第9位数据时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送入SBUF。居(RB8)为“0”时,则将接收到的前8当接收到的第9位数据位数据丢弃。21
21 (2)SM2——多机通信控制位 多机通信是在方式2和方式3下进行。当串口以方式2或方式3 接收时,如果SM2=1,则只有当接收到的第9位数据(RB8)为“1” 时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送 入SBUF。 当接收到的第9位数据(RB8)为“0”时,则将接收到的前8 位数据丢弃。 21
当SM2=0时,则不论第9位数据是1还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时,SM2必须为0。(3)REN一一允许串行接收位。由软件置“1”或清“0”。REN=1,允许串行口接收数据。REN=0,禁止串行口接收数据。22
22 当SM2 = 0时,则不论第9位数据是1还是0,都将前8位数 据送入SBUF中,并使RI置1,产生中断请求。 在方式1时,如果SM2=1,则只有收到有效的停止位时才会 激活RI。 在方式0时,SM2必须为0。 (3)REN——允许串行接收位。 由软件置“1”或清“0”。 REN=1,允许串行口接收数据。 REN=0,禁止串行口接收数据。 22
(4)TB8一一发送的第9位数据方式2和方式3,TB8是要发送的第9位数据,其值由软件置“1”或清“0”。在双机串行通信时,一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址顿还是数据帧,TB8=1为地址顿,TB8=0为数据顿。(5)RB8一接收的第9位数据方式2和方式3,RB8存放接收到的第9位数据。在方式1,如SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。(6)TI一一发送中断标志位方式0,串行发送的第8位数据结束时TI由硬件置“1”,在其他方式中,串行口发送停止位的开始时置TI为“1”。23
23 (4)TB8——发送的第9位数据 方式2和方式3,TB8是要发送的第9位数据,其值由软件置 “1”或清“0”。在双机串行通信时,一般作为奇偶校验位使 用;在多机串行通信中用来表示主机发送的是地址帧还是数据 帧,TB8=1为地址帧,TB8=0为数据帧。 (5)RB8——接收的第9位数据 方式2和方式3,RB8存放接收到的第9位数据。在方式1,如 SM2 = 0,RB8是接收到的停止位。在方式0,不使用RB8。 (6)TI——发送中断标志位 方式0,串行发送的第8位数据结束时TI由硬件置“1”,在 其他方式中,串行口发送停止位的开始时置TI 为“1”。 23
TI=1,表示一顿数据发送结束。TI的状态可供软件查询,也可申请中断。CPU响应中断后,在中断服务程序中向SBUF写入要发送的下一数据。TI必须由软件清“0”(7)RI一接收中断标志位方式0时,接收完第8位数据时,RI由硬件置“1”。在其他工作方式中,串行接收到停止位时,该位置“1”。RI=1,表示一数据接收完毕,并申请中断,要求CPU从接收SBUF取走数据。该位的状态也可供软件查询。RI必须由软件清“0”。24
24 TI =1,表示一帧数据发送结束。TI的状态可供软件查询, 也可申请中断。CPU响应中断后,在中断服务程序中向 SBUF写入要发送的下一帧数据。TI必须由软件清“0”。 (7)RI—接收中断标志位 方式0时,接收完第8位数据时,RI由硬件置“1”。在其 他工作方式中,串行接收到停止位时,该位置“1”。RI = 1, 表示一帧数据接收完毕,并申请中断,要求CPU从接收 SBUF取走数据。该位的状态也可供软件查询。RI必须由软 件清“0
SCON的所有位都可进行位操作清“0”或置“1”。6.2.25特殊功能寄存器PCON字节地址为87H,不能位寻址。格式如图6-8所示。D7D6DSD4D3D2D1D0PDIDLPCONSMODGF1GFO87H图6-8特殊功能寄存器PCON的格式25
25 SCON的所有位都可进行位操作清“0”或置“1”。 6.2.2 特殊功能寄存器PCON 字节地址为87H,不能位寻址。格式如图6-8所示。 25 图6-8 特殊功能寄存器PCON的格式