eeproma.a51

来自「HIGH_SPEED_USB_To_ATA(IDE)Firmware相关代码(E」· A51 代码 · 共 44 行

A51
44
字号
NAME      EEPROMa

public      EEWaitForStop
extrn	    CODE(EEStartAndAddr)

$include (fx2regs.inc)

EEPROMSEG	SEGMENT	CODE

	RSEG	EEPROMSEG
	USING	0
EEWaitForStop:
        MOV     DPTR,#I2CS
        MOVX    A,@DPTR
        JB      ACC.6,EEWaitForStop
	RET


public WaitForEEPROMWrite
; Keep writing the EEPROM address until the device ACKs
; This means that the write is complete.
WaitForEEPROMWrite:
	LCALL   EEWaitForStop
AckLoop:
	LCALL   EEStartAndAddr

waitForBusy:
	; Wait for BUSY to be 0
        MOV     DPTR,#0E678H
        MOVX    A,@DPTR
        JNB     ACC.0,waitForBusy
	
	; Set the STOP bit
        MOVX    A,@DPTR
        ORL     A,#040H
        MOVX    @DPTR,A
	LCALL   EEWaitForStop

        MOVX    A,@DPTR
        JNB     ACC.1,AckLoop		; If no ACK, try again
        RET     

      end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?