📄 mrtoee.asm
字号:
;********************MRTOEE********************
;本程序实现从内部RAM传送多字节数据到内部EEPROM。
;入口参数:原操作数的地址放在SADR中,目标EEPROM的地址放在DADR中,字节数在W中。
;出口参数:相关数据已写入指定EEPROM单元中。
;占用资源:W,STATUS,FSR,020H,022H,023H,一重堆栈。
IFNDEF MRTOEE1
#DEFINE MRTOEE1
SADR EQU 020H
DADR EQU 022H
CNT EQU 023H
MRTOEE MOVWF CNT
MOVF SADR,W
MOVWF FSR ;RAM单元首地址
BANKSEL PIE2
BCF PIE2,EEIE ;关闭EE中断
BANKSEL EECON1
BCF EECON1,EEPGD ;读写EEPROM
BCF STATUS,RP0
BCF STATUS,RP1
MOVF DADR,W
BSF STATUS,RP1
MOVWF EEADR ;将目标地址写入EEADR
LOOP99 MOVF INDF,W
MOVWF EEDATA ;将源数据写入EEDATA
BSF STATUS,RP0
BSF EECON1,WREN ;写允许
BCF INTCON,GIE ;关闭中断
MOVLW 55H ;MICROCHIP
MOVWF EECON2 ;规
MOVLW 0XAA ;定
MOVWF EECON2 ;代码
BSF EECON1,WR ;开始写入
BSF INTCON,GIE ;开放中断
BCF EECON1,WREN ;写保护
BTFSC EECON1,WR ;写完了吗?
GOTO $-1
INCF FSR,F ;写下一个数据
BCF STATUS,RP0
INCF EEADR,F
BCF STATUS,RP1
DECFSZ CNT,F ;所有的数据写完了吗?
GOTO NEXT63
RETURN
NEXT63 BSF STATUS,RP1
GOTO LOOP99
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -