English
Language : 

PIC16F872 Datasheet, PDF (32/160 Pages) Microchip Technology – 28-Pin, 8-Bit CMOS FLASH Microcontroller
PIC16F872
4.5 Reading the FLASH Program Memory
A program memory location may be read by writing two
bytes of the address to the EEADR and EEADRH reg-
isters, setting the EEPGD control bit (EECON1<7>)
and then setting control bit RD (EECON1<0>). Once
the read control bit is set, the microcontroller will use
the next two instruction cycles to read the data. The
data is available in the EEDATA and EEDATH registers
after the second NOP instruction. Therefore, it can be
read as two bytes in the following instructions. The
EEDATA and EEDATH registers will hold this value
until another read operation or until it is written to by the
user (during a write operation).
EXAMPLE 4-3: FLASH PROGRAM READ
BSF
STATUS, RP1
;
BCF
STATUS, RP0
; Bank 2
MOVLW ADDRH
;
MOVWF EEADRH
; MSByte of Program Address to read
MOVLW ADDRL
;
MOVWF EEADR
; LSByte of Program Address to read
BSF
STATUS, RP0
; Bank 3
BSF
EECON1, EEPGD ; Point to PROGRAM memory
Required
BSF
EECON1, RD
; EEPROM Read
Sequence
NOP
; memory is read in the next two cycles after BSF EECON1,RD
NOP
;
BCF
STATUS, RP0
; Bank 2
MOVF
MOVF
EEDATA, W
EEDATH, W
; W = LSByte of Program EEDATA
; W = MSByte of Program EEDATA
DS30221A-page 32
Preliminary
© 1999 Microchip Technology Inc.