English
Language : 

HT48R063_12 Datasheet, PDF (18/96 Pages) Holtek Semiconductor Inc – Enhanced I/O Type 8-Bit OTP MCU
HT48R063/064/065/066/0662/067
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:
Lastpage or
p re s e n t p a g e
P C x~P C 8
P C H ig h B y te
T B L P R e g is te r
P ro g ra m M e m o ry
D a ta
1 4 ~ 1 6 b its
R e g is te r T B L H
H ig h B y te
U s e r S e le c te d
R e g is te r
L o w B y te
Table Program Example
The accompanying example shows how the table
pointer and table data is defined and retrieved from the
device. This example uses raw table data located in the
last page which is stored there using the ORG state-
ment. The value at this ORG statement is ²300H² which
refers to the start address of the last page within the 1K
Program Memory of the HT48R064 microcontrollers.
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
²306H² 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 trans-
ferred to the TBLH register automatically when the
²TABRDL [m]² instruction is executed.
Because the TBLH register is a read-only register and
cannot be restored, care should be taken to ensure its
protection if both the main routine and Interrupt Service
Routine use the table read instructions. If using the table
read instructions, the Interrupt Service Routines may
change the value of TBLH and subsequently cause er-
rors if used again by the main routine. As a rule it is rec-
ommended that simultaneous use of the table read
instructions should be avoided. However, in situations
where simultaneous use cannot be avoided, the inter-
rupts should be disabled prior to the execution of any
main routine table-read instructions. Note that all table
related instructions require two instruction cycles to
complete their operation.
Table Location Bits
Instruction
b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
TABRDC [m] PC12 PC11 PC10 PC9 PC8 @7 @6 @5 @4 @3 @2 @1 @0
TABRDL [m]
1
1
1
1
1 @7 @6 @5 @4 @3 @2 @1 @0
Table Location
Note:
PC12~PC8: Current Program Counter bits
@7~@0: Table Pointer TBLP bits
For the HT48R063/HT48R064, the Table address location is 10 bits, i.e. from b9~b0.
For the HT48R065, the Table address location is 11 bits, i.e. from b10~b0.
For the HT48R066/HT48R0662, the Table address location is 12 bits, i.e. from b11~b0
For the HT48R067, the Table address location is 13 bits, i.e. from b12~b0
Rev. 1.40
18
October 23, 2012