English
Language : 

HT46RB70_17 Datasheet, PDF (9/49 Pages) Holtek Semiconductor Inc – 48-pin SSOP
HT46RB70
00H Indirect Addressing Register 0
堆栈寄存器 — STACK
01H
MP0
02H Indirect Addressing Register 1
03H
MP1
堆栈寄存器是特殊的存储器空间,用来保存 PC 的值。
04H
BP
HT46RB70 有 16 层堆栈,堆栈寄存器既不是数据存储器的一部 05H
ACC
分,也不是程序存储器的一部分,而且它既不能读出,也不能写 06H
入。堆栈的使用是通过堆栈指针(SP)来实现的,堆栈指针也 07H
08H
不能读出或写入。当发生子程序调用或中断响应时,程序计数器 09H
(PC)的值会被压入堆栈;在子程序调用结束或中断响应结束 0AH
PCL
TBLP
TBLH
STATUS
时(执行指令 RET 或 RETI),堆栈将原先压入堆栈的内容弹出, 0BH
重新装入程序计数器中。在系统复位后,堆栈指针会指向堆栈顶 0CH
0DH
部。
0EH
如果堆栈已满,并且发生了不可屏蔽的中断,那么只有中断 0FH
INTC0
TMR0H
TMR0L
TMR0C
TMR1H
请求标志会被记录下来,而中断响应会被抑制,直到堆栈指针(执 10H
行 RET 或 RETI 指令)发生递减,中断才会被响应。这个功能
11H
12H
可以防止堆栈溢出,使得程序员易于使用这种结构。同样,如果 13H
TMR1L
TMR1C
PA
PAC
堆栈已满,并且发生了子程序调用,那么堆栈会发生溢出,首先 14H
PB
进入堆栈的内容将会丢失,只有最后的 16 个返回地址会被保留。 15H
PBC
16H
PC
数据存储器 — RAM
17H
PCC
18H
PD
数据存储器由 438×8 位组成,分为两个功能区间:特殊功 19H
PDC
能寄存器(51×8 位)和通用数据存储器(Bank0:192×8 位,
1AH
1BH
PE
PEC
Bank1:192×8 位),数据存储器单元大多数是可读/写的,但有 1CH
些只读的。
1DH
在 40H 之前的空间保留给系统以后扩展使用,读取这些地 1EH
1FH
址 的 返 回 值 为 “ 00H ”。 通 用 数 据 寄 存 器 地 址 从 40H 到 20H
FFH(Bank0;BP=0 或 Bank1;BP=1),用来存储数据和控制信息。 21H
所有的数据存储器单元都能直接执行算术、逻辑、递增、递 22H
INTC1
USC
USR
UCC
Special Purpose
Data Memory
减和循环操作。除了一些特殊位外,数据存储器的每一位都可由 23H
24H
“SET[m].i”置位或由“CLR[m].i”复位。而且都可以通过间接 25H
寻址指针(MP0;01H/MP1;03H)进行间接寻址。
26H
将 BP 寄存器赋值为“01H”后,就可以访问 Bank1 数据存 27H
储区。这些 Bank 内 40H~FFH 之间的数据寄存器可以用 MP1 间 28H
29H
接寻址方式进行读/写操作。不管 BP 是何值,直接寻址方式只能 2AH
对 Bank0 内的数据寄存器进行操作。
2BH
AWR
STALL
SIES
数据寄存M器ISC
SETIO
FIFO0
FIFO1
FIFO2
FIFO3
间接寻址寄存器
2CH
2DH
FIFO4
FIFO5
2EH
地址 00H 和 02H 是间接寻址寄存器,并无实际的物理区存 2FH
在。任何对[00H]或[02H]的读/写操作,都是访问由 MP0(01H) 30H
ADRL
MP1(03H)或所指向的 RAM 单元。间接读取地址 00H 或 02H 31H
得到的值为 00H,间接写入此地址,不会产生任何操作。间接寻
32H
33H
址指针 MP0(01H)和 MP1(03H)是 8 位寄存器。
34H
ADRH
ADCR
ACSR
PWM0
35H
PWM1
36H
PWM2
37H
PWM3
38H
SBCR
39H
3AH
SBDR
3FH
40H
General Purpose
Data Memory
(192 Bytes×2 Bank: Bank0,Bank1)
FFH
: Unused
Read as "00"
Rev. 1.40
9
2017-04-05