HT82J30R/HT82J30A
Rev. 1.00
7
December 20, 2006
Program Memory
ROM
The program memory is used to store the program in-
structions which are to be executed. It also contains
data, table, and interrupt entries, and is organized into
4K 15bits,addressedbytheprogramcounterandtable
pointer.
Certain locations in the program memory are reserved
for special usage:
Location 000H
This area is reserved for program initialization. After
chip reset, the program always begins execution at lo-
cation 000H.
Location 004H
This area is reserved for the external interrupt service
program. If the INT0 input pin is activated, the inter-
rupt is enabled and the stack is not full, the program
begins execution at location 004H.
Location 008H
This area is reserved for the timer/event counter inter-
rupt service program. If a timer interrupt results from a
timer/event counter overflow, and if the interrupt is en-
abled and the stack is not full, the program begins exe-
cution at location 008H.
Location 00CH
This location is reserved for the A/D converter inter-
rupt service program. If the interrupt is activated,
when the A/D conversion is completed, if the interrupt
is enabledand the stack is not full, the programbegins
execution at this location.
Location 010H
Location010H is reservedfor when 8 bits of data have
been received or transmitted successfully from serial
interface A. When the related interrupts are enabled,
and the stack is not full, the program begins execution
at location 010H.
Location 014H
Location014H is reservedfor when 8 bits of data have
been received or transmitted successfully from serial
interface B. When the related interrupts are enabled,
and the stack is not full, the program begins execution
at location 014H.
Location 018H
This location is reserved for the external interrupt ser-
vice program. If the INT1 input pin is activated, the in-
terrupt is enabled and the stack is not full, the program
begins execution at this location.
Table location
Any location in the Program Memory space can be
used as a look-up table. The instructions TABRDC
[m]
(the current page, one page=256 words) and
TABRDL [m] (the last page) transfers the contents of
the lower-order byte to the specified data memory, and
the higher-order byte to the TBLH register. Only the
destination of the lower-order byte in the table is
well-defined, the other bits of the table word are trans-
ferred to the lower portion of TBLH. Any unused bits
are read as 0 . The Table Higher-order byte register,
TBLH, is read only. The table pointer, TBLP, is a
read/write register, which indicates the table location.
Beforeaccessingthetable,thelocationmustbeplaced
in TBLP. The TBLH register is read only and cannot be
restored. If the main routine and the ISR (Interrupt Ser-
vice Routine) both employ the table read instruction,
thecontentsofTBLHinthemainroutinearelikelytobe
changed by the table read instruction used in the ISR
and errors can occur. In other words, using the table
read instruction in the main routine and the ISR simul-
taneously should be avoided. However, if the table
@
& *
.
A " &
%
"
8
!
A
"
=
2
!
A
"
8 " #
" " 2 " B
"
8
!
A
"
6
!
A
"
6 1
!
A
"
=
2
!
A
"
(
7 !
A 2 ;
4
' & <
(
7 !
A 2 ;
4
' & <
C
5 C
/ C
C
C
/ C
5 C
. . . C
. . C
C
Program Memory
Instruction
Table Location
*11
*10
*9
*8
*7
*6
*5
*4
*3
*2
*1
*0
TABRDC [m]
P11
P10
P9
P8
@7
@6
@5
@4
@3
@2
@1
@0
TABRDL [m]
1
1
1
1
@7
@6
@5
@4
@3
@2
@1
@0
Table Location
Note: *11~*0: Table location bits
P11~P8: Current program counter bits
@7~@0: Table pointer bits