2.方式2接收 SM0、SM1=10,且REN=1时,以方式2接收数据。数据由RXD端 输入,接收11位信息。当位检测逻辑采样到XD的负跳变,判 断起始位有效,便开始接收一帧信息。在接收完第9位数据后, 需满足以下两个条件,才能将接收到的数据送入SBUF(接收缓 冲器)。 (1)RI=0,意味着接收缓冲器为空。 (2)SM2=0或RB8=1。 11
11 2.方式2接收 SM0、SM1=10,且REN=1时,以方式2接收数据。数据由RXD端 输入,接收11位信息。当位检测逻辑采样到RXD的负跳变,判 断起始位有效,便开始接收一帧信息。在接收完第9位数据后, 需满足以下两个条件,才能将接收到的数据送入SBUF(接收缓 冲器)。 (1)RI=0,意味着接收缓冲器为空。 (2)SM2=0 或 RB8=1。 11
当满足上述两个条件时,收到的数据送SBUF(接收缓冲 器),第9位数据送入RB8,且RI置“1”。若不满足这两个 条件,接收的信息将被丢弃。 串行口方式2和方式3接收时序如图6-20所示。 RX时钟 RXD 起始位D0 D1 D2 D3 D4 D5 D6 D7 RB8停止位 位检测采样 RI 图6-20 方式2和方式3接收时序
12 当满足上述两个条件时,收到的数据送SBUF(接收缓冲 器),第9位数据送入RB8,且RI置“1”。若不满足这两个 条件,接收的信息将被丢弃。 串行口方式2和方式3接收时序如图6-20所示。 12 图6-20 方式2和方式3接收时序
【例6-2】方式2接收在双机通信中的应用。 本例对例6-1发送的数据进行偶校验接收,程序如下(设1 组寄存器区的RO为数据缓冲区指针)。 PIRI: PUSH PSW ;保护现场 PUSH Acc CLR RS1 ;选择1组寄存器区 SETB RSO CLR RI ;清接收中断标志RI MOV A,SBUF ,将接收到数据送入累加器A 13
13 【例6-2】方式2接收在双机通信中的应用。 本例对例6-1发送的数据进行偶校验接收,程序如下(设1 组寄存器区的R0为数据缓冲区指针)。 13
MOV C,P ;接收到数据字节的奇偶性送入C位 JNC Li ; C=0,表示接收到的字节中1的个数为偶数,跳L1处 JNB RB8,ERP ,;C=1,再判RB8=0?如B8=0,则出错,跳E即出错处理 A灯G L2 ;C=1,B8=1,接收的数据正确,跳L2处 L1: JB RB8,ERP ;C=0,再判RB8=1?如RB8=1,则出错,跳E即出错处理 L2: MOV @R0,A ;C与R8=0或C与B8=1,接收数据正确,存数据缓冲区 INc RO ;数据缓冲区指针增1,为下一次接收数据做准备 POP Acc ;恢复现场 POP PSW ERP: ;出错处理程序段入口 RETI 14
14
6.3.4方式3 当SM0、SM1两位为11时,串行口被定义为方式3。方式3 为波特率可变的9位异步通信方式,除了波特率外,方式3和方 式2相同。方式3发送和接收时序如图6-19和图6-20所示。 方式3的波特率由下式确定: 25M0D 方式3波特率= ×定时器T1的溢出率 32 15
15 6.3.4 方式3 当SM0、SM1两位为11时,串行口被定义为方式3。方式3 为波特率可变的9位异步通信方式,除了波特率外,方式3和方 式2相同。方式3发送和接收时序如图6-19和图6-20所示。 方式3的波特率由下式确定: