HT46801N-1 Holtek Semiconductor, HT46801N-1 Datasheet - Page 16

no-image

HT46801N-1

Manufacturer Part Number
HT46801N-1
Description
(HT4xR01x-1) Small Package 8-Bit OTP MCU
Manufacturer
Holtek Semiconductor
Datasheet
www.DataSheet.co.kr
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 be-
gins at the address 00H and are mapped into Bank 0.
Any unused Data Memory locations between these spe-
cial 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
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.
Rev.1.00
00H .
Indirect Addressing Program Example
The important point to note here is that in the example shown above, no reference is made to specific Data Memory
addresses.
data .section
adres1 db ?
adres2 db ?
adres3 db ?
adres4 db ?
block
code .section at 0 code
org
start:
loop:
continue:
mov a,04h
mov block,a
mov a,offset adres1
mov mp0,a
clr IAR0
inc mp0
sdz block
jmp loop
00h
db ?
data
; setup size of block
; Accumulator loaded with first RAM address
; setup memory pointer with first RAM address
; clear the data at address defined by MP0
; increment memory pointer
; check if last memory location has been cleared
16
Memory Pointers - MP0, MP1
Two Memory Pointers, known as MP0 and MP1 are pro-
vided. These Memory Pointers are physically imple-
mented in the Data Memory and can be manipulated in
the same way as normal registers providing a conve-
nient way with which to indirectly address and track
data. When any operation to the relevant Indirect Ad-
dressing Registers is carried out, the actual address that
the microcontroller is directed to, is the address speci-
fied by the related Memory Pointer. The following exam-
ple shows how to clear a section of four Data Memory
locations already defined as locations adres1 to adres4.
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.
HT46R01B-1/HT46R01N-1
HT48R01B-1/HT48R01N-1
June 9, 2011
Datasheet pdf - http://www.DataSheet4U.net/

Related parts for HT46801N-1