|
數(shù)據(jù)存儲器(PROM)
HT48R05A-1數(shù)據(jù)存儲器RAM容量為49x8位。它可分為兩個功能組,特殊功能寄存器和通用數(shù)據(jù)存儲(32x8)。這兩個功能組的大部分單元可以讀寫,而某些單元只能讀出,而不能寫入。
特殊功能寄存器包括間接尋址寄存器(00H),存儲器指針寄存器(MP:01H),累加器(ACC:05H),PC低位字節(jié)寄存器(PCL:06H)、表 格指針寄存器(TBLP:07H)、表格高位字節(jié)寄存器(TBLH:08H)、看門狗寄存器(WADT:09H)、狀態(tài)寄存器(STATUS:0AH)、 中斷控制寄存器(INTC:0BH)、定時/計數(shù)器(TMR:0DH)、定時/計數(shù)控制寄存器(TMPC:0EH)、I/O寄存器 (PA:12H,PB:14H,PC:16H)、和I/O控制寄存器(PAC:13H,PBC:15H,PCC:17H)。60H以前的剩余單元都被保留 為將來進一步擴展用。讀取這些單元的值都將返回00H。通用數(shù)據(jù)存儲器地址60H—7FH作為程序數(shù)據(jù)和控制信息使用。
所有的RAM區(qū)單元都能直接執(zhí)行算術(shù)、邏輯、遞增、遞減和移位等運算,除了某些特殊的位以外,RAM中的每一位都可以由SET[m].i和CLR[m].i指令來置位和清除,它們都可通過存儲器指針寄存器(MP:01H)間接尋址來存取。
· 間接尋址寄存器 
地址00H是作為間接尋址寄存器。它沒有實際的物理空間,任何對[00H]的讀寫操作,都會訪問由MP(01H)所指向的RAM單元,間接地讀取[00H],將會返回00H,而間接地寫入00H單元,則不會產(chǎn)生任何結(jié)果。
存儲器指針寄存器MP的寬度是7位,MP的第7位是沒有定義的,若讀取它,將返回“1”,而任何對MP的寫操作只能將低7位數(shù)據(jù)傳送到MP。
· 累加器(ACC)
累加器(ACC)與算術(shù)邏輯單元(ALU)緊密聯(lián)系,它對應(yīng)于RAM的地址05H,并能與立即數(shù)進行操作,在存儲器間的數(shù)據(jù)傳送都必須經(jīng)過累加器。 HT48R05A-1程序存儲器 ·
算術(shù)邏輯單元
算術(shù)邏輯單元是執(zhí)行8位算術(shù)邏輯運算的電路,它提供如下功能:
·算術(shù)運算:(ADD、ADC、SUB、SBC、DAA)
·邏輯運算:(AND、OR、XOR、CPL)
·移位運算:(RL、RR、RLC、RRC)
·遞增和遞減運算:(INC、DEC)
·分支跳轉(zhuǎn):(SZ、SNZ、SIZ、SDZ)
算術(shù)邏輯單元ALU不僅會保存運算的結(jié)果而且會改變狀態(tài)寄存器。
· 狀態(tài)寄存器
8位的狀態(tài)寄存器(0AH)由零標(biāo)志位(Z)、進位標(biāo)志位(C)、輔助進位標(biāo)志位(AC)、溢出標(biāo)志位(OV)、掉電標(biāo)志位(PD)和看門狗定時器溢出標(biāo)志位(TO)組成。該寄存器不僅記錄狀態(tài)信息,而且還控制運算順序。
除了TO和PD以外,狀態(tài)寄存器中的位都可用指令來改變,這種情況與其它寄存器一樣,任何寫到狀態(tài)寄存器的數(shù)據(jù)不會改變TO和PD標(biāo)志位。但是狀態(tài)寄存器 有關(guān)的運算會導(dǎo)致狀態(tài)寄存器的改變,系統(tǒng)上電,看門狗定時器溢出或執(zhí)行“CLR WDT”或“HALT”指令,能改變看門狗定時器溢出標(biāo)志位(TO),系統(tǒng)上電,或執(zhí)行“CLR WDT”或“HALT”指令,也能改變掉電標(biāo)志位(PD)。
Z、OV、AC和C標(biāo)志位都能反映當(dāng)前的運算狀態(tài)。
| HT48R05A-1個狀態(tài)標(biāo)志位說明 |
| 符號 |
位 |
功能 |
| C |
0 |
在加法運算中結(jié)果產(chǎn)生了進位或減法運算中結(jié)果不產(chǎn)生借位,那么C被置位,否則C被清除。它也可被一個循環(huán)移位指令所影響。 |
| AC |
1 |
在加法運算中低4位產(chǎn)生進位或減法運算中在低4位不產(chǎn)生借位,AC被置位,否則C被清除。 |
| Z |
2 |
算術(shù)運算或邏輯運算的結(jié)果為零則Z被置位,否則Z被清除。 |
| OV |
3 |
如果運算結(jié)果向高位進位,但最高位并不產(chǎn)生進位輸出,OV被置位,否則被清除。 |
| PD |
4 |
系統(tǒng)上電或執(zhí)行了CLR WDT指令,PD被清除,執(zhí)行HALT指令PD被置位。 |
| TO |
5 |
系統(tǒng)上電或執(zhí)行了CLR WDT或HALT指令,TO被清除,WDT溢出,TO被置位。 |
| - |
6 |
未定義,讀出為0。 |
| - |
7 |
未定義,讀出為0。 |
此外,在進入中斷子程序或執(zhí)行子程序調(diào)用時,狀態(tài)寄存器的內(nèi)容不會自動壓入堆棧,如果狀態(tài)寄存器的內(nèi)容是重要的,而且子程序會改變狀態(tài)寄存器的內(nèi)容,那么程序員必須事先將其備份好,以免被破壞。
|