早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

以下是利用MCS-51系列单片机汇编语言实现模拟I2C总线接收N个字节数据的程序段(RDNBYTE),请将汇编

题目

以下是利用MCS-51系列单片机汇编语言实现模拟I2C总线接收N个字节数据的程序段(RDNBYTE),请将汇编程序代码中(9)~(13)空缺处的内容填写完整。表6-21所示为MCS-51系列单片机部分汇编指令及寄存器说明。

程序中已定义了标号为START的启动位子程序、标号为STOP的停止位子程序、标号为MACK的发送应答位子程序、标号为MNACK的发送非应答位子程序、标号为 CACK的应答位检查子程序、标号为WRBYT的向VSDA线上发送1个数据字节的子程序、标号为RDBYT的从VSDA线上读取1个数据字节的子程序。调用RDNBYTE程序的归一化操作命令是 MOV SLA,SLAR MOV NUMBYTE,N LCALL RDNBYT 【汇编程序代码】 VSDA EQU P1.6 ;虚拟I2C总线数据线 VSCL EQU P1.5 ;虚拟I2C总线时钟线 SLA EQU 50H ;寻址字节存放单元 NUMBYTE EQU 51H ;传送字节数存放单元 MTD EQU 30H ;发送数据缓冲区 MRD EQU 40H ;接收数据缓冲区 SLAW0 EQU 0AOH ;写AT24C64(器件地址为0AOH) SLAR0 EQU 0A1H ;读24C64 SLAW1 EQU 40H ;写PCF8574(器件地址为040H) SLAR1 EQU 41H ;读PCF8574 ;模拟I2C总线接收N个字节数据 RDNBYTE:MOV R3,NUMBYTE LCALL START ;发送启动位 MOV A,SLA ;发送寻址字节(读) (9) (10) JB F0,RDNBYTE RDN: MOV R1,MRD RDN1: (11) MOV @R1,A DJNZ R3,ACK ;N个字节读完否?未完转 (12) LCALL STOP ;发送停止位 RET ACK:(13) INC R1 SJMP RDN1 ;转读下一个字节数据 (9)~(13)空缺处供选择的答案 A.LCALL START B.LCALL MACK

C.LCALL CACK D.LCALL RDBYT

E.LCALL WRBYT F.LCALL MNACK G.LCALL STOP

参考答案
正确答案:(9)E或LCALL WRBYT (10)C或LCALL CACK (11)D或LCALL RDBYT (12)F或LCALL MNACK (13)B或LCALL MACK 这是一道要求读者掌握汇编语言程序分析的综合题。本题的解答思路源于图6-18所给出的I2C总线开始条件与停止条件的时序图。根据该时序图及题干中已定义的各个子程序可知(9)空缺处应选择“LCALL WRBYT”;(10)空缺处应选择“LCALL CACK”;(11)空缺处应选择“LCALL RDBYT”;(12)空缺处应选择“LCALL MNACK”;(13)空缺处应选择“LCALL MACK”。 以下给出完整的模拟I2C总线接收N个字节数据的程序段(RDNBYTE)及其各条语句的功能注释。 RDNBYTE:MOV R3NUMBYTE ;取所需传送的字节数即N值 LCALL START ;发送启动位 MOV ASLA ;读取寻址字节类型 LCALL WRBYT ;发送寻址宁节(读) LCALL CACK ;检查应答位 JB F0RDNBYTE ;用户标志位为1时转移至RDNBYTE标号 ;处否则向下执行 RDN: MOV R1#MRD ;取接收数据缓冲区的首地址 RDN1: LCALL RDBYT ;读入一个字节 MOV @R1A ;将所读入的内容送至接收数据缓冲区 DJNZ R3ACK ;N个字节读完否?未完转至ACK标号处 LCALL MNACK ;N个字节读完后发送非应答位 LCALL STOP ;发送停止位 RET ;子程序返回 ACK: LCALL MACK ;发送应答位 INC R1 ;接收数据缓冲区的地址指针增1 SJMP RDN1 ;无条件转至RDN1标号处继续读下一个字 ;节数据
(9)E或LCALL WRBYT (10)C或LCALL CACK (11)D或LCALL RDBYT (12)F或LCALL MNACK (13)B或LCALL MACK 这是一道要求读者掌握汇编语言程序分析的综合题。本题的解答思路源于图6-18所给出的I2C总线开始条件与停止条件的时序图。根据该时序图及题干中已定义的各个子程序可知,(9)空缺处应选择“LCALL WRBYT”;(10)空缺处应选择“LCALL CACK”;(11)空缺处应选择“LCALL RDBYT”;(12)空缺处应选择“LCALL MNACK”;(13)空缺处应选择“LCALL MACK”。 以下给出完整的模拟I2C总线接收N个字节数据的程序段(RDNBYTE)及其各条语句的功能注释。 RDNBYTE:MOV R3,NUMBYTE ;取所需传送的字节数,即N值 LCALL START ;发送启动位 MOV A,SLA ;读取寻址字节类型 LCALL WRBYT ;发送寻址宁节(读) LCALL CACK ;检查应答位 JB F0,RDNBYTE ;用户标志位为1时,转移至RDNBYTE标号 ;处,否则向下执行 RDN: MOV R1,#MRD ;取接收数据缓冲区的首地址 RDN1: LCALL RDBYT ;读入一个字节 MOV @R1,A ;将所读入的内容送至接收数据缓冲区 DJNZ R3,ACK ;N个字节读完否?未完转至ACK标号处 LCALL MNACK ;N个字节读完后,发送非应答位 LCALL STOP ;发送停止位 RET ;子程序返回 ACK: LCALL MACK ;发送应答位 INC R1 ;接收数据缓冲区的地址指针增1 SJMP RDN1 ;无条件转至RDN1标号处,继续读下一个字 ;节数据
看了以下是利用MCS-51系列单片...的网友还看了以下:

求新概念英语列的词汇书,要按字母顺序排有没有一种新概念英语的词汇书,按字母顺序排列,然后有单词的讲 其他 2020-07-07 …

描写外貌的语段描写人物外貌的语段字数差不多80-90 其他 2020-07-24 …

一条汇编语言可以没有操作码字段,但是必须有操作数字段,这句话对吗?原题是这样的:一下关于汇编语言和汇 其他 2020-11-03 …

英文词汇越多越好吗?前段时间一家美国公司根据计算,得到了英文单词突破100万的结论.此言一出,英语国 英语 2020-11-14 …

求一段有关“自信”的优美语段,字数150字左右最好是高中作文 语文 2020-11-24 …

求几本英语书.中级..和拓展词汇量.英语中级水平..要对话多,贴近生活.,口语.只告诉我名字就行.英 其他 2020-11-28 …

什么是外汇、汇率、汇率升高、汇率跌落?外汇是用表示的用于国际间结算的支付手段。汇率是两种货币之间的比 政治 2020-11-29 …

在多愁善感、偶尔、理想、丰硕、沉醉、一扫而光、梦幻、堕落、黎明这些词语当中选5个,写一个语段,字数在 语文 2020-12-30 …

如今,“中式英语”正猛烈地冲击着英语的词汇库,据美国“全球语言监督”机构的报告显示,自1994年以来 政治 2021-01-08 …

求下列英语词汇或短语的准确表达方式,要用到论文里的.全部翻译者追加50分.网络英语聊天词汇缩略语,口 英语 2021-02-21 …