?? 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 ;去除中斷的激活標(biāo)志
PUSH DPL
PUSH DPH
RETI
HUI1:
MOV DPTR,#0
PUSH DPL
PUSH DPH
RETI
GotoISP:
CLR EA
LJmp 0FE00H ;跳BOOT區(qū)
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -