📄 ht47r20a读写at24c01.asm
字号:
/*****************************************
mcu:HT47R20_A
*******************************************/
at24c01: ;eeprom读和写
write_page:
mov [v_R5],a
call start
rla [v_R5]
clr ACC.0
call shout
mov a,[v_calc_x]
call shout
mov a,[v_calc_x+1]
call shout
mov a,[v_calc_x+2]
call shout
mov a,[v_calc_x+3]
call shout
call stop
ret
read_page:
mov [v_R5],a
call start
rla [v_R5]
set ACC.0
call shout
call shin
mov [v_calc_x],a
call ACK
call shin
mov [v_calc_x+1],a
call ACK
call shin
mov [v_calc_x+2],a
call ACK
call shin
mov [v_calc_x+3],a
call NAK
call stop
ret
start:
mov a,PA
mov [v_PA],a
set [v_PA].7
mov a,[v_PA]
mov PA,a
set [v_PA].6
mov a,[v_PA]
mov PA,a
nop
nop
clr [v_PA].7
mov a,[v_PA]
mov PA,a
nop
nop
clr [v_PA].6
mov a,[v_PA]
mov PA,a
ret
stop:
clr [v_PA].7
mov a,[v_PA]
mov PA,a ;clr SDA
set [v_PA].6
mov a,[v_PA]
mov PA,a ;set SCL
set [v_PA].7
mov a,[v_PA]
mov PA,a ;set SDA
ret
shout:
clr [v_R11]
mov [v_R10],a
x03:
rlc [v_R10]
snz C
jmp zero_in
set [v_PA].7
mov a,[v_PA]
mov PA,a
jmp shout1
zero_in:
clr [v_PA].7
mov a,[v_PA]
mov PA,a
shout1:
set [v_PA].6
mov a,[v_PA]
mov PA,a
nop
nop
nop
nop
clr [v_PA].6
mov a,[v_PA]
mov PA,a
inc [v_R11]
snz [v_R11].3
jmp x03
set [v_PA].7
mov a,[v_PA]
mov PA,a ;set SDA
set [v_PA].6
mov a,[v_PA]
mov PA,a ;set SCL
nop ; enforce SCL high
nop ;
nop ; ; get ACK bit
mov a,PA
mov [v_R11],a
rlc [v_R11]
clr [v_PA].6
mov a,[v_PA] ; drop ACK clock
mov PA,a
ret
shin:
set [v_PA].7
mov a,[v_PA]
mov PA,a
clr [v_R11]
clr [v_R1]
x04:
nop ; enforce SCL low and data setup
nop ;
set [v_PA].6
mov a,[v_PA]
mov PA,a ; raise clock
nop ; enforce SCL high
nop ;
mov a,PA
mov [v_R10],a
rlc [v_R10]
rlc [v_R1]
clr [v_PA].6
mov a,[v_PA]
mov PA,a
inc [v_R11]
snz [v_R11].3
jmp x04
mov a,[v_R1]
ret
ACK:
clr [v_PA].7
mov a,[v_PA]
mov PA,a ; ACK bit
set [v_PA].6
mov a,[v_PA]
mov PA,a
clr [v_PA].6
mov a,[v_PA]
mov PA,a ; drop clock
ret
NAK:
set [v_PA].7
mov a,[v_PA]
mov PA,a ; NAK bit
set [v_PA].6
mov a,[v_PA]
mov PA,a ; raise clock
clr [v_PA].6
mov a,[v_PA]
mov PA,a ; drop clock
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -