📄 at24c64驱动子程序.asm
字号:
;SCL最高工作频率100K
;############ 启动 AT24C64 #################
;入口参数:无
;出口参数:无
;需调用子程序:喂狗子程序-WDOG
;##########################################
AT1: LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
SETB SDA
LCALL WDOG ;喂狗,延时
SETB SCL
LCALL WDOG ;喂狗,延时
CLR SDA
LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
RET
;############ 关闭 AT24C64 #################
;入口参数:无
;出口参数:无
;需调用子程序:喂狗子程序-WDOG
;##########################################
ATW3: LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
CLR SDA
LCALL WDOG ;喂狗,延时
SETB SCL
LCALL WDOG ;喂狗,延时
SETB SDA
LCALL WDOG ;喂狗,延时
RET
;/** 单字节读 **/
ATR2: CLR A
CLR C
LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
MOV R2,#8
J5: SETB SCL
LCALL WDOG ;喂狗,延时
MOV C,SDA
RLC A
LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
DJNZ R2,J5
CLR SDA
LCALL WDOG ;喂狗,延时
SETB SCL
LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
SETB SDA
RET
;序列读最后一字节
ATR3: CLR A
CLR C
LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
MOV R2,#8
J50: SETB SCL
LCALL WDOG ;喂狗,延时
MOV C,SDA
RLC A
LCALL WDOG ;喂狗,延时
CLR SCL
LCALL WDOG ;喂狗,延时
DJNZ R2,J50
SETB SDA
LCALL WDOG ;喂狗,延时
SETB SCL
LCALL WDOG ;喂狗,延时
RET
;##############写数据到at24c64-ATW2##############
;说明:写一字节数据到at24c64,失败PSW.5置1
;入口参数:A
;出口参数:无
;需调用子程序:喂狗-WDOG
;###############################################
ATW2: MOV R2,#8
clr SCL
J4: RLC A
LCALL WDOG ;喂狗,延时
MOV SDA,C
LCALL WDOG ;喂狗,延时
SETB SCL
LCALL WDOG ;喂狗,延时
CLR SCL
DJNZ R2,J4
setb SDA
LCALL WDOG ;喂狗,延时
SETB SCL
LCALL WDOG ;喂狗,延时
JB SDA,J1
CLR SCL
LCALL WDOG ;喂狗,延时
CLR PSW.5
Ljmp edw
J1: SETB PSW.5
edw: RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -