
Rev. 2.50
32
��ne 22� 20��
Rev. 2.50
33
��ne 22� 20��
HT66F20/HT66F30/HT66F40/HT66F50/HT66F60
HT66FU30/HT66FU40/HT66FU50/HT66FU60
A/D Flash MCU with EEPROM
HT66F20/HT66F30/HT66F40/HT66F50/HT66F60
HT66FU30/HT66FU40/HT66FU50/HT66FU60
A/D Flash MCU with EEPROM
Table Program Example
The following example shows how the table pointer and table data is defined and retrieved from the
microcontroller. This example uses raw table data located in the Program Memory 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 HT66F30. 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 address specified by the TBLP and TBHP if the
"TABRD [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 "TABRD [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 table read
instructions. If using the table read instructions, the Interrupt Service Routines may change the
value of the 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 ; initialise low byte table pointer - note that this address
;
is
referenced
mov tblp, a
mov
a,07h
;
initialise
high
table
pointer
mov tbhp, a
:
:
tabrdl tempreg1 ; transfers value in table referenced by table pointer data at
;
program
memory
address
"706H"
transferred
to
tempreg1
and
TBLH
dec tblp ; reduce value of table pointer by one
tabrdl tempreg2 ; transfers value in table referenced by table pointer data at
;
program
memory
address
"705H"
transferred
to
tempreg2
and
TBLH
in
; this example the data "1AH" is transferred to tempreg1 and data
;
"0FH"
to
register
tempreg2
:
:
org
700h ;
sets
initial
address
of
program
memory
dc 000Ah, 000Bh, 000Ch, 000Dh, 000Eh, 000Fh, 001Ah, 001Bh
:
: