The lower byte of the PC, known as PCL, is a readable
and writeable register. Moving data into the PCL performs
a short jump. The destination is within 256 locations.
When a control transfer takes place, an additional
dummy cycle is required.
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 organised into
8192´16´2 banks which are addressed by the program
counter and table pointer.
The BP register bits5~bits7 are used to select the Pro-
gram Memory bank. When BP.7~BP.5 = 000B, Program
Memory bank 0 is selected and ranges from 0000H to
1FFFH. When BP.7~BP.5 = 001B, Program Memory
bank 1 is selected which ranges from 2000H to 3FFFH.
The CALL and JMP instruction provide for a full 13 bits
of addressing to allow branching anywhere within the 8K
program memory bank. When executing a CALL or JMP
instruction, the highest bit of the address is provided by
BP.5. When executing a CALL or JMP instruction, the
bank select bit must be correctly programmed to ensure
Program Memory
Instruction(s)
*13~*8
TABRDC [m]
TBHP
TABRDL [m]
111111
Note:
*13~*0: Table location bits
@7~@0: Bits of TBLP
Rev. 1.10
that the desired program memory bank is addressed. If
a return from a CALL instruction or an interrupt is exe-
cuted, the entire 14-bit program counter is popped off
the stack.
Certain locations in the ROM are reserved for special
usage:
·
Location 000H
Location 000H is reserved for program initialisation.
After a chip reset, the program always begins execu-
tion at this location.
·
Location 004H
Location 004H is reserved for the external interrupt
service program. If the INT0 input pin is activated, and
the interrupt is enabled, and the stack is not full, the
program will jump to this location and begin execution.
·
Location 008H
Location 008H is reserved for the external interrupt
service program also. If the INT1 input pin is activated,
and the interrupt is enabled, and the stack is not full,
the program will jump to this location and begin
execution.
·
Location 00CH
Location 00CH is reserved for the Timer/Event Coun-
ter 0 interrupt service program. If a timer interrupt re-
sults from a Timer/Event Counter 0 overflow, and if the
interrupt is enabled and the stack is not full, the pro-
gram will jump to this location and begin execution.
·
Location 010H
Location 010H is reserved for the Timer/Event Coun-
ter 1 interrupt service program. If a timer interrupt re-
sults from a Timer/Event Counter 1 overflow, and if the
interrupt is enabled and the stack is not full, the pro-
gram will jump to this location and begin execution.
·
Location 014H
This location is reserved for the UART interrupt ser-
vice program. If a UART interrupt results from a UART
TX or RX, and the interrupt is enabled and the stack is
not full, the program will jump to this location and be-
gin execution.
·
Location 018H
This location is reserved for the multi function interrupt
service program. If a multi function interrupt results
from a Timer/Event Counter 2 overflow, a time base
interrupt occurs, or an RTC counter overflow, and the
related interrupts are enabled and the multi function
interrupt is enabled and the stack is not full, the pro-
gram will jump to this location and begin execution.
Table Location
*7
*6
*5
@7
@6
@5
@7
@6
@5
Table Location
TBHP: Table pointer higher-order bits
8
HT49RU80/HT49CU80
*4
*3
*2
@4
@3
@2
@4
@3
@2
*1
*0
@1
@0
@1
@0
March 2, 2007
Need help?
Do you have a question about the HT49RU80 and is the answer not in the manual?
Questions and answers