|
輸入輸出口
HT48R05A-1單片機 提供13個雙向輸入輸出口,標號為PA到PC,其分別對應RAM中的[12H]、[14H]、[16H]。所有的I/O口都可作為輸入或輸出用,就輸入而 言,這些端口不具備鎖存功能,即輸入數據必須在“MOV A,[m]”(m=12H、14H、16H)指令的T2上升沿準備好,對輸出而言,所有的數據被鎖存并保持不變,直到輸出鎖存器重新被改寫。
每 個I/O口都有其自己的控制寄存器(PAC、PBC和PCC),用來控制輸入/輸出的設置。使用控制寄存器,可對CMOS輸出或斯密特觸發輸入在軟件下動 態地進行改變,要設置為輸入功能,相應的控制位必須寫“1”。信號源的輸入也取絕決于控制寄存器,如果控制寄存器的某位為“1”,那么輸入信號是讀取自這 個引腳(PAD)的狀態,但是如果控制寄存器的某位的值為“0”,那么鎖存器的內容將會被送到內部總線,后者,可以在“讀—修改—寫”指令中發生。
對于輸出功能,只能設置為CMOS輸出。這些控制寄存器是對應于RAM的13H、15H和17H。
芯片復位后這些輸入/輸出口都會是高電平或浮空狀態(取決于是否選擇了上拉電阻),每一個輸入/輸出鎖存位都能被SET [m].i或CLR [m].i指令置位或清零,(m=12H、14H和16H)。
某些指令會首先輸入數據然后進行輸出操作。例如,SET [m].i,CLR [m].i,CPL [m]和CPLA [m]指令,讀取輸入口的狀態到CPU,執行這個操作(位操作),然后將數據寫回到鎖存器或累加器。
PA的每一個口都具有喚醒系統的功能,PC口的高6位和PB口的高5位在物理上是不存在的,讀這些位將返回“0”,而寫這些位的結果為無效操作。
所有的I/O口都可以有上拉電阻的選擇,一旦選擇上拉電阻,所有的I/O口都具有上拉電阻,必須注意的是:沒有上拉電阻的I/O口工作在輸入模式會產生浮空現象。
PB0 和PB1分別與BZ和BZ(非)共享引腳,如果BZ和BZ(非)的選項被選擇,PB0和PB1在輸出模式時的輸出信號將是由定時/計數器的溢出信號產生的 PFD信號,在輸入模式時,始終保持它的原來功能,一旦BZ和BZ(非)的選項被選擇,蜂鳴器的輸出信號只受PB0數據寄存器的控制,PB0和PB1的 I/O功能如下表所示:
| HT48R05A-1 PB0,PB1的I/O功能 |
| PB0 I/O |
I |
I |
I |
I |
O |
O |
O |
O |
O |
O |
| PB0 I/O |
I |
O |
O |
O |
I |
I |
I |
O |
O |
O |
| PB0/PB1模式 |
X |
C |
B |
B |
C |
B |
B |
C |
B |
B |
| PB0 數據 |
X |
X |
O |
1 |
D |
0 |
1 |
D0 |
O |
1 |
| PB1數據 |
X |
D |
X |
X |
X |
X |
X |
D1 |
X |
X |
| PB0 Pad狀態 |
I |
I |
I |
I |
D |
0 |
B |
D0 |
O |
B |
| PB1 Pad狀態 |
1 |
D |
0 |
B |
1 |
1 |
1 |
D1 |
0 |
B |
注:I:輸入,O:輸出,D、D0,D1:數據
B:蜂鳴器選項,BZ或BZ(非),X:任意值
C:CMOS輸出
PC0,PC1分別是INT和TMR共享引腳。

為了避免在浮空狀態下功耗過大,建議將未使用的或沒有連結到外部的I/O口由軟件指令設置成輸出引腳。
掩膜選項
下表示出了這種單片機的各種掩膜選項,為了滿足系統的功能,所有的掩膜選項必須正確定義。
| HT48R05A-1 掩膜選項 |
| 編號 |
選項 |
| 1 |
WDT時鐘源,WDTOSC fTID |
| 2 |
WDT允許/禁止:允許/禁止 |
| 3 |
LVD允許/禁止:允許/禁止 |
| 4 |
CLR WDT指令:一條或兩條清除WDT指令 |
| 5 |
系統振蕩器:RC或石英晶體 |
| 6 |
上拉電阻(PA-PC):選擇有上拉電組或無上拉電阻 |
| 7 |
BZ選項:允許/禁止 |
| 8 |
PA0-PA7喚醒功能:允許/禁止 |
| 9 |
鎖定:不鎖定/鎖定 |

|