PIC16F87X
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
BCF
MOVLW
MOVWF
MOVLW
MOVWF
BSF
BSF
STATUS, RP1
STATUS, RP0
ADDRH
EEADRH
ADDRL
EEADR
STATUS, RP0
EECON1, EEPGD
EECON1, RD
;
; Bank 2
;
; MSByte of Program Address to read
;
; LSByte of Program Address to read
; Bank 3
; Point to PROGRAM memory
; EEPROM Read
Required
Sequence
BSF
NOP
NOP
; memory is read in the next two cycles after BSF EECON1,RD
;
BCF
STATUS, RP0
; Bank 2
MOVF
MOVF
EEDATA, W
EEDATH, W
; W = LSByte of Program EEDATA
; W = MSByte of Program EEDATA
DS30292B-page 44
漏
1999 Microchip Technology Inc.