English
Language : 

HT46R064D Datasheet, PDF (23/114 Pages) Holtek Semiconductor Inc – Enhanced A/D Type MCU with High Current LED Driver
HT46R064D/065D/066D
Enhanced A/D Type 8-Bit OTP MCU with LED Driver
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 ²300H² which refers to the start address of the last
page within the 1K Program Memory of the HT46R064D 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
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 ?
tempreg2 db ?
:
:
; temporary register #1
; temporary register #2
mov a,06h
; initialise 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 tempregl
; data at prog. memory address ²306H² 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 ²305H² 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 300h
; sets initial address of last page
dc 00Ah, 00Bh, 00Ch, 00Dh, 00Eh, 00Fh, 01Ah, 01Bh
:
:
Rev. 1.00
18
January 12, 2011