HT47R20 Holtek Semiconductor Inc, HT47R20 Datasheet - Page 8

no-image

HT47R20

Manufacturer Part Number
HT47R20
Description
8 R-F OTP
Manufacturer
Holtek Semiconductor Inc
Datasheet

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
HT47R20
Manufacturer:
HOLTEK/合泰
Quantity:
20 000
000H 开始执行
号输入 如果中断允许且堆栈未满 则程序会跳转到 004H
地址开始执行
发生溢出 如果中断允许且堆栈未满 则程序会跳转到 008H
地址开始执行
留 当实时时钟发生溢出 如果中断允许且堆栈未满 则
程序会跳转到 00CH 地址开始执行
器 A 或 B 发生溢出 如果中断允许且堆栈未满 则程序会跳转到 010H 地址开始执行
和 TABRDL [m] (查最后页表格) 会把表格内容低字节传送给[m] 而表格内容高字节传送到 TBLH 寄
存器(08H) 只有表格内容的低字节被传送到目标地址中 而高字节被传送到表格内容高字节寄存器 TBLH
表格内容高字节寄存器 TBLH 是只读寄存器 表格指针(TBLP)是可读/写寄存器(07H) 用来指明表格地址
在查表之前 要先将表格地址写入 TBLP 中 如果主程序和中断服务程序(ISR)都用到查表指令 主程序中
TBLH 的值可能会因为 ISR 中执行的查表指令而发生变化 产生错误 也就是说 要避免在主程序和中断
服务程序中都使用查表指令 但如果必须这样做的话 我们可以在查表指令前先将中断禁止 在保存了
TBLH 的值后再开放中断以避免发生错误 所有与表格有关的指令都需要两个指令周期的执行时间 这里
提到的表格区都可以做为正常的程序存储器来使用
堆栈寄存器
存储器的一部分 也不是程序存储器的一部分 而且它既不能读出 也不能写入 堆栈的使用是通过堆栈
指针(SP)来实现的 堆栈指针也不能读出或写入 当发生子程序调用或中断响应时 程序计数器(PC)的值
会被压入堆栈 在子程序调用结束或中断响应结束时(执行指令 RET 或 RETI) 堆栈将原先压入堆栈的内
容弹出 重新装入程序计数器中 在系统复位后 堆栈指针会指向堆栈顶部
抑制 直到堆栈指针(执行 RET 或 RETI 指令)发生递减 中断才会被响应 这个功能可以防止堆栈溢出
使得程序员易于使用这种结构 同样 如果堆栈已满 并且发生了子程序调用 那么堆栈会发生溢出 首
先进入堆栈的内容将会丢失 只有最后的 4 个返回地址会被保留
数据存储器
储器单元大多数是可读/写的 但有些只读的
1(02H) 间接寻址指针寄存器 1(MP1 03H) 存储器段指针寄存器(BP 04H) 累加器(ACC 05H) 程序
计数器低字节寄存器(PCL 06H) 表格指针寄存器(TBLP 07H) 表格内容高字节寄存器(TBLH 08H)
Rev. 1.10
ROM 空间的任何地址都可做为查表使用 查表指令 TABRDC [m] (查当前页表格 1 页=256 个字)
数据存储器由 85 8 位组成 分为两个功能区间 特殊功能寄存器和通用数据存储器(64 8) 数据存
特殊功能寄存器包括间接寻址寄存器 0(00H) 间接寻址指针寄存器 0(MP0 01H) 间接寻址寄存器
该地址为程序初始化保留 系统复位后 程序总是从
地址 004H
该地址为外部中断服务程序保留 当 INT 引脚有触发信
地址 008H
该地址为时基(Time Base)中断服务程序保留 当时基
地址 00CH
该地址为实时时钟(Real Time Clock)中断服务程序保
地址 010H
该地址为定时/计数器中断服务程序保留 当定时/计数
表格区
堆栈寄存器是特殊的存储器空间 用来保存 PC 的值 HT47R20 有 4 层堆栈 堆栈寄存器既不是数据
如果堆栈已满 并且发生了不可屏蔽的中断 那么只有中断请求标志会被记录下来 而中断响应会被
TABRDC [m]
TABRDL [m]
注 *10~*0 表格地址字节
指令
STACK
RAM
P10
*10
1
*9
P9
1
*8
P8
1
P10~P8 当前程序指针字节
@7
@7
*7
表格区
@6
@6
8
*6
表格区
@5
@5
*5
@4
@4
*4
@3
@3
*3
@7~@0 表格指针字节
@2
@2
*2
@1
@1
*1
HT47R20
2002-07-25
@0
@0
*0

Related parts for HT47R20