📄 cs24c64.asm
字号:
;NAME TXHC64
;?PR?TXHC64?TXHC64 SEGMENT CODE
TXHC64 SEGMENT CODE
public _write_eep_byte
public _read_eep_byte
public goto0000
public GotoISP
SDA equ p1.0
SCL equ p1.1
RSEG TXHC64
_write_eep_byte:
CLR EA
LCALL ST24
MOV A,#0A0H
LCALL WBYTE
JC WRET
MOV A,R4
ANL A,#01FH
LCALL WBYTE
JC WRET
MOV A,R5
LCALL WBYTE
JC WRET
MOV A,R7 ;tempbits
LCALL WBYTE
LCALL STOP24
ACALL DELAY_10MS
CLR C
WRET:
SETB EA
RET
_read_eep_byte:
CLR EA
LCALL ST24
MOV A,#0A0H
LCALL WBYTE
MOV A,R6
ANL A,#1FH
LCALL WBYTE
MOV A,R7
LCALL WBYTE
NOP
LCALL ST24
MOV A,#0A1H
LCALL WBYTE
LCALL RBYTE
LCALL STOP24
MOV R7,A
SETB EA
RET
DELAY_1US:
NOP
NOP
RET
DELAY_6US:
ACALL DELAY_1US
RET
ST24:
CLR SCL
LCALL DELAY_6US
SETB SDA
LCALL DELAY_6US
SETB SCL
LCALL DELAY_6US
CLR SDA
LCALL DELAY_6US
CLR SCL
LCALL DELAY_1US
RET
STOP24:
CLR SCL
LCALL DELAY_6US
CLR SDA
LCALL DELAY_6US
SETB SCL
LCALL DELAY_6US
SETB SDA
LCALL DELAY_6US
CLR SCL
CLR SDA
RET
WBYTE:
PUSH B
LCALL DELAY_6US
MOV B,#8
WBY0:
CLR SCL
RLC A
MOV SDA,C
LCALL DELAY_6US
SETB SCL
DJNZ B,WBY0
CLR SCL
LCALL DELAY_6US
SETB SCL
LCALL DELAY_6US
MOV C,SDA
CLR SCL
LCALL DELAY_6US
POP B
RET
RBYTE:
PUSH B
LCALL DELAY_6US
MOV B,#8
RBY0:
CLR SCL
LCALL DELAY_6US
SETB SCL
LCALL DELAY_6US
MOV C,SDA
RLC A
DJNZ B,RBY0
CLR SCL
LCALL DELAY_6US
SETB SDA
LCALL DELAY_6US
SETB SCL
LCALL DELAY_6US
MOV R7,A ;返回给C
POP B
RET
DELAY_10MS:
MOV R7,#30
DE10:
MOV R6,#250
DE100:
NOP
NOP
DJNZ R6,DE100
DJNZ R7,DE10
RET
;=================================================
goto0000:
MOV DPTR,#HUI1 ;去除中断的激活标志
PUSH DPL
PUSH DPH
RETI
HUI1:
MOV DPTR,#0
PUSH DPL
PUSH DPH
RETI
GotoISP:
CLR EA
LJmp 0FE00H ;跳BOOT区
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -