HT46R064D/065D/066D
Enhanced A/D Type 8-Bit OTP MCU with LED Driver
Special Purpose Data Memory
This area of Data Memory is where registers, necessary for the correct operation of the
microcontroller, are stored. Most of the registers are both readable and writeable but some are
protected and are readable only, the details of which are located under the relevant Special Function
Register section. Note that for locations that are unused, any read instruction to these addresses will
return the value ²00H².
Special Function Registers
To ensure successful operation of the microcontroller, certain internal registers are implemented in the
Data Memory area. These registers ensure correct operation of internal functions such as timers,
interrupts, etc., as well as external functions such as I/O data control. The location of these registers
within the Data Memory begins at the address ²00H² and are mapped into both Bank 0 and Bank 1.
Any unused Data Memory locations between these special function registers and the point where the
General Purpose Memory begins is reserved and attempting to read data from these locations will
return a value of ²00H².
Indirect Addressing Registers - IAR0, IAR1
The Indirect Addressing Registers, IAR0 and IAR1, although having their locations in normal RAM
register space, do not actually physically exist as normal registers. The method of indirect addressing
for RAM data manipulation uses these Indirect Addressing Registers and Memory Pointers, in
contrast to direct memory addressing, where the actual memory address is specified. Actions on the
IAR0 and IAR1 registers will result in no actual read or write operation to these registers but rather to
the memory location specified by their corresponding Memory Pointer, MP0 or MP1. Acting as a pair,
IAR0 with MP0 and IAR1 with MP1 can together access data from the Data Memory. As the Indirect
Addressing Registers are not physically implemented, reading the Indirect Addressing Registers
indirectly will return a result of ²00H² and writing to the registers indirectly will result in no operation.
Memory Pointers - MP0, MP1
Two Memory Pointers, known as MP0 and MP1 are provided. These Memory Pointers are physically
implemented in the Data Memory and can be manipulated in the same way as normal registers
providing a convenient way with which to indirectly address and track data. MP0 can only be used to
indirectly address data in Bank 0 while MP1 can be used to address data in Bank 0 and Bank1. When
any operation to the relevant Indirect Addressing Registers is carried out, the actual address that the
microcontroller is directed to, is the address specified by the related Memory Pointer. Note that for the
HT46R064D device, bit 7 of the Memory Pointers is not required to address the full memory space.
When bit 7 of the Memory Pointers for these devices is read, a value of ²1² will be returned. Note that
indirect addressing using MP1 and IAR1 must be used to access any data in Bank 1. The following
example shows how to clear a section of four Data Memory locations already defined as locations adres1
to adres4.
Rev. 1.00
20
January 12, 2011