viic.asm

来自「共有 45 个程序源码」· 汇编 代码 · 共 104 行

ASM
104
字号
STA:       SETB  SDA
           SETB  SCL
    WAITS: JNB  SCL,WAITS
           NOP
           CLR  SDA
           NOP
           NOP
           CLR  SCL
           RET
STOP:      CLR  SDA
           SETB  SCL
    WAITP: JNB  SCL,WAITP
           NOP
           SETB  SDA
           NOP
           NOP
           CLR  SCL
           RET
MACK:      CLR  SDA
           SETB  SCL
           NOP
           NOP
           NOP
           CLR  SCL
           SETB  SDA
           RET
MNACK:     SETB  SDA
           SETB   SCL
           NOP
           NOP
           NOP
           CLR  SCL
           CLR  SDA
           RET
CACK:      SETB  SDA
           NOP
           SETB  SCL
           CLR  F0
           JNB  SDA,CEND
           SETB  F0
     CEND: CLR   SCL
           NOP
           RET
WRBYT:     MOV  R0,#08H
           WLP: RLC  A
           JC  WR1
           AJMP  WR0
     WLP1: DJNZ  R0,WLP
           RET
      WR1: SETB  SDA
           SETB  SCL
           NOP
           NOP
           CLR  SCL
           CLR  SDA
           AJMP  WLP1
      WR0: CLR  SDA
           SETB  SCL
           NOP
           NOP
           NOP
           CLR   SCL
           AJMP  WLP1
RDBYT:     MOV  R0,#08H
           RLP: SETB  SDA
           NOP
           SETB  SCL
           MOV  C,SDA
           MOV  A,R2
           RLC  A
           MOV  R2,A
           CLR  SCL
           DJNZ  R0,RLP
           RET
WRNBYT:    LCALL  STA
           MOV  A,SLA
           LCALL  WRBYT
           LCALL  CACK
           JB  F0,WRNBYT
           MOV  R1,#MTD
     WRDA: MOV  A,@R1
           LCALL  WRBYT
           LCALL  CACK
           JB  F0,WRNBYT
           INC  R1
           DJNZ  NUMBYT,WRDA
           LCALL  STOP
           RET
RDNBYT:    LCALL  STA
           MOV  A,SLA
           LCALL  WRBYT
           LCALL  CACK
           JB  F0,RDNBYT
      RDN: MOV  R1,#MRD
     RDN1: LCALL  RDBYT
           MOV  @R1,A
           DJNZ  NUMBYT,ACK
           LCALL  MNACK
           LCALL  STOP
           RET
      ACK: LCALL  MACK
           INC  R1
           SJMP  RDN1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?