📄 viic.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -