Chapter 1 Hardware Structure
Bank Pointer
-
BP
In the Data Memory area it should be noted that both the General Purpose Data Memory and the
LCD Memory have the same Data Memory addresses. Therefore when using instructions to ac-
cess the LCD Memory or the General Purpose Data Memory, it is necessary to ensure that the cor-
rect area is selected. With the exception of the HT49RU80/HT49CU80 devices, the General
Purpose Data Memory is always located in Bank 0. The General Purpose is sub-divided into three
banks, Bank 0, Bank 2 and Bank 3 for the HT49RU80/HT49CU80. For all devices the LCD Mem-
ory is located in Bank 1. Selecting the correct Data Memory area is achieved by using the Bank
Pointer. If data in either Bank 1, Bank 2 or Bank 3 is to be accessed, the lowest two bits of the BP
must be set to the binary values 01, 10 or 11 respectively, however, it must be noted that data in
these three banks can only be addressed indirectly using the MP1 Memory Pointer and the IAR1
indirect addressing register. Any direct addressing or any indirect addressing using MP0 and IAR0
will always result in data from Bank 0 being accessed. The Data Memory Bank Pointer is initialized
to Bank 0 after a reset, except for the WDT time-out reset in the Power Down Mode, in which case,
the Data Memory Bank Pointer remains unchanged. It should be noted that the Special Function
Data Memory is not affected by the bank selection, which means that the Special Function Regis-
ters can be accessed from within either Bank 0, Bank 1, Bank 2 or Bank 3.
For the HT49RU80/HT49CU80 devices, whose 16K of Program Memory is divided into two 8K
banks, known as Bank 0 and Bank 1, Bit 5 of the Bank Pointer is used to control which Program
Memory Bank is selected. Although only some of the Bank Pointer register bits are actually used
for Data Memory and Program Memory bank indicating purposes, note that all 8 bits of the BP reg-
ister are actually implemented. Any unused bits must be reset to
²0².
b 7
X
X
B P 5
X
X
X
B P 1
b 0
B P 0
B a n k P o in te r
B P 1
0
0
1
1
B P 0
0
1
0
1
D a
B a
B a
B a
B a
ta
n k
n k
n k
n k
M e
0
1 L
2 (
3 (
m o ry
C D M e m o ry
H T 4 9 R U 8 0 /H T 4 9 C U 8 0 o n ly )
H T 4 9 R U 8 0 /H T 4 9 C U 8 0 o n ly )
N o t u s e d , m u s t b e re s e t to "0 "
P ro g ra m M e m o ry
0 : B a n k 0 ( H T 4 9 R U 8 0 /H T 4 9 C U 8 0 o n ly )
1 : B a n k 1 ( H T 4 9 R U 8 0 /H T 4 9 C U 8 0 o n ly )
N o t u s e d , m u s t b e re s e t to "0 "
Accumulator
-
ACC
The Accumulator is central to the operation of any microcontroller and is closely related with opera-
tions 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 calcula-
tion 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 tempo-
rary 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 Accumula-
tor as no direct transfer between two registers is permitted.
39
Home Index Bookmark Pages Text
Previous Next
Pages: Home Index