mov bp_ext1,a
mov a,status
mov statusbuf1,a
mov a,statusbuf1
mov status,a
mov a,bp_ext1
mov bp,a
mov a,accbuf1
; external 1 interrupt subroutine
; backup Bank Pointer
; backup status register
; restore status register
; restore Bank Pointer
; restore accumulator
; return to main program and original
; calling bank
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
[m]² or
[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
With the exception of the HT49RU80/HT49CU80, the following diagram illustrates the address-
ing/data flow of the look-up table:
P ro g ra m C o u n te r
H ig h B y te
P ro g ra m
M e m o ry
H ig h b y te o f ta b le c o n te n ts
S p e c ifie d b y [m ]
L o w b y te o f ta b le c o n te n ts
Table Program Example
The following example shows how the table pointer and table data is defined and retrieved from
the HT49R30A-1/HT49C30-1/HT49C30L LCD Type microcontroller. 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
which refers to the start address of the last page within the 2K Program
Memory of the HT49R30A-1/HT49C30-1/HT49C30L microcontroller. The table pointer is setup
here to have an initial value of
This will ensure that the first data read from the data table will
be at the Program Memory address
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
[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
[m]² instruction is executed.
Home Index Bookmark Pages Text
Previous Next
Pages: Home Index