
Rev. 1.00
1�
��ne 1�� �01�
Rev. 1.00
15
��ne 1�� �01�
HT46R003B
Cost-Effective A/D 8-bit OTP MCU
HT46R003B
Cost-Effective A/D 8-bit OTP MCU
R e g i s t e r T B L H
U s e r S e l e c t e d
R e g i s t e r
H i g h B y t e
L o w B y t e
T B L P R e g i s t e r
D a t a
Ad
dr
es
s
1 4 b i t s
L a s t p a g e o r
T B H P R e g i s t e r
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 statement. The value at this ORG statement is “0300H” which refers to the start address of the
last page within the 1K Program Memory of the microcontroller.
The table pointer is set 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 “0306H” 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.
Table Read Program Example
tempreg1
db
? ;
temporary
register
#1
tempreg2
db
? ;
temporary
register
#2
:
mov a,06h ; initialize table pointer - note that this address
;
is
referenced
mov tblp, a ; to the last page or present page
:
tabrdl tempreg1 ; transfers value in table referenced by table pointer
;
to
tempreg1
;
data
at
prog.
memory
address
“0306H”
transferred
to
tempreg1
;
and
TBLH
dec tblp ; reduce value of table pointer by one
tabrdl tempreg2 ; transfers value in table referenced by table pointer
;
to
tempreg2
;
data
at
prog.
memory
address
“0305H”
transferred
to
;
tempreg2
and
TBLH
; in this example the data “1AH” is transferred to tempreg1 and
;
data
“0FH”
to
register
tempreg2
;
the
value
“00H”
will
be
transferred
to
the
high
byte
;
register
TBLH
:
org
0300h ;
sets
initial
address
of
last
page
dc 00Ah, 00Bh, 00Ch, 00Dh, 00Eh, 00Fh, 01Ah, 01Bh
: