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

📄 flash.asm

📁 51单片机用汇编实例 包括ad
💻 ASM
字号:
;===============================================================
; 文件名称: Flash.ASM
; 功能描述: 读/写Flash, 了解Flash的保护, 擦除特性.
;           带保护写入0~127共128个数, 不带保护写入128个55H.
;===============================================================

START_ADDR	EQU 0000H
ADDR_UNLOCK1	EQU 5555H
ADDR_UNLOCK2	EQU 2AAAH

AUXR	DATA 8EH

	ORG 0000H		;实验说明:
	LJMP START		;分别运行程序到NOP, 观察存储区
	ORG 0100H		;    X:0000H中的内容
START:	MOV AUXR, #02H		;使能外部RAM访问
	LCALL PWRITE		;带保护写
	LCALL DELAY		;延时
	NOP
	LCALL UPWRITE		;不带保护写
	LCALL DELAY
	NOP
	LCALL UPROT		;去除保护
	LCALL UPWRITE		;不带保护写
	LCALL DELAY
	NOP
	LCALL ERASE		;芯片擦除
	NOP
	SJMP $
;======带保护写(写入0~127)======
PWRITE:	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #0AAH
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK2
	MOV A, #55H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #0A0H
	MOVX @DPTR, A
	MOV DPTR, #START_ADDR
	MOV R4, #80H		;128
	MOV A, #00H
PWLP1:	MOVX @DPTR, A
	INC DPL
	INC A
	DJNZ R4, PWLP1
	RET
;======不带保护写, 写入128字节的55H======
UPWRITE:MOV DPTR, #START_ADDR
	MOV R4, #80H
	MOV A, #55H
UWLP1:	MOVX @DPTR, A
	INC DPL
	DJNZ R4, UWLP1
	RET
;======去除保护特性======
UPROT:	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #0AAH
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK2
	MOV A, #55H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #80H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #0AAH
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK2
	MOV A, #55H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #20H
	MOVX @DPTR, A
	RET
;======芯片擦除, 擦除后全为FF======
ERASE:	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #0AAH
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK2
	MOV A, #55H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #80H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #0AAH
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK2
	MOV A, #55H
	MOVX @DPTR, A
	MOV DPTR, #ADDR_UNLOCK1
	MOV A, #10H
	MOVX @DPTR, A
	RET

DELAY:	MOV R7, #50H
DLP1:	MOV R6, #0F0H
DLP2:	NOP
	DJNZ R6, DLP2
	DJNZ R7, DLP1
	RET

	END

⌨️ 快捷键说明

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