主观

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

参考答案
您可能感兴趣的试题
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服