PIC16F/LF1946/47
EXAMPLE 11-3:
FLASH PROGRAM MEMORY READ
* This code block will read 1 word of program
* memory at the memory address:
PROG_ADDR_HI: PROG_ADDR_LO
*
*
data will be returned in the variables;
PROG_DATA_HI, PROG_DATA_LO
BANKSEL EEADRL
; Select Bank for EEPROM registers
MOVLW
MOVWF
MOVLW
MOVWL
PROG_ADDR_LO
EEADRL
PROG_ADDR_HI
EEADRH
;
; Store LSB of address
;
; Store MSB of address
BCF
BSF
BCF
BSF
NOP
NOP
BSF
EECON1,CFGS
EECON1,EEPGD
INTCON,GIE
EECON1,RD
; Do not select Configuration Space
; Select Program Memory
; Disable interrupts
; Initiate read
; Executed (Figure 11-1)
; Ignored (Figure 11-1)
; Restore interrupts
INTCON,GIE
MOVF
EEDATL,W
; Get LSB of word
MOVWF
MOVF
PROG_DATA_LO
EEDATH,W
; Store in user location
; Get MSB of word
MOVWF
PROG_DATA_HI
; Store in user location
2010 Microchip Technology Inc.
Preliminary
DS41414A-page 111