at24c64驱动子程序.asm

来自「红外抄表器.rar」· 汇编 代码 · 共 108 行

ASM
108
字号
;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 + =
减小字号Ctrl + -
显示快捷键?