📄 meacpu.asm
字号:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: SDA1 BIT P1.7
SCL1 BIT P1.6
MTD1 EQU 20H
MRD1 EQU 60H
SLA1 EQU 30H
NUMBYT1 EQU 40H
BEGIN: MOV MTD1,#14H
MOV 21H,#01H
MOV SLA1,#8AH
MOV NUMBYT1,#02H
LCALL WRNBYT1
MOV MTD1,#14H
MOV 21H,#2FH
MOV SLA1,#8AH
MOV NUMBYT1,#2
LCALL WRNBYT1
SJMP BEGIN
STA1: SETB SDA1
SETB SCL1
WAITS1: JNB SCL1,WAITS1
NOP
NOP
NOP
CLR SDA1
NOP
NOP
NOP
NOP
CLR SCL1
RET
STOP1: CLR SDA1
SETB SCL1
WAITP1: JNB SCL1,WAITP1
NOP
NOP
NOP
SETB SDA1
NOP
NOP
NOP
NOP
SETB SCL1
RET
MACK1: CLR SDA1
SETB SCL1
NOP
NOP
NOP
NOP
NOP
CLR SCL1
SETB SDA1
RET
MNACK1: SETB SDA1
SETB SCL1
NOP
NOP
NOP
NOP
NOP
CLR SCL1
CLR SDA1
RET
CACK1: SETB SDA1
NOP
NOP
NOP
SETB SCL1
CLR F0
JNB SDA1,CEND1
SETB F0
CEND1: CLR SCL1
NOP
NOP
NOP
RET
WRBYT1: MOV R0,#08H
WLP1: RLC A
JC WR11
AJMP WR01
WLP11: DJNZ R0,WLP1
RET
WR11: SETB SDA1
SETB SCL1
NOP
NOP
NOP
NOP
CLR SCL1
CLR SDA1
AJMP WLP11
WR01: CLR SDA1
SETB SCL1
NOP
NOP
NOP
NOP
NOP
CLR SCL1
AJMP WLP11
RDBYT1: MOV R0,#08H
RLP1: SETB SDA1
NOP
NOP
NOP
SETB SCL1
MOV C,SDA1
MOV A,R2
RLC A
MOV R2,A
CLR SCL1
DJNZ R0,RLP1
RET
WRNBYT1: LCALL STA1
MOV A,SLA1
LCALL WRBYT1
LCALL CACK1
JB F0,WRNBYT1
MOV R1,#MTD1
WRDA1: MOV A,@R1
LCALL WRBYT1
LCALL CACK1
JB F0,WRNBYT1
INC R1
DJNZ NUMBYT1,WRDA1
LCALL STOP1
RET
RDNBYT1: LCALL STA1
MOV A,SLA1
LCALL WRBYT1
LCALL CACK1
JB F0,RDNBYT1
RDN1: MOV R1,#MRD1
RDN11: LCALL RDBYT1
MOV @R1,A
DJNZ NUMBYT1,ACK1
LCALL MNACK1
LCALL STOP1
RET
ACK1: LCALL MACK1
INC R1
SJMP RDN11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -