English
Language : 

PIC16F193X Datasheet, PDF (328/418 Pages) Microchip Technology – 28/40/44-Pin Flash-Based, 8-Bit CMOS Microcontrollers with LCD Driver and nanoWatt Technology
PIC16F193X/LF193X
23.1.4 READING THE FLASH PROGRAM
MEMORY
To read a program memory location, the user must:
1. Write the Least and Most Significant address
bits to the EEADRL and EEADRH registers.
2. Clear the CFGS bit of the EECON1 register.
3. Set the EEPGD control bit of the EECON1
register.
4. Then, set control bit RD of the EECON1 register.
Once the read control bit is set, the program memory
Flash controller will use the second instruction cycle to
read the data. This causes the second instruction
immediately following the “BSF EECON1,RD” instruction
to be ignored. The data is available in the very next cycle,
in the EEDATL and EEDATH registers; therefore, it can
be read as two bytes in the following instructions.
EEDATL and EEDATH registers will hold this value until
another read or until it is written to by the user.
Note 1: The two instructions following a program
memory read are required to be NOPs.
This prevents the user from executing a
two-cycle instruction on the next
instruction after the RD bit is set.
2: Data EEPROM can be read regardless of
the setting of the CPD bit.
EXAMPLE 23-3: FLASH PROGRAM READ
BANKSEL EEADRL
MOVLW MS_PROG_EE_ADDR
MOVWF EEADRH
MOVLW LS_PROG_EE_ADDR
MOVWF EEADRL
BANKSEL EECON1
BSF
EECON1, EEPGD
BSF
EECON1, RD
;
NOP
NOP
;
BANKSEL EEDATL
MOVF EEDATL, W
MOVWF LOWPMBYTE
MOVF EEDATH, W
MOVWF HIGHPMBYTE
BCF STATUS, RP1
;
;
;MS Byte of Program Address to read
;
;LS Byte of Program Address to read
;
;Point to PROGRAM memory
;EE Read
;First instruction after BSF EECON1,RD executes normally
;Any instructions here are ignored as program
;memory is read in second cycle after BSF EECON1,RD
;
;W = LS Byte of Program Memory
;
;W = MS Byte of Program EEDATL
;
;Bank 0
DS41364A-page 326
Preliminary
© 2008 Microchip Technology Inc.