PIC17C75X
8.3
Table Reads
EXAMPLE 8-2: TABLE READ
The table read allows the program memory to be read.
This allows constants to be stored in the program
memory space, and retrieved into data memory when
needed. Example 8-2 reads the 16-bit value at pro-
gram memory address TBLPTR. After the dummy byte
has been read from the TABLATH, the TABLATH is
loaded with the 16-bit data from program memory
address TBLPTR + 1. The first read loads the data into
the latch, and can be considered a dummy read
(unknown data loaded into 'f'). INDF0 should be con-
figured for either auto-increment or auto-decrement.
MOVLW
MOVWF
MOVLW
MOVWF
TABLRD 0,0,DUMMY
TLRD 1, INDF0
TABLRD 0,1,INDF0
HIGH (TBL_ADDR) ; Load the Table
TBLPTRH
LOW (TBL_ADDR)
TBLPTRL
;
;
;
address
; Dummy read,
Updates TABLATH
; Read HI byte
of TABLATH
; Read LO byte
;
;
;
;
of TABLATH and
Update TABLATH
FIGURE 8-7: TABLRD TIMING
Q4
Q4
Q4
Q1 Q2
Q3
Q4
Q1 Q2
Q1 Q2
Q1 Q2
Q3
Q3
Q3
AD15:AD0
PC
PC+1
TBL
Data in
PC+2
Instruction
fetched
INST (PC+2)
INST (PC+1)
TABLRD
INST (PC+1)
Instruction
executed
INST (PC-1)
TABLRD cycle2
Data read cycle
TABLRD cycle1
ALE
OE
'1'
WR
FIGURE 8-8: TABLRD TIMING (CONSECUTIVE TABLRD INSTRUCTIONS)
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Data in 1
PC
TBL1
PC+2
TBL2 Data in 2
AD15:AD0
PC+1
PC+3
Instruction
fetched
TABLRD1
INST (PC+2)
INST (PC+3)
INST (PC+2)
TABLRD2
Instruction
executed
INST (PC-1) TABLRD1 cycle1 TABLRD1 cycle2 TABLRD2 cycle1
Data read cycle
TABLRD2 cycle2
Data read cycle
ALE
OE
'1'
WR
DS30264A-page 60
Preliminary
1997 Microchip Technology Inc.