⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 29f040.txt

📁 AM29f040 大容量FLASH的读写方法
💻 TXT
字号:
;郑州 汉威光电 刘海峰编制 (0371-62003091),欢迎交流




;***************字节读出********************
READCMD:
           MOV DPH,TEMP1
           MOV DPL,TEMP2  
           MOVX A,@DPTR
           MOV SBUF,A
           JNB TI,$
           CLR TI
           INC TEMP2

           DJNZ TEMP3,READCMD

;********************芯片擦除*******************
;***********返回00H擦除成功,返回0FH擦除失败*****
ERASECHIP: MOV P1,#58H              ;片地址有效
           MOV DPTR,#5555H
           MOV A,#0AAH
           MOVX @DPTR,A
           MOV DPTR,#2AAAH
           MOV A,#55H
           MOVX @DPTR,A
           MOV DPTR,#5555H
           MOV A,#80H
           MOVX @DPTR,A
           MOV DPTR,#5555H
           MOV A,#0AAH
           MOVX @DPTR,A
           MOV DPTR,#2AAAH
           MOV A,#55H
           MOVX @DPTR,A

           ;MOV DPTR,#5555H
           ;MOV A,#10H              ;全部擦除
           ;MOVX @DPTR,A

           MOV P1,#58H              ;块地址擦除
           MOV A,#30H
           MOVX @DPTR,A
           MOV P1,#59H              ;块地址擦除
           MOV A,#30H
           MOVX @DPTR,A
           MOV P1,#5AH              ;块地址擦除
           MOV A,#30H
           MOVX @DPTR,A

DQ7:    MOVX   A, @DPTR

        ;MOV	SBUF,A          ;状态监测
	;JNB	TI,$
	;CLR	TI

        MOV     C,ACC.7
        JC      OUTERA
        MOV     C,ACC.5
        JC      ERACHK
        SJMP DQ7
ERACHK: MOVX    A,@DPTR
        MOV     C,ACC.7
        JNC     ERAERR
OUTERA: MOV     A, #00H
        MOV	SBUF,A          ;擦除成功
	JNB	TI,$
	CLR	TI
        RET
ERAERR: MOV     A, #0FH         ;擦除失败
        MOV	SBUF,A
	JNB	TI,$
	CLR	TI
        SJMP    ERASECHIP       ;继续擦除
;****************字节写入*********************
WRICMD:    
           MOV DPTR,#5555H
           MOV A,#0AAH
           MOVX @DPTR,A
           MOV DPTR,#2AAAH
           MOV A,#55H
           MOVX @DPTR,A
           MOV DPTR,#5555H
           MOV A,#0A0H
           MOVX @DPTR,A           
 
           MOV DPL,TEMP1
           MOV DPH,TEMP2  
           MOV A,SBUF           
           MOVX @DPTR,A
           LCALL DELAY          ;6个指令周期的延时       
	   RET
           
          
    DELAY: NOP                 ;AM29F040写入延迟
	   NOP
	   NOP 
           
           RET
***************************************************
;***********返回00H擦除成功,返回0FH擦除失败*****
ERASECHIP: ;CLR ES
           MOV  A,ERAF
        ;MOV	SBUF,A          ;擦除成功
	;JNB	TI,$
	;CLR	TI           
           CJNE A,#0FH,OUTERA    ;芯片擦除标志位0F为未擦除
     MOV     ERAF,#00H          ;芯片擦除标志位00H为已擦除        
           MOV P1,#58H              ;片地址有效
           MOV DPTR,#5555H
           MOV A,#0AAH
           MOVX @DPTR,A
           MOV DPTR,#2AAAH
           MOV A,#55H
           MOVX @DPTR,A
           MOV DPTR,#5555H
           MOV A,#80H
           MOVX @DPTR,A
           MOV DPTR,#5555H
           MOV A,#0AAH
           MOVX @DPTR,A
           MOV DPTR,#2AAAH
           MOV A,#55H
           MOVX @DPTR,A

           ;MOV DPTR,#5555H
           ;MOV A,#10H              ;全部擦除
           ;MOVX @DPTR,A

           MOV P1,#58H              ;块地址擦除
           MOV A,#30H
           MOVX @DPTR,A
           MOV P1,#59H              ;块地址擦除
           MOV A,#30H
           MOVX @DPTR,A
           MOV P1,#5AH              ;块地址擦除
           MOV A,#30H
           MOVX @DPTR,A

DQ7:    MOVX   A, @DPTR
        SETB	WDT
        NOP
        CLR 	WDT
        ;MOV	SBUF,A          ;状态监测
	;JNB	TI,$
	;CLR	TI
        MOV     C,ACC.7
        JC      OUTERA
        MOV     C,ACC.5
        JC      ERACHK
        SJMP DQ7
ERACHK: MOVX    A,@DPTR
        MOV     C,ACC.7
        JNC     ERAERR
OUTERA: MOV     A, #00H
        MOV	SBUF,A          ;擦除成功
	JNB	TI,$
	CLR	TI
        ;SETB ES

        RET
ERAERR: MOV     A, #0FH         ;擦除失败
        MOV	SBUF,A
	JNB	TI,$
	CLR	TI
        ;SJMP    ERASECHIP       ;继续擦除
        ;SETB ES
        RET

⌨️ 快捷键说明

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