第7章串行口.ppt.PPT

第7章串行口.ppt

* 1.方式2发送 发送前,先根据通信协议由软件设置TB8(如奇偶校验位或多机通信的地址/数据标志位),然后将要发送的数据写入SBUF,即启动发送。TB8自动装入第9位数据位,逐一发送。发送完毕,使TI位置“1”。 发送时序如图7-14所示。 图7-14 方式2和方式3发送时序 * * 【例7-1】方式2发送在双机串行通信中的应用 下面的发送中断服务程序,以TB8作为奇偶校验位,偶校验发送。数据写入SBUF之前,先将数据的偶校验位写入TB8(设第2组的工作寄存器区的R0作为发送数据区地址指针)。 PIPTI: PUSH PSW ;现场保护 PUSH Acc SETB RS1 ;选择第2组工作寄存器区 CLR RS0 CLR TI ;发送中断标志清“0” MOV A,@R0 ;取数据 MOV C,P ;校验位送TB8, 采用偶校验 MOV TB8,C ;P=1,校验位TB8=1,P=0,校验位TB8=0 * * MOV SBUF ,A ;A数据发送,同时发TB8 INC R0 ;数据指针加1 POP Acc ;恢复现场 POP PSW RETI ;中断返回 2.方式2接收 SM0、SM1=10,且REN?=?1时,以方式2接收数据。数据由RXD端输入,接收11位信息。当位检测逻辑采样到RXD的负跳变,判断起始位有效,便开始接收一帧信息。在接收完第9位数据后,需满足以下两个条件,才能将接收到的数据送入SBUF(接收缓冲器)。 (1)RI?=?0,意味着接收缓冲器为空。 (2)SM2?=?0或接收到的第9位数据位RB8?=?1。 * * 当满足上述两个条件时,收到的数据送SBUF(接收缓冲器),第9位数据送入RB8,且RI置“1”。若不满足这两个条件,接收的信息将被丢弃。 串行口方式2和方式3接收时序如图7-15所示。 图7-15 方式2和方式3接收时序 * * 【例7-2】方式2接收在双机通信中的应用。 本例对例7-1发送的数据进行偶校验接收,程序如下(设1组寄存器区的R0为数据缓冲区指针)。 PIRI: PUSH PSW ;保护现场 PUSH Acc SETB RS0 ;选择1组寄存器区 CLR RS1 CLR RI MOV A,SBUF ;将接收到数据送到累加器A MOV C,P ;接收到数据字节的奇偶性送入C位 * * JNC L1 ;C=0,收的字节1的个数为偶数,跳L1处 JNB RB8,ERP ;C=1,再判RB8=0?如RB8=0,则 ;出错,跳ERP出错处理 AJMP L2 ;C=1,RB8=1,收的数据正确,跳L2处 L1: JB RB8,ERP ;C=0,再判RB8=1?如RB8=1, ;则出错,跳ERP出错处理 L2: MOV @R0,A ;C=0,RB8=0或C=1,RB8=1, ;接收数据正确,存入数据缓冲区 INC R0 ;数据缓冲区指针增1,为下次接收做准备 POP Acc ;恢复现场 POP PSW ajmp exit * * ERP: …… ;出错处理程序段入口 …… exit: RETI 7.2.4 方式3 SM0、SM1=11时,方式3。为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。方式3发送和接收时序如图7-11和图7-12所示。 方式3波特率?=? ? ??定时器T1的溢出率 * * 7.3 多机通信 多个单片机可利用串行口进行多机通信,经常采用如图7-16所示的主从式结构。系统中有1个主机(单片机或其他有串行接口的微机)和多个单片机组成的从机系统。主机的RXD与所有从机的TXD端相连,TXD与所有从机的RXD端相连。从机地址分别为01H、02H和03H。 图7-16 多机通信系统示意图 * * 7.4 波特率的制定方法 串行通信,收、发双方发送或接收的波特率必须一致。4种工作方式。 方式0和方式2的波特率是固定的; 方式1和方式3的波特

文档评论(0)

1亿VIP精品文档

相关文档