HT46R46/C46/R47/C47/R48A/C48A/R49
Rev. 1.41
11
December 30, 2008
Look-up Table
Any location within the Program Memory can be defined
as a look-up table where programmers can store fixed
data. To use the look-up table, the table pointer must
first be setup by placing the lower order address of the
look up data to be retrieved in the table pointer register,
TBLP. This register defines the lower 8-bit address of
the look-up table.
After setting up the table pointer, the table data can be
retrieved from the current Program Memory page or last
Program Memory page using the
²
TABRDC[m]
²
or
²
TABRDL [m]
²
instructions, respectively. When these in-
structions are executed, the lower order table byte from
the Program Memory will be transferred to the user de-
fined Data Memory register [m] as specified in the in-
struction. The higher order table data byte from the
Program Memory will be transferred to the TBLH special
register. Any unused bits in this transferred higher order
byte will be read as
²
0
²
.
The following diagram illustrates the addressing/data
flow of the look-up table:
Table Program Example
The following example shows how the table pointer and
table data is defined and retrieved from the HT46R47
microcontroller. This example uses raw table data lo-
cated in the last page which is stored there using the
ORG statement. The value at this ORG statement is
²
700H
²
which refers to the start address of the last page
within the 2K Program Memory of the HT46R47
microcontroller. The table pointer is setup here to have
an initial value of
²
06H
²
. This will ensure that the first
data read from the data table will be at the Program
Memory address
²
706H
²
or 6 locations after the start of
the last page. Note that the value for the table pointer is
referenced to the first address of the present page if the
²
TABRDC [m]
²
instruction is being used. The high byte
of the table data which in this case is equal to zero will
be transferred to the TBLH register automatically when
the
²
TABRDL [m]
²
instruction is executed.
3 F F H
N o t I m p l e m e n t e d
1 5 b i t s
1 4 b i t s
1 4 b i t s
8 0 0 H
F F F H
0 1 4 H
I n i t i a l i s a t i o n
V e c t o r
E x t e r n a l
I n t e r r u p t V e c t o r
I n i t i a l i s a t i o n
V e c t o r
E x t e r n a l
I n t e r r u p t V e c t o r
T i m e r / E v e n t C o u n t e r
I n t e r r u p t V e c t o r
I n i t i a l i s a t i o n
V e c t o r
E x t e r n a l
I n t e r r u p t V e c t o r
T i m e r / E v e n t C o u n t e r
I n t e r r u p t V e c t o r
H T 4 6 R 4 7
H T 4 6 R 4 8 A
H T 4 6 R 4 9
H T 4 6 R 4 6
A / D C o n v e r t e r
I n t e r r u p t V e c t o r
A / D C o n v e r t e r
I n t e r r u p t V e c t o r
A / D C o n v e r t e r
I n t e r r u p t V e c t o r
T i m e r / E v e n t C o u n t e r
I n t e r r u p t V e c t o r
0 0 0 H
0 0 4 H
0 0 8 H
0 0 C H
0 1 0 H
3 0 0 H
7 F F H
4 0 0 H
Program Memory Structure
P r o g r a m
M e m o r y
P r o g r a m C o u n t e r
H i g h B y t e
T B L P
T B L H
S p e c i f i e d b y [ m ]
T a b l e C o n t e n t s H i g h B y t e
T a b l e C o n t e n t s L o w B y t e