English
Language : 

PIC16F193X Datasheet, PDF (329/418 Pages) Microchip Technology – 28/40/44-Pin Flash-Based, 8-Bit CMOS Microcontrollers with LCD Driver and nanoWatt Technology
PIC16F193X/LF193X
EXAMPLE 23-4: 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
MOVLW
MOVWF
MOVLW
MOVWL
EEADRL
PROG_ADDR_LO
EEADRL
PROG_ADDR_HI
EEADRH
; Select Bank for EEPROM registers
;
; Store LSB of address
;
; Store MSB of address
BCF
EECON1,CFGS
; Select Configuration Space
BSF
EECON1,EEPGD
; Select Program Memory
BCF
INTCON,GIE
; Disable interrupts
BSF
EECON1,RD
; Initiate read
NOP
; Executed (Figure 23-1)
NOP
; Ignored (Figure 23-1)
BSF
INTCON,GIE
; Restore interrupts
MOVF
MOVWF
MOVF
MOVWF
EEDATL,W
PROG_DATA_LO
EEDATH,W
PROG_DATA_HI
; Get LSB of word
; Store in user location
; Get MSB of word
; Store in user location
FIGURE 23-1:
FLASH PROGRAM MEMORY READ CYCLE EXECUTION
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Flash ADDR
Flash Data
PC
PC + 1
EEADRH,EEADRL
PPCC++33
PC + 4
PC + 5
INSTR (PC)
INSTR (PC + 1) EEDATH,EEDATL INSTR (PC + 3) INSTR (PC + 4)
INSTR(PC - 1)
executed here
BSF EECON1,RD
executed here
INSTR(PC + 1)
executed here
Forced NOP
executed here
INSTR(PC + 3)
executed here
INSTR(PC + 4)
executed here
RD bit
EEDATH
EEDATL
Register
EERHLT
© 2008 Microchip Technology Inc.
Preliminary
DS41364A-page 327