Microchip Technology AC244045 Data Sheet

Page of 448
 2010-2012 Microchip Technology Inc.
DS41440C-page 109
PIC16(L)F1825/1829
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
PROG_ADDR_LO
MOVWF
EEADRL
; Store LSB of address
MOVLW
PROG_ADDR_HI
MOVWL
EEADRH
; Store MSB of address
    
BCF
EECON1,CFGS
; Do not select Configuration Space
BSF
EECON1,EEPGD
; Select Program Memory
BCF
INTCON,GIE
; Disable interrupts
BSF
EECON1,RD
; Initiate read
NOP
)
NOP
)
BSF
INTCON,GIE
; Restore interrupts
MOVF
EEDATL,W
; Get LSB of word
MOVWF
PROG_DATA_LO
; Store in user location
MOVF
EEDATH,W
; Get MSB of word
MOVWF
PROG_DATA_HI
; Store in user location