以下是利用MCS-51系列单片机汇编语言实现模拟I2C总线接收N个字节数据的程序段(RDNBYTE),请将汇编程序代码中(9)~(13)空缺处的内容填写完整。表6-21所示为MCS-51系列单片机部分汇编指令及寄存器说明。程序中已定义了标号为START的启动位子程序、标号为STOP的停止位子程序、标号为MACK的发送应答位子程序、标号为MNACK的发送非应答位子程序、标号为 CACK的应答位检查子程序、标号为WRBYT的向VSDA线上发送1个数据字节的子程序、标号为RDBYT的从VSDA线上读取1个数据字

题目

以下是利用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


相似考题
更多“ 以下是利用MCS-51系列单片机汇编语言实现模拟I2C总线接收N个字节数据的程序段(RDNBYTE),请将汇编程序代码中(9)~(13)空缺处的内容填写完整。表6-21所示为MCS-51系列单片机部分汇编指令及寄”相关问题
  • 第1题:

    MCS-51 系列单片机的十进制调整指令只适用运算。()


  • 第2题:

    在MCS-51单片机中,十进制调整指令只有1条,汇编指令为:DA A


    ×

  • 第3题:

    简述MCS-51汇编语言指令格式


    [标号:]操作码助记符 [目的操作数] [,源操作数][;注释] 在指令的一般格式中使用了可选择符号“[ ]”,其包含的内容因指令的不同可有可无。号:程序员根据编程需要给指令设定的符号地址,可有可无;通常在子程序入口或转移指令的目标地址处才赋予标号。标号由1~8个字符组成,第一个字符必须是英文字母,不能是数字或其他符号,标号后必须用冒号。 操作码助记符:指令的核心部分,用于指示机器执行何种操作,如加、减、乘、除、传送等。操作数是表示指令操作的对象,操作数可以是一个具体的数据,也可以是参加运算的数据所

  • 第4题:

    MCS-51系列单片机指令系统中,清零指令是 。

    A.CPL A

    B.RLC A

    C.RRC A

    D.CLR A


    CLR A

  • 第5题:

    在MCS-51单片机中,片内数据存储器传送指令(MOV)以A为目的操作数的汇编指令会影响PSW中的()。


    128B