
HT49RU80/HT49CU80
Rev. 1.10 9 March 2, 2007
·Table location
Any location in the program memory can be used as
look-up tables. The instructions ²TABRDC [m]²(page
specified by TBHP and TBLP) and ²TABRDL [m]²(the
last page) transfer the contents of the lower-order byte
to the specified data memory, and the higher-order
byte to TBLH (08H). The higher-order byte table
pointer TBHP (1FH) and lower-order byte table
pointer TBLP (07H) are read/write registers, which in-
dicate the table locations. Before accessing the table
data, the location has to be placed in the TBHP and
TBLP. The TBLH register is read only and cannot be
restored. If the main routine and the interrupt service
routine both employ the table read instruction, the
contents of the TBLH register in the main routine are
likely to be changed by the table read instruction used
in the interrupt service routine. If this happens errors
can occur. Therefore, using the table read instruction
in the main routine and in the interrupt service routine
simultaneously should be avoided. However, if the ta-
ble read instruction has to be used in both the main
routine and in the interrupt service routine the interrupt
should be disabled prior to executing the table read in-
struction. It should not be re-enabled until TBLH in the
main routine has been backed up. All table related in-
structions require 2 cycles to execute.
Stack Register -STACK
The stack register is a special part of the memory used
to save the contents of the program counter. The stack
is organised into 16 levels and is neither part of the data
memory nor part of the program memory, and is neither
readable nor writeable. Its activated level is indexed by
a stack pointer, known as SP, and is neither readable
nor writeable. At the start of a subroutine call or an inter-
rupt acknowledge, the contents of the program counter
are pushed onto the stack. At the end of the subroutine
or interrupt routine, indicated by a return instruction,
RET or RETI, the contents of the program counter are
restored to their previous value from the stack. After a
chip reset, the SP will point to the top of the stack.
If the stack is full and a non-masked interrupt takes
place, the interrupt request flag is recorded but the ac-
knowledge is still inhibited. Once the Stack Pointer is
decremented, by RET or RETI, the interrupt is serviced.
This feature prevents stack overflow, allowing the pro-
grammer to use the structure easily. Likewise, if the
stack is full, and a ²CALL²is subsequently executed, a
stack overflow occurs and the first entry is lost. Only the
most recent 16 return addresses are stored.
Data Memory -RAM
Not including the LCD memory, the data memory, has a
total capacity of 608´8 bits, and is divided into two func-
tional groups, namely, the special function registers and
the general purpose data memory most of which are
readable/ writeable, although some are read only. The
General Purpose Data Memory is subdivided into three
banks, Banks 0, 2 and 3 each of which has a capacity of
192 ´8bits. The bank pointer, BP, selects which bank is
to be used, however care should be exercised when
manipulating the bank pointer as it is also used to select
the Program Memory bank.
BP RAM Bank
00000 0
00001 1
00010 2
00011 3
The general purpose data memory, addressed from 40H
to FFH (bank0, 2, 3), is used for data and control infor-
mation under instruction commands.
The RAM areas can directly handle arithmetic, logic, in-
crement, decrement, and rotate operations. Except for
some dedicated bits, each bit in the RAM can be set and
reset by the bit manipulation instructions ²SET [m].i²
and ²CLR [m].i². They are also indirectly accessible
through Memory pointer register 0, MP0, or Memory
pointer register 1, MP1.
There is also a special part of memory for the LCD mem-
ory. Bits in this special part memory are mapped to the
LCD pixel one by one. This LCD memory is located in
data memory bank 1.
Indirect Addressing Registers
Locations 00H and 02H are indirect addressing regis-
ters that are not physically implemented. Any read/write
operation of [00H] and [02H] accesses the data memory
pointed to by MP0 and MP1, respectively. Reading lo-
cations 00H or 02H indirectly returns the result 00H.
Writing to it indirectly leads to no operation.
The direct transfer of data between two indirect ad-
dressing registers is not supported. The memory pointer
registers, MP0 and MP1, are both 8-bit registers used to
access the data memory by combining the correspond-
ing indirect addressing registers. MP0 can only be ap-
plied to memory located at bank 0, while MP1 can be
applied to data memory from bank 0, bank 2 and bank 3
as well as the LCD display memory which is located in
bank 1.
Accumulator -ACC
The accumulator, ACC, is related to ALU operations. It
is also mapped to location 05H in the data memory and
is capable of operating with immediate data. Any data
transfers between two data memory locations must
pass through the ACC.