HT46R01/HT46R02/HT46R03
Structure
Special Function Registers
The two sections of Data Memory, the Special Purpose
and General Purpose Data Memory are located at con-
secutive locations. All are implemented in RAM and are
8 bits wide but the length of each memory section is dic-
tated by the type of microcontroller chosen. The start
address of the Data Memory for all devices is the ad-
dress ²00H². Registers which are common to all
microcontrollers, such as ACC, PCL, etc., have the
same Data Memory address.
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 and
A/D converter operation. The location of these registers
within the Data Memory begins at the address 00H. Any
unused Data Memory locations between these special
function registers and the point where the General Pur-
pose Memory begins is reserved and attempting to read
data from these locations will return a value of 00H.
General Purpose Data Memory
All microcontroller programs require an area of
read/write memory where temporary data can be stored
and retrieved for use later. It is this area of RAM memory
that is known as General Purpose Data Memory. This
area of Data Memory is fully accessible by the user pro-
gram for both read and write operations. By using the
²SET [m].i² and ²CLR [m].i² instructions individual bits
can be set or reset under program control giving the
user a large range of flexibility for bit manipulation in the
Data Memory.
Indirect Addressing Registers - IAR0, IAR1
The Indirect Addressing Registers, IAR0 and IAR1, al-
though having their locations in normal RAM register
space, do not actually physically exist as normal regis-
ters. The method of indirect addressing for RAM data
manipulation uses these Indirect Addressing Registers
and Memory Pointers, in contrast to direct memory ad-
dressing, where the actual memory address is speci-
fied. 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 corre-
sponding Memory Pointer, MP0 or MP1. Acting as a
pair, IAR0 with MP0 and IAR1 with MP1 can together ac-
cess data from the Data Memory. As the Indirect Ad-
dressing Registers are not physically implemented,
reading the Indirect Addressing Registers indirectly will
return a result of ²00H² and writing to the registers indi-
rectly will result in no operation.
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
writable but some are protected and are readable only,
the details of which are located under the relevant Spe-
cial Function Register section. Note that for locations
that are unused, any read instruction to these addresses
will return the value ²00H².
0
0
H
0
0
H
0
0
H
S
D
p
e
c
i
a
l
P
u
r
p
o
s
e
S
D
p
e
c
i
a
l
P
u
r
p
o
s
e
S
D
p
e
c
i
a
l
P
u
r
p
o
s
e
a
t
a
M
e
m
o
r
y
a
t
a
M
e
m
o
r
y
a
t
a
M
e
m
o
r
y
1
F
H
H
1
F
H
H
1
F
H
2
0
2
0
2
0
H
G
D
e
n
e
r
a
l
P
u
r
p
o
s
e
G
D
e
n
e
r
a
l
P
u
r
p
o
s
e
G
D
e
n
e
r
a
l
P
u
r
p
o
s
e
a
t
a
M
e
m
o
r
y
a
t
a
M
e
m
o
r
y
a
t
a
M
e
m
o
r
y
5
F
H
7
F
H
B
F
H
H
T
4
6
R
0
1
H
T
4
6
R
0
2
H
T
4
6
R
0
3
Data Memory Structure
Note:
Most of the Data Memory bits can be directly manipulated using the ²SET [m].i² and ²CLR [m].i² with the excep-
tion of a few dedicated bits. The Data Memory can also be accessed through the memory pointer register MP.
Rev. 1.00
11
September 21, 2007