第七章串行接口答案
- 格式:doc
- 大小:27.50 KB
- 文档页数:6
第七章1、什么是串行异步通信,它有哪些作用?答:在异步串行通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式参考书。
通信采用帧格式,无需同步字符。
存在空闲位也是异步通信的特征之一。
2、89C51单片机的串行口由哪些功能部件组成?各有什么作用?答:89C51单片机的串行接口由发送缓冲期SBUF,接收缓冲期SBUF、输入移位寄存器、串行接口控制器SCON、定时器T1构成的波特率发生器等部件组成。
由发送缓冲期SBUF发送数据,接收缓冲期SBUF接收数据。
串行接口通信的工作方式选择、接收和发送控制及状态等均由串行接口控制寄存器SCON控制和指示。
定时器T1产生串行通信所需的波特率。
3、简述串行口接收和发送数据的过程。
答:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读和写的。
当向SBUF发“写”命令时(执行“MOV SBUF,A”),即向缓冲期SBUF装载并开始TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。
在满足串行接口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN (SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。
当发读SBUF命令时(执行“MOV A, SBUF”),便由接收缓冲期SBUF 取出信息通过89C51内部总线送CPU。
4、89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?答:89C51串行口有4种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。
有2种帧格式:10位,11位方式0:方式0的波特率≌fosc/12(波特率固定为振荡频率1/12)方式2:方式2波特率≌2SMOD/64×fosc方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率)如果T1采用模式2则:5、若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?答:已知每分钟传送3600个字符,方式3每个字符11位,则:波特率=(11b/字符)×(3600字符/60s)=660b/s6、89C51中SCON的SM2,TB8,RB8有何作用?答:89c51SCON的SM2是多机通信控制位,主要用于方式2和方式3.若置SM2=1,则允许多机通信。
微机原理与接口技术第七章课后答案1、 Keil uVision 5集成开发环境中,钩选“creat Hex File”复选框后,默认状态下的机器代码文件名与()相同。
[单选题] *A、项目名(正确答案)B、文件名C、项目文件夹名D、主函数名2、 Keil uVision 5集成开发环境中,编译生成的机器代码文件的后缀名为() [单选题] *A、.mifB、.asmC、 .hex(正确答案)D、 .uvproj3、累加器与扩展RAM进行数据传送,采用的助记符是() [单选题] *A、MOVB、 MOVCC、MOVX(正确答案)D、 XCH4、对于高128字节,访问时采用的寻址方式是() [单选题] *A、直接寻址B、寄存器间接寻址(正确答案)C、变址寻址D、立即数5、对于特殊功能寄存器,访问时采用的寻址方式是() [单选题] *A、直接寻址(正确答案)B、寄存器间接寻址C、变址寻址D、立即数6、对于程序存储器,访问时采用的寻址方式是() [单选题] *A、直接寻址B、寄存器间接寻址C、变址寻址(正确答案)D、立即数7、定义变量x为8位无符号数,并将其分配的程序存储空间,赋值100,正确的是() [单选题] *A、unsigned char code x=100;(正确答案)B、 unsigned char data x=100;C、 unsigned char xdata x=100;D、 unsigned char bdata x=100;8、当执行P1=P1&0xfe;程序时相当于对P1.0进行()操作,不影响其他位。
[单选题] *A、置1B、清零(正确答案)C、取反D、不变9、当执行P2=P2|0x01;程序时相当于对P2.0进行()操作,不影响其他位 [单选题] *A、置1(正确答案)B、清零C、取反D、不变10、当执行P3=P3^0x01;程序时相当于对P3.0进行()操作,不影响其他位 [单选题] *A、置1B、清零C、取反(正确答案)D、不变11、当(TMOD)=0x01时,定时/计数器T1工作于方式()状态 [单选题] *A、0,定时(正确答案)B、 0,计数C、 1,定时D、 1,计数12、当(TMOD)=0x00时,T0X12为1时,定时时/计数器T0计数脉冲是() [单选题] *A、系统时钟;(正确答案)B、系统时钟的12分频信号;C、P3.4引脚输入信号;D、 P3.5引脚输入信号13、当(IT0)=1时,外部中断0触发的方式是() [单选题] *A、高电平触发;B、低电平触发;C、下降沿触发(正确答案)D、上升沿/下降沿触皆触发14、 IAP15W4K58S4单片机串行接口1在工作方式1状态下工作时,一个字符帧的位数是() [单选题] *A、8B、 9C、 10(正确答案)D、1115、当(SM1)=1,(SM0)=0时,IAP15W4K58S4单片机的串行接口工作方式为()[单选题] *A、工作方式0B、工作方式1(正确答案)C、工作方式2D、工作方式316、 IAP15W4K58S4单片机的A/D转换模块中转换电路的类型是() [单选题] *A、逐次比较型(正确答案)B、并行比较型C、双积分型D、Σ-Δ型17 IAP15W4K58S4单片机的A/D转换的8个通道是在()口 [单选题] *A、P0B、 P1(正确答案)C、 P2D、P318、IAP15W4K58S4单片机的PWM计数器是一个()位的计数器。
第七章1、什么是串行异步通信,它有哪些作用?答:在异步串行通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,每一帧的数据格式参考书。
通信采用帧格式,无需同步字符。
存在空闲位也是异步通信的特征之一。
2、89C51单片机的串行口由哪些功能部件组成?各有什么作用?答:89C51单片机的串行接口由发送缓冲期SBUF,接收缓冲期SBUF、输入移位寄存器、串行接口控制器SCON、定时器T1构成的波特率发生器等部件组成。
由发送缓冲期SBUF发送数据,接收缓冲期SBUF接收数据。
串行接口通信的工作方式选择、接收和发送控制及状态等均由串行接口控制寄存器SCON控制和指示。
定时器T1产生串行通信所需的波特率。
3、简述串行口接收和发送数据的过程。
答:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读和写的。
当向SBUF发“写”命令时(执行“MOV SBUF,A”),即向缓冲期SBUF装载并开始TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI=1。
在满足串行接口接收中断标志位RI(SCON.0)=0的条件下,置允许接收位REN (SCON.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1。
当发读SBUF命令时(执行“MOV A, SBUF”),便由接收缓冲期SBUF 取出信息通过89C51内部总线送CPU。
4、89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?答:89C51串行口有4种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。
有2种帧格式:10位,11位方式0:方式0的波特率≌fosc/12(波特率固定为振荡频率1/12)方式2:方式2波特率≌2SMOD/64×fosc方式1和方式3:方式1和方式3波特率≌2SMOD/32×(T1溢出速率)如果T1采用模式2则:5、若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少?答:已知每分钟传送3600个字符,方式3每个字符11位,则:波特率=(11b/字符)×(3600字符/60s)=660b/s6、89C51中SCON的SM2,TB8,RB8有何作用?答:89c51SCON的SM2是多机通信控制位,主要用于方式2和方式3.若置SM2=1,则允许多机通信。
1.请参见图示。
如果所有路由器都运行RIP 第2 版,为什么没有192.168.1.32/27 网络的路由?Rip 第2 版不会在更新中发送子网掩码。
路由器A 并未将RIP 设置为路由协议。
Rip 第2 版默认将自动总结路由。
路由器B 未设置为通告192.168.1.64/30 网络2.请参见图示。
下列哪个路由器上的哪条命令可让Router1 获知192.168.0.0/20 网络?Router1(config)# ip classlessRouter1(config-router)# no passive-interface serial 0/1/1Router2(config-router)#version 2Router2(config-router)# neighbor 10.0.0.23.哪两项是选择实施RIP 第2 版而不是RIP 第1 版的原因?(选择两项。
)RIP 第2 版支持VLSM。
RIP 第2 版支持16 台以上的路由器。
RIP 第2 版支持有类(而不是无类)路由。
RIP 第2 版支持路由更新验证。
RIP 第2 版支持多区域。
RIP 第2 版使用Dijkstra 算法而不是贝尔曼-福特算法4.RIP v1 和RIP v2 的相似点有哪些?(选择三项。
)两者都使用跳数作为度量。
两者对无穷距离使用相同的度量值。
两者都向邻居广播其更新。
两者都在更新中发送子网掩码信息。
两者都对更新来源进行身份验证。
两者都使用水平分割来防止路由环路5.请参见图示。
路由器East 和West 被配置为使用RIPv1。
两台路由器都会发送有关其直连路由的更新。
East 路由器可以ping 通West 路由器的串行接口,West 可以ping 通East 的串行接口。
但是,两台路由器都无法从对方动态获知路由。
最可能的原因是什么?需要配置最后选用网关。
子网划分不受RIPv1 支持。
VLSM 不受RIPv1 支持。
第7章串行接口、选择题1•设串行异步通信的数据格式是: 1个起始位,7个数据位,1个校验位, 位,若传输率为1200,则每秒钟传输的最大字符数为((A ) 10 个 (B ) 110 个(C) 120 个 (D ) 240 个3•异步串行通信中,收发双方必须保持(4•在数据传输率相同的情况下,同步传输率高于异步传输速率的原因是((A )附加的冗余信息量少(B) 发生错误的概率小(C) 字符或组成传送,间隔少(D )由于采用CRC 循环码校验5.用REPE SCASB 指令对字符串进行扫描,如CX= 0时,扫描结束,(A )在字符串中遇上第一个 AL 中指定的字符 (B) 在字符串中有一个 AL 中指定的字符 (C) 在字符串中有一个不是 AL 中指定的字符 (D)在字符串中遇上第一个不是 AL 中指令的字符2•在数据传输率相同的情况下, 同步字符传输的速度要高于异步字符传输,其原因(A )字符间无间隔 (B) 双方通信同步(C )发生错误的概率少(D) 附加的辅助信息总量少1个停止)。
(A) 收发时钟相同(B) 停止位相同 (C )数据格式和波特率相同(D.以上都正确那么表示6. intel 公司生产的用于数据串行传送的可编程接口芯片是(10•异步传送中,CPU 了解8251A 是否接收好一个字符数据的方法是()°(A ) CPU 响应8251A 的中断请求 (B ) CPU 通过查询请求信号 RTS (C ) CPU 通过程序查询RxD 接收线状态 (D ) CPU 通过程序查询 RxRDY 信号状态 若采用偶校验,传送字符4的ASCII 码34H(C ) 35H (D ) B5H)°(B )传送的每个字符是独立发送的 (D )传送的数据中不含有控制信息13. 在异步串行通信中,使用波特率来表示数据的传送速率,它是指((A )8259( B )8237( C ) 82557 •在异步通信方式中,通常采用((A )循环冗余校验码 (B)8. intel 8251A 的TxD 、RxD 引脚的信号电平符合((C ) (A )DTL 标准 (B )TTL 标准9.8251的方式字(模式字)的作用是((A )决定8251的通信方式(C )决定8251的通信方式和数据格式(D ) 8251)来校验错误。
1. 串行数据传送的主要优点和用途是什么?答:串行数据传送的主要优点是硬件接口简单,接口端口少(2个)。
主要用于多个单片机系统之间的数据通信。
2.简述串行口接收和发送数据的过程。
答:以方式一为例。
发送:数据位由TXT端输出,发送1帧信息为10为,当CPU执行1条数据写发送缓冲器SBUF的指令,就启动发送。
发送开始时,内部发送控制信号/SEND变为有效,将起始位想TXD输出,此后,每经过1个TX时钟周期,便产生1个移位脉冲,并由TXD输出1个数据位。
8位数据位全部完毕后,置1中断标志位TI,然后/SEND信号失效。
接收:当检测到起始位的负跳变时,则开始接收。
接受时,定时控制信号有2种,一种是位检测器采样脉冲,它的频率是RX时钟的16倍。
也就是在1位数据期间,有16个采样脉冲,以波特率的16倍的速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
3.帧格式为1个起始位,8个数据位和1个停止位的异步串行通讯方式是方式( 1 )。
4.串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有3种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD/32×定时器T1的溢出率方式2的波特率=2SMOD/64×fosc 方式3的波特率=2SMOD/32×定时器T1的溢出率5.假定串行口串行发送的字符格式为1个起始位,8个数据位,1个奇校验位,1个停止位,请画出传送字符“A”的帧格式。
起始位0 1 0 0 0 0 0 0 校验位停止位6.判断下列说法是否正确:(A)串行口通讯的第9数据位的功能可由用户定义。
学习任务七课后习题答案1.什么是异步串行通信?它有哪些特点?答:所谓异步串行通信是指具有不规则数据段传送特性的串行数据传输,数据是以字符为单位传送的。
异步串行通信的数据格式异步通信数据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑“「状态。
当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位。
起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。
因此,起始位所起的作用就是表示字符传送开始。
当接收设备收到起始位后,紧接着就会收到数据位。
数据位的个数可以是5,6,7或8位的数据。
在字符数据传送过程中,数据位从最低位开始传输。
数据发送完之后,可以发送奇偶校验位。
奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。
就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽有限但很容易实现。
在奇偶位或数据位之后发送的是停止位,可以是1位、15位或2位。
停止位是一个字符数据的结束标志。
2.51系统单片机串行口由哪些功能部件组成?各有何作用?答:AT89S51单片机的串行口吊SCoN、SBUF及若干门电路构成。
SCON用于设置串行口的工作方式;SBUF用于存储串行通信时要发送的数据或已接收到的数据3.AT89S51的串行缓冲器只有一个地址,如何判断是发送信号还是接收信号?答:通过不同的传送指令进行区分,如果发送数据使用“MOVSBUF,A”如果接收数据则使用“MOVA,SBUF,4.AT89S51的串行口有几种工作方式?各工作方式下的数据格式及率有何区别?——密------------------AT89S51的串0□电3种工作方式。
方式0为同步移位寄存器方式,波特率为为sc∕12方式1为10位异步通信方式,波特率可调方式2为11位异步通信方式,波特率为fosc/32或fosc/64方式3为11位异步通信方式,波特率可调5.度用查询方式编写一数据块发送程序。
第7章 AT89S51的串行口1.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是。
2.在串行通信中,收发双方对波特率的设定应该是的。
3.下列选项中,是正确的。
A.串行口通信的第9数据位的功能可由用户定义B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定4.串行口工作方式1的波特率是。
A.固定的,为f osc/32 B.固定的,为f osc/16C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64 5.在异步串行通信中,接收方是如何知道发送方开始发送数据的?6.AT89S51单片机的串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?7.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2?若已知时钟频率、串行通信的波特率,如何计算装入T1的初值?8.若晶体振荡器为11.059 2MHz,串行口工作于方式1,波特率为4 800bit/s,写出用T1作为波特率发生器的方式控制字和计数初值。
9.简述利用串行口进行多机通信的原理。
10.某AT89S51单片机串行口,传送数据的帧格式由1个起始位(0)、7个数据位、1个偶校验和1个停止位(1)组成。
当该串行口每分钟传送1 800个字符时,试计算出它的波特率。
11.为什么AT89S51单片机串行口的方式0帧格式没有起始位(0)和停止位(1)?12.直接以TTL电平串行传输数据的方式有什么缺点?为什么在串行传输距离较远时,常采用RS-232C、RS-422A和RS-485标准串行接口,来进行串行数据传输。
比较RS-232C、RS-422A和RS-485标准串行接口各自的优缺点。
参考答案1.答:方式1。
第七章习题参考答案一、填空题1、在串行通信中,有数据传送方向为单工、半双工和全双工三种方式。
2、要串口为10位UART,工作方式应选为方式1 。
3、用串口扩并口时,串行接口工作方式应选为方式0 。
4、计算机的数据传送有两种方式,即并行数据传送和串行数据传送方式,其中具有成本低特点的是串行数据传送方式。
5、串行通信按同步方式可分为异步通信和同步通信。
6、异步串行数据通信的帧格式由起始位、数据位、奇偶校验位和停止位组成。
7、串行接口电路的主要功能是串行化和反串行化,把帧中格式信息滤除而保留数据位的操作是反串行化。
8、专用寄存器“串行数据缓冲寄存器”,实际上是发送缓冲寄存器和接收缓冲寄存器的总称。
9、MCS-51的串行口在工作方式0下,是把串行口作为同步移位寄存器来使用。
这样,在串入并出移位寄存器的配合下,就可以把串行口作为并行输出口使用,在并入串出移位寄存器的配合下,就可以把串行口作为并行输入口使用。
10、在串行通信中,收发双方对波特率的设定应该是约定的。
11、使用定时器/计数器设置串行通信的波特率时,应把定时器/计数器1设定作方式 2 ,即自动重新加载方式。
12、某8031串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。
当该串行口每分钟传送1800个字符时,则波特率应为300b/s 。
解答:串口每秒钟传送的字符为:1800/60=30个字符/秒所以波特率为:30个字符/秒×10位/个字符=300b/s13、8051单片机的串行接口由发送缓冲积存器SBUF、接收缓冲寄存器SBUF 、串行接口控制寄存器SCON、定时器T1构成的波特率发生器等部件组成。
14、当向SBUF发“写”命令时,即执行MOV SBUF,A 指令,即向发送缓冲寄存器SBUF装载并开始由TXD 引脚向外发送一帧数据,发送完后便使发送中断标志位TI 置“1”。
15、在满足串行接口接收中断标志位RI=0 的条件下,置允许接收位REN=1 ,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1,当发读SBUF命令时,即指令MOV A,SBUF 指令,便由接收缓冲寄存器SBUF取出信息同过8051内部总线送CPU。
第七章串行接口答案
7·1 什么是串行异步通信?它有哪些特点?有哪几种帧格式?
答:串行通信是所传送数据的各位按顺序一位一位地发送或接收。
串行通信分同步和异步两种方式。
在异步通信中数据或字符是一帧(frame)一帧地传送的。
帧定义为一个字符的完整的通信格式,通常也称为帧格式。
它的主要特点:由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外,它还能利用校验位检测错误。
帧格式的一般形式是先用一个起始位"0"表示字符的开始,然后是数据位,其后是奇偶校验位,最后是停止位,用以表示字符的结束。
不同的帧格式主要表现在数据位可以不同,例如其位数为5~8位,停止位可以是1、1.5、2位;起始位和奇偶校验位可以有,也可以没有。
起始位、数据位、奇偶校验位、停止位的不同组合就形成了多种形式的帧格式。
不同的计算机规定适用的帧格式有所不同,例如适用于80C51的帧格式只有三种:8位数据位;一位起始位、8位数据位、一位停止位;一位起始位、8位数据位、一位奇偶校验位、一位停止位。
7·2 某异步通信接口按方式3传送,己知其每分钟传送3600个字符,计算其传送波特率。
答:设每个字符由1个起始位、8个数据位、1个可编程位和1个停止位组成,则其传送波特率为:
llb×3600/60s=660b/s
7·3 为什么定时器Tl用做串行口波特率发生器时,常采用工作方式2?若己知系统时钟频率、通信选用的波特率,姑何计算其初值?
答:在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。
我们通过软件对80C51串行口编程可约定4种工作方式。
其中方式0和方式2波特率是固定的,而方式1和方式3的波特率是可变的,由定时器Tl的溢出率控制。
定时器Tl用做串行口波特率发生器时,因为工作方式2是自动重装载方式,因而当定时器Tl作波特率发生器时常采用工作方式2。
在方式2中,TLl作计数用,但自动重装载的值放在THl内。
假如已知系统时钟频率、通信选用的波特率,计算初值的方法如下:设计数初值为X,那么每过"256一X"个机器周期定时器1就会产生一次溢出。
溢出周期是:
12
T= ×(256-X)
f ose
因溢出率为溢出周期之倒数,因此
2SMOD f ose
波特率= ×
32 l2×(256-X)
则定时器Tl在方式2 时的初值为:
f ose×2SMOD
X=256-
384×波特率
7·4 己定时器T1设置为方式2,用做波特率发生器,系统时钟频率为6 MHz ,求可能产生的最高和最低的波特率是多少?
答:最高波特率:
TH l= 0FFH TLl= 0FFH
波特率=2/32×6000 000/(12×(256- 255))b/s= 31 250 b/s 最低波特率:
TH l= OOH TLl= OOH 波特率= 1/32×6 000 000/(12×(256- 0))b/s= 61 b/s
7·5 请设计一个80C51 单片机的双机通信系统,并编写程序将甲机片外RAM 3400H ~ 3500H的教据块通过串行口传送到乙机的片外RAM 4400H ~ 4500H 单元中去。
答:设波特率为9600 b/s。
当晶体频率为f= 11.0592 MHz和SMOD=1时,定时器T1按方式2工作,TH l=0FAH ,TLl=0FAH 。
甲机发送程序
SEND_SUB:
MOV TMOD,#20H ;设定时器TlI:作在方式2
MOV THl,#0FAH ;设定时器Tl的初值
MOV TLl,#0FAH
MOV PCON,#80H ;置SMOD=l
MOV SCON,#50H ;串口初始化为方式1,允许接收
SETB TR1 ;启动定时器Tl
EX5_SEND1:
MOV DPTR,#3400H ;置数据块首地址
MOV R6,#00H ;长度寄存器初始化
MOV R5,#00H ;校验和寄存器初始化
MOV SBUF,R6 ;发送长度
JNB TI,$ ;等待发送
CLR TI
EX5_SEND2:
MOVX A,@DPTR ;读取数据
MOV SBUF,A ;发送数据
ADD A,R5 ;形成累加和送R5
MOV R5,A
INC DPTR ;修改地址指针
JNB TI,$ ;等待发送
CLR TI
DJNZ R6,EX5_SEND2 ;发送末完,继续
MOV SBUF,R5 ;发校验码
JNB TI,$
CLR TI
JNB RI,$ ;等乙机回答
CLR RI
MOV A,SBUF
JZ EX5_SENDOK ;发送正确返回
LJMP EX5_SEND1 ;发送有错,重发
EX5_SENDOK:
RET
乙机接收程序
RECEIVE_SUB:.
MOV TMOD,#20H ;定时器Tl初始化
MOV THl,#0FAH
MOV TLl,#0FAH
MOV PCON,#80H
MOV SCON,#50H
SETB TR1
EX5_RCV1:
MOV DPTR,#4400H
JNB RI,$
CLR RI
MOV A,SBUF ;接收发送长度MOV R6,A
MOV R5,#00H ;累加和清0 EX5JRCV2;
JNB RI,$
CLR RI
MOV A,SBUF ;接收数据
MOVX @DPTR,A ;存储数据
INC DPTR ;修改地址指针
ADD A,R5
MOV R5,A
DJNZ R6,EX5_RCV2 ;未接收完,继续
JNB RI,$ ;接收校验码
CLR RI
MOV A,SBUF
XRL A,R5 ;比较校验码
JZ EX5_RCVOK ;正确转EX5_RCVOK
MOV SBUF,#0FFH ;出错送0FFH
JNB TI,$
CLR TI
LJMP EX5_RCV1 ;重新接收
EX5_RCVOK:
MOV SBUF,#00H ;正确送00H
JNB TI,$ ;发迭完,返回
CLR TI
RET。