📄 ht24lc02.asm
字号:
;=============================write ht24lc02=======================================
wrepprom PROC
;----------------------------------------------------------
;input: ADDRESS in R_addrepprom
; DATA in data_sz
;----------------------------------------------------------
wrepprom1:
mov a,R_addrepprom
mov R_Bfadr,a
mov a,data_sz
mov R_BfWr,a
clr wdt
;---------------begin----
clr sdac
clr sclc
nop
set sda
nop
set scl
nop
clr sda ;start
nop
clr scl
nop
nop
nop
nop
;1010...
;--------------------------------------------------------------------------
set sda ;1
nop
set scl
nop
clr scl
nop
clr sda ;0
nop
set scl
nop
clr scl
set sda ;1
nop
set scl
nop
clr scl
nop
clr sda ;0
nop
set scl
nop
clr scl
nop
;----------------------------------------------------------------------
;a2a1a0...
;----------------------------------------------------------------------
clr sda ;a2
nop
set scl
nop
clr scl
nop
clr sda ;//wang
set scl ;a1
nop
clr scl
nop
clr sda ;//wang
set scl ;a0
nop
clr scl
nop
;-------------------------------------------------------------------------------
;R/W
;----------------------------------------------------------------------
clr sda ;//wang
set scl ;0 R/!W
nop
clr scl
nop
;-------------------wait ACK--------------------------------------------------
set sda
nop
nop
set sdac
;set scl
nop
wait_ACK1:
clr wdt
sz sda
jmp wait_ACK1
;clr scl
clr sdac
nop
set scl
nop
clr scl
nop
;----------------------------------------------------------------------
;address....
;----------------------------------------------------------------------
mov a,08h
mov R_T1,a ;8
epprom_addrwr:
clr wdt
clr sda
sz R_Bfadr.7
set sda
nop
set scl
nop
clr scl
nop
rl R_Bfadr
sdz R_T1
jmp epprom_addrwr
set sda
nop
set sdac
nop
;-------------------wait_ACK--------------------------------------------------
wait_ACK2:
clr wdt
sz sda
jmp wait_ACK2
clr sdac
nop
clr sda
nop
set scl
nop
clr scl
nop
;----------------------------------------------------------------------
;----------------------------------------------------------------------
mov a,08h
mov R_T1,a ;8
epprom_datawr:
clr wdt
clr sda
nop
sz R_BfWr.7
set sda
nop
set scl
nop
clr scl
rl R_BfWr
sdz R_T1
jmp epprom_datawr
;wait HT24LC02 ACK signal...
;----------------------------------------------------------------------
set sda
nop
set sdac
nop
data_next:
clr wdt
sz sda
jmp data_next
;----------------------------------------------------------------------
; To ht24lc02 a LOW ACK signal...
;----------------------------------------------------------------------
clr sdac
nop
clr sda
nop
set scl
nop
clr scl
;----------------------------------------------------------------------
;stop signal...
;----------------------------------------------------------------------
clr scl
nop
clr sda
nop
set scl
nop
set sda
nop
RET
wrepprom ENDP
;=============================================================================
;=============================read ht24lc02=======================================
readepprom PROC
;----------------------------------------------------------
; input: ADDRESS in R_addrepprom
;output: DATA in data_sz
;----------------------------------------------------------
readepprom_pre:
mov a,R_addrepprom
mov R_Bfadr,a
mov R_Bfadr2,a
readepprom1:
;start....
;----------------------------------------------------------------------
clr R_BfIn
clr wdt
clr sdac
nop
clr sclc
nop
set sda
nop
set scl ;start
nop
clr sda
nop
clr scl
nop
;----------------------------------------------------------------------
;1010....
;----------------------------------------------------------------------
set sda ;1
nop
set scl
nop
clr scl
clr sda ;0
nop
set scl
nop
clr scl
nop
set sda ;1
nop
set scl
nop
clr scl
nop
clr sda ;0
nop
set scl
nop
clr scl
nop
;----------------------------------------------------------------------
;a2a1a0....
;----------------------------------------------------------------------
clr sda ;A2A1A0
nop
set scl
nop
clr scl
nop
clr sda ;wang...
nop
set scl ;0
nop
clr scl
nop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -