English
Language : 

HT45F39 Datasheet, PDF (18/102 Pages) Holtek Semiconductor Inc – Ultrasonic Distance Measurement 8-bit Flash MCU
HT45F39/HT45F391
Ultrasonic Distance Measurement 8-bit Flash MCU
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 instructions
are executed, the lower order table byte from the Program Memory will be transferred to the user
defined Data Memory register [m] as specified in the instruction. 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:
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 6 b its
R e g is te r T B L H
U s e r S e le c te d
R e g is te r
H ig h B y te
L o w B y te
Instruction
Table Location Bits
b10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0
TABRDC [m] PC10 PC9 PC8 @7 @6 @5 @4 @3 @2 @1 @0
TABRDL [m] 1
1
1 @7 @6 @5 @4 @3 @2 @1 @0
Note: PC10~PC8: Current Program Counter bits
@7~@0: Table Pointer TBLP bits
Table Program Example
The accompanying example shows how the table pointer and table data is defined and retrieved from
the devices. This example uses raw table data located in the last page which is stored there using
the ORG statement. The value at this ORG statement is "0700H" which refers to the start address
of the last page within the 2K Program Memory of the devices. 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 "0706H" 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.
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 errors if used again by the main routine. As a rule it is
recommended that simultaneous use of the table read instructions should be avoided. However, in
situations where simultaneous use cannot be avoided, the interrupts 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.
Rev. 1.10
18
July 01, 2016