HT48R064G/065G/066G/0662G
Enhanced I/O Type 8-Bit OTP MCU with OPA
Accumulator - ACC
The Accumulator is central to the operation of any microcontroller and is closely related with
operations carried out by the ALU. The Accumulator is the place where all intermediate results from
the ALU are stored. Without the Accumulator it would be necessary to write the result of each
calculation or logical operation such as addition, subtraction, shift, etc., to the Data Memory resulting
in higher programming and timing overheads. Data transfer operations usually involve the temporary
storage function of the Accumulator; for example, when transferring data between one user defined
register and another, it is necessary to do this by passing the data through the Accumulator as no direct
transfer between two registers is permitted.
Program Counter Low Register - PCL
To provide additional program control functions, the low byte of the Program Counter is made
accessible to programmers by locating it within the Special Purpose area of the Data Memory. By
manipulating this register, direct jumps to other program locations are easily implemented. Loading a
value directly into this PCL register will cause a jump to the specified Program Memory location,
however, as the register is only 8-bit wide, only jumps within the current Program Memory page are
permitted. When such operations are used, note that a dummy cycle will be inserted.
Bank Pointer - BP
In the HT48R0662G device, the Data Memory is divided into two Banks, known as Bank 0 and Bank
1. A Bank Pointer, which is bit 0 of the Bank Pointer register is used to select the required Data
Memory bank. Only data in Bank 0 can be directly addressed as data in Bank 1 must be indirectly
addressed using Memory Pointer MP1 and Indirect Addressing Register IAR1. Using Memory
Pointer MP0 and Indirect Addressing Register IAR0 will always access data from Bank 0, irrespective
of the value of the Bank Pointer. Memory Pointer MP1 and Indirect Addressing Register IAR1 can
indirectly address data in either Bank 0 or Bank 1 depending upon the value of the Bank Pointer.
The Data Memory is initialised to Bank 0 after a reset, except for the WDT time-out reset in the
Idle/Sleep Mode, in which case, the Data Memory bank remains unaffected. It should be noted that
Special Function Data Memory is not affected by the bank selection, which means that the Special
Function Registers can be accessed from within either Bank 0 or Bank 1. Directly addressing the Data
Memory will always result in Bank 0 being accessed irrespective of the value of the Bank Pointer.
· BP Register - HT48R0662G
Bit
7
6
5
4
3
2
1
0
Name
¾
¾
¾
¾
¾
¾
¾
DMBP0
R/W
¾
¾
¾
¾
¾
¾
¾
R/W
POR
¾
¾
¾
¾
¾
¾
¾
0
Bit 7~1 :
Bit 0
unimplemented, read as ²0²
DMBP0: Data Memory bank point
0: Bank 0
1: Bank 1
Rev. 1.10
32
October 23, 2012