📄 dflash.a51
字号:
$NOMOD51
NAME DFLASH
#include <reg52.inc>
v_Fr BIT 0B0H.4
v_Io BIT 090H.7
?PR?_vReadFlash?DFLASH SEGMENT CODE
?PR?_vWriteFlash?DFLASH SEGMENT CODE
PUBLIC _vWriteFlash
PUBLIC _vReadFlash
; Uchar vReadFlash(Uint uaddr)
RSEG ?PR?_vReadFlash?DFLASH
_vReadFlash:
USING 0
;输入数据地址存储在R7,R6中
MOV DPL,R7
MOV DPH,R6
CLR v_Fr ;切换到Flash操作
CLR v_Io
MOVX A,@DPTR ;读取Flash
MOV R7,A ;保存返回参数
SETB v_Fr ;切换到Ram操作
CLR v_Io
RET
; void vWriteFlash(Uint uaddr, Uchar val)
RSEG ?PR?_vWriteFlash?DFLASH
_vWriteFlash:
USING 0
;输入数据地址存储在R7,R6中,数据存储在R5中
MOV DPL,R7
MOV DPH,R6
CLR v_Fr ;切换到Flash操作
CLR v_Io
MOV A,R5 ;写Flash操作
MOVX @DPTR,A
SETB v_Fr ;切换到Ram操作
CLR v_Io
RET
;?PR?_vBankSet?DFLASH SEGMENT CODE
; PUBLIC _vBankSet
; void _vBankSet(m_Bank)
; RSEG ?PR?_vBankSet?DFLASH
;_vBankSet:
; USING 0
; MOV A,R7
; JNZ Bank01
;Bank00:
; CLR v_A16
; CLR v_A17
; RET
;Bank01:
; CJNE A,#01H,Bank02
; SETB v_A16
; CLR v_A17
; RET
;Bank02:
; CJNE A,#02H,Bank03
; CLR v_A16
; SETB v_A17
; RET
;Bank03:
; CJNE A,#03H,Bdfault
; SETB v_A16
; SETB v_A17
; RET
;Bdfault:
; CLR v_A16
; CLR v_A17
; RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -