义定用共脚引口出输入输)一(表

HT48 MCU輸入/輸出口的使用
文件編碼:HA0021T
簡介
本文以HT48R10A-1爲例,主要介紹HT48系列中輸入/輸出口的使用方法及其注意事項。包
括:基本的輸入、輸出,BZ/BZ的使用及一個″讀-改-寫″指令的例子和說明。
使用說明
HT48R10A-1是一個八位元的高性能的精簡指令的微控制器。它特別爲多輸入/輸出口的産品
應用而設計:有19個雙向的輸入/輸出口。其中,PA爲8位元雙向輸入/輸出口,每一位元
可設置成喚醒輸入引腳。PB爲8位元Schmitt觸發輸入。PC(5位元)雙向輸入/輸出口。
在該系列Holtek微控制器中,所有的埠都有相對應的輸入/輸出口暫存器,對其進行操作就
可影響相對應的埠。每位元埠還有相對應的控制暫存器,這些暫存器可以設置相應的埠爲
輸入或輸出口。一些引腳的共用功能見表(一)。其中,對OSC1和OSC2的共用定義對具體
的微控制器略有不同,可見HT48系列的比較檔案。
每個輸入/輸出口均可被設置爲CMOS輸出或Schmitt觸發輸入,由於均可設爲內部上拉電
表(一)輸入/輸出口引腳共用定義
1
圖(一)輸入/輸出口
PA~PC分別對應資料記憶體的[12H],[14H],[16H],均可位元控制。而控制暫存器PAC~PCC (13H,15H,17H)分別控制相應的輸入/輸出口的輸入輸出狀態。通過向控制暫存器寫″1″或″0″設置輸入或輸出模式。當設置成輸入模式時,埠不閂鎖,例如:指令″MOV A, [M]″(M=12H、14H、16H)執行前輸入資料須在T2的上升端先準備好。當設置成輸出模式時,埠閂鎖,所以輸出狀態會一直保持到下次改寫時才發生改變。
晶片重置後,輸入輸出線保持高準位或浮空。
建議在不使用或沒有連接狀況下,輸入/輸出口應被設爲輸出狀態。
2
程式範例
範例一
;基本的輸入、輸出(ledflash.asm):
;作者:黃山雲
;目的:演示閂鎖器與pac的一般使用
;配置選項:PA及PB均需上拉電阻
;程式清單
;硬體設計: +5V
;連接說明;PA接8個發光二極體、發光二極體和5V電源之間接470Ω的電阻。
INCLUDE HT48R10A-1.INC
data  .section  ′data′
delay_count1  db ?
delay_count2  db ?
displaytemp  db ?
code  .section  ′code′
org 00h
main:
mov a,0feh ;顯示初始值
mov displaytemp,a
start:
clr pac ;PA爲輸出
set pbc.0 ;PB.0爲輸入
key_in:
mov a,pb  ;判斷鍵盤是否按下
sz acc.0
jmp key_in
rl displaytemp ;若是,則左移一位
mov a,displaytemp
mov pa,a
call delay ;呼叫延時
jmp start
3
delay proc
mov a,0ffh
mov delay_count1,a
mov delay_count2,a
wait:
sdz delay_count2
jmp wait
sdz delay_count1
jmp wait
ret
delay endp
end
• 程式說明
發光二極體將隨著按鍵的按下而迴圈點亮。
範例二
;程式名:BZ的使用(BZ1.ASM)
作者:黃山雲
;目的:介紹PB.0,PB.1共用爲BZ蜂鳴器的使用
;配置選項:BZ/BZ在配置選項中都被致能。
include ht48R10A-1.inc
code  .section at 0h  ′code′
org 00h
jmp start
;-------------------------------------------------------------- data  .section  ′data′
count1  db ?
count2  db ?
;-------------------------------------------------------------- main  .section ′code′
org 20h
start:
mov a,00h ;設PB.0, PB.1爲輸出模式
mov pbC,a ;請查表最後一列,可見此段代碼同時使用了兩個蜂鳴器埠 ;CLR PB.0  ;該指令可用於關閉蜂鳴器
mov a,0DAh ;通過TIMER的初始值設定音頻
mov tmr,a
mov a,90h
mov tmrc,a
set pb.0
jmp $
end
4
PB0,PB1被設爲BZ和BZ後,其輸出信號將爲由定時/計數器産生的P FD信號。
注意,此時的PB0/PB1有如下的功能定義:
PB0 I/O I I I I O O O O O O O O
PB1 I/O I O O O I I I O O O O O
PB0 Mode X X X X    C    B    B    C    B    B    B    B
PB1 Mode X    C    B    B X X X    C    C    C    B    B
PB0 Data X X 0    1    D 0    1 D00    1 0    1
PB1 Data X    D X X X X X D1  D    D X X
PB0 Pad Status I I I I    D 0    B D00    B 0    B
PB1 Pad Status I    D 0    B I I I D1  D    D 0    B
注意: ″I″表示需設爲輸入,″O″表示需設爲輸出,″D、D0、D1″表示資料,″B″表示被設爲蜂鳴器,″X″表示任意,″C″表示CMOS輸出。每一列爲一組相關的參數。
範例三
;程式名:讀寫轉換指令的使用(rmw.asm)
;作者:黃山雲
;目的:讀-改-寫指令的使用
程式清單:
INCLUDE HT48R10A-1.INC
data  .section  ′data′
code  .section  ′code′
org 00h
jmp start
start:
clr pac.7 ;設定pa.7爲輸出
clr pa.7  ;輸出低準位
clr pa.0 ;(1) ;先執行讀-改-寫指令,引腳pa.7的準位未改變
set pac.7 ;輸入狀態,pa.7浮空,由於上拉電阻,
;pa.7的準位改變爲H
;輸出閂鎖器的值沒有被改變,保持為0
clr pac.7 ;將輸出閂鎖器的資料輸出到引腳,pa.7的準位變回爲L
set pac.7 ;現在,先定義爲輸入模式
set pa.1 ;(2) ;再執行讀-改-寫指令,因爲引腳懸空,讀入的是1
;這時,輸出閂鎖器的值已經被改寫爲H
clr pac.7 ;這時,讀-改-寫指令使pac.7的輸出變爲H
jmp $
5
″讀-改-寫″的概念:
當MC U執行″讀-改-寫″指令時,將首先讀取引腳上的全部八位元資料,然後改變某各位的值,再把數值寫回埠。s et(pn).i,cl r(pn).i,c p l(pn),c p l a(pn)等都是這種指令。當輸入/輸出引腳被設爲輸出模式,輸出的資料將存在輸出閂鎖器中。如果此時讀輸入/輸出引腳的資料,如:″mo v a,pa″,資料將從輸出閂鎖器中讀取,而不是從引腳。但當輸入/輸出引腳爲輸入模式時,讀輸入/輸出引腳的資料時,將直接獲取引腳上的資料。
當一個引腳爲輸入模式時,如執行″讀-改-寫″指令,將可能影響輸出閂鎖器,這時,如果程式改變引腳爲輸出模式,則原來設想的輸出值可能被改變。所以,推薦設置輸出值應當緊跟在輸出模式的設置後,而且,所有不用的引腳先通過控制暫存器設爲輸出,即給pa c賦″0″,以防止讀入引腳懸空的高準位值如下:
...
CLR PAC.2  ;不使用的引腳設定爲輸出模式
CLR PAC.3
...
CLR PAC.1 ;PA.1=O/P
CLR PA.1 ;PA.1 O/P LOW ;緊跟
...
• 解釋
請按照程式註解單元執行,注意觀察引腳的變化。
表明當某個位引腳被設爲輸出模式時,其他的位元引腳的″讀-改-寫″指令將不會影響該引腳的值。
表明當某個位元引腳被設爲輸入模式時,其他的位元引腳的″讀-改-寫″指令將影響該引腳的值。
6

本文发布于:2024-09-20 15:36:07,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/89456.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:輸出   引腳   輸入   指令   使用   資料
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议