PIC16F87X
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).
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
EXAMPLE 4-3: FLASH PROGRAM READ
BSF
STATUS, RP1
STATUS, RP0
ADDRH
;
BCF
; Bank 2
;
MOVLW
MOVWF
MOVLW
MOVWF
BSF
EEADRH
; MSByte of Program Address to read
ADDRL
;
EEADR
; LSByte of Program Address to read
; Bank 3
STATUS, RP0
EECON1, EEPGD
EECON1, RD
BSF
; 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.