
HT47R20
Rev. 1.10
8
2002-07-25
該地址為程序初始化保留
000H
開(kāi)始執(zhí)行
地址
004H
該地址為外部中斷服務(wù)程序保留 當(dāng)
INT
引腳有觸發(fā)信
號(hào)輸入
如果中斷允許且堆棧未滿
地址開(kāi)始執(zhí)行
地址
008H
該地址為時(shí)基
(Time Base)
中斷服務(wù)程序保留
發(fā)生溢出 如果中斷允許且堆棧未滿 則程序會(huì)跳轉(zhuǎn)到
008H
地址開(kāi)始執(zhí)行
地址
00CH
該地址為實(shí)時(shí)時(shí)鐘
(Real Time Clock)
中斷服務(wù)程序保
留
當(dāng)實(shí)時(shí)時(shí)鐘發(fā)生溢出
如果中斷允許且堆棧未滿
程序會(huì)跳轉(zhuǎn)到
00CH
地址開(kāi)始執(zhí)行
地址
010H
該地址為定時(shí)
/
計(jì)數(shù)器中斷服務(wù)程序保留 當(dāng)定時(shí)
/
計(jì)數(shù)
器
A
或
B
發(fā)生溢出
如果中斷允許且堆棧未滿
表格區(qū)
ROM
空間的任何地址都可做為查表使用
和
TABRDL [m]
(
查最后頁(yè)表格
)
存器
(08H)
只有表格內(nèi)容的低字節(jié)被傳送到目標(biāo)地址中 而高字節(jié)被傳送到表格內(nèi)容高字節(jié)寄存器
TBLH
表格內(nèi)容高字節(jié)寄存器
TBLH
是只讀寄存器 表格指針
(TBLP)
是可讀
/
寫寄存器
(07H)
用來(lái)指明表格地址
在查表之前
要先將表格地址寫入
TBLP
中
如果主程序和中斷服務(wù)程序
(ISR)
都用到查表指令
TBLH
的值可能會(huì)因?yàn)?/div>
ISR
中執(zhí)行的查表指令而發(fā)生變化
服務(wù)程序中都使用查表指令
但如果必須這樣做的話
TBLH
的值后再開(kāi)放中斷以避免發(fā)生錯(cuò)誤
所有與表格有關(guān)的指令都需要兩個(gè)指令周期的執(zhí)行時(shí)間
提到的表格區(qū)都可以做為正常的程序存儲(chǔ)器來(lái)使用
系統(tǒng)復(fù)位后
程序總是從
則程序會(huì)跳轉(zhuǎn)到
004H
當(dāng)時(shí)基
則
則程序會(huì)跳轉(zhuǎn)到
010H
地址開(kāi)始執(zhí)行
查表指令
TABRDC [m]
(
查當(dāng)前頁(yè)表格
而表格內(nèi)容高字節(jié)傳送到
TBLH
寄
1
頁(yè)
=256
個(gè)字
)
會(huì)把表格內(nèi)容低字節(jié)傳送給
[m]
主程序中
產(chǎn)生錯(cuò)誤
我們可以在查表指令前先將中斷禁止
也就是說(shuō)
要避免在主程序和中斷
在保存了
這里
表格區(qū)
*5
@5
@5
指令
*10
P10
1
*9
P9
1
*8
P8
1
*7
@7
@7
*6
@6
@6
*4
@4
@4
*3
@3
@3
*2
@2
@2
*1
@1
@1
*0
@0
@0
TABRDC [m]
TABRDL [m]
表格區(qū)
當(dāng)前程序指針字節(jié)
注
*10~*0
表格地址字節(jié)
P10~P8
@7~@0
表格指針字節(jié)
堆棧寄存器
堆棧寄存器是特殊的存儲(chǔ)器空間
存儲(chǔ)器的一部分
也不是程序存儲(chǔ)器的一部分
指針
(SP)
來(lái)實(shí)現(xiàn)的
堆棧指針也不能讀出或?qū)懭?/div>
會(huì)被壓入堆棧
在子程序調(diào)用結(jié)束或中斷響應(yīng)結(jié)束時(shí)
(
執(zhí)行指令
RET
或
RETI)
容彈出
重新裝入程序計(jì)數(shù)器中
在系統(tǒng)復(fù)位后
如果堆棧已滿
并且發(fā)生了不可屏蔽的中斷
抑制
直到堆棧指針
(
執(zhí)行
RET
或
RETI
指令
)
發(fā)生遞減
使得程序員易于使用這種結(jié)構(gòu)
同樣
先進(jìn)入堆棧的內(nèi)容將會(huì)丟失
只有最后的
4
個(gè)返回地址會(huì)被保留
數(shù)據(jù)存儲(chǔ)器
RAM
數(shù)據(jù)存儲(chǔ)器由
85
8
位組成
分為兩個(gè)功能區(qū)間
儲(chǔ)器單元大多數(shù)是可讀
/
寫的
但有些只讀的
特殊功能寄存器包括間接尋址寄存器
0(00H)
1(02H)
間接尋址指針寄存器
1(MP1
03H)
計(jì)數(shù)器低字節(jié)寄存器
(PCL
06H)
表格指針寄存器
(TBLP
STACK
用來(lái)保存
PC
的值
HT47R20
有
4
層堆棧
也不能寫入
當(dāng)發(fā)生子程序調(diào)用或中斷響應(yīng)時(shí)
堆棧寄存器既不是數(shù)據(jù)
堆棧的使用是通過(guò)堆棧
程序計(jì)數(shù)器
(PC)
的值
堆棧將原先壓入堆棧的內(nèi)
而且它既不能讀出
堆棧指針會(huì)指向堆棧頂部
那么只有中斷請(qǐng)求標(biāo)志會(huì)被記錄下來(lái)
中斷才會(huì)被響應(yīng)
如果堆棧已滿
并且發(fā)生了子程序調(diào)用
而中斷響應(yīng)會(huì)被
這個(gè)功能可以防止堆棧溢出
那么堆棧會(huì)發(fā)生溢出
首
特殊功能寄存器和通用數(shù)據(jù)存儲(chǔ)器
(64
8)
數(shù)據(jù)存
間接尋址指針寄存器
0(MP0
存儲(chǔ)器段指針寄存器
(BP
07H)
01H)
間接尋址寄存器
05H)
04H)
累加器
(ACC
程序
08H)
表格內(nèi)容高字節(jié)寄存器
(TBLH
8
8
6 8
4
)
+ @
) #
=
+ )
# )
A
! : ) A
&
, > # )
A + ) ; 9 : ) 7
<
3 1 1 8
B ) )
) (
) )
) 3
8
) A
)
# )
A
)
# )
A
&
, > # )
A + ) ; 9 : ) 7
<
8
1 1 8
4
)
)
# )
A
!
8
相關(guān)PDF資料 |
PDF描述 |
HT48C05 |
Cost-Effective I/O Type 8-Bit MCU |
HT48C06 |
Cost-Effective I/O Type 8-Bit MCU |
HT48C10-1 |
8-Bit High Performance RISC-like Microcontroller Suitable for Multiple I/O Application(高性能、指令類似RISC的8位微控制器,用于多I/O接口設(shè)備) |
HT48C50-1 |
8-Bit High Performance RISC-like Microcontroller Suitable for Multiple I/O Application(高性能、指令類似RISC的8位微控制器,用于多I/O接口設(shè)備) |
HT48C50- |
8-BIT MICROCONTROLLER |
相關(guān)代理商/技術(shù)參數(shù) |
參數(shù)描述 |
HT47R20A-1 |
制造商:HOLTEK 制造商全稱:Holtek Semiconductor Inc 功能描述:R-F Type 8-Bit MCU |
HT47R20A-1_08 |
制造商:HOLTEK 制造商全稱:Holtek Semiconductor Inc 功能描述:R-F Type 8-Bit MCU |
HT4863 |
制造商:未知廠家 制造商全稱:未知廠家 功能描述:帶立體聲耳機(jī)輸出模式的雙聲道音頻功率放大芯片 |
HT48C05 |
制造商:HOLTEK 制造商全稱:Holtek Semiconductor Inc 功能描述:Cost-Effective I/O Type 8-Bit MCU |
HT48C05_08 |
制造商:HOLTEK 制造商全稱:Holtek Semiconductor Inc 功能描述:Cost-Effective I/O Type 8-Bit MCU |