宋志平,葉 柳
(安徽大學(xué),安徽 合肥 230601)
?
端口概念及應(yīng)用的仿真演示實驗
宋志平,葉柳
(安徽大學(xué),安徽 合肥230601)
摘 要:端口概念是微機原理及嵌入式系統(tǒng)相關(guān)課程中的關(guān)鍵概念之一。通過簡單的設(shè)計實例,結(jié)合硬件原理和輸入輸出指令的執(zhí)行時序,分析了端口的作用,端口地址的本質(zhì)及形成過程。給出了Proteus環(huán)境下實驗系統(tǒng)的仿真調(diào)試結(jié)果。
關(guān)鍵詞:嵌入式系統(tǒng);端口;仿真
在計算機及嵌入式系統(tǒng)相關(guān)課程的理論教學(xué)及實驗設(shè)計過程中,端口的概念非常重要,是連接系統(tǒng)硬件和軟件之間的橋梁[1-4]。CPU通過接口電路中的輸入輸出端口實現(xiàn)與外設(shè)間的數(shù)據(jù)傳輸。必須對與端口操作相關(guān)指令的執(zhí)行過程非常清晰,才能深刻理解,靈活應(yīng)用。本文以單片機讀取按鍵狀態(tài)并輸出顯示的簡單過程為例,利用Proteus仿真軟件平臺,通過仿真實驗,結(jié)合MOVX指令的執(zhí)行時序,闡明端口的作用、端口地址的本質(zhì)、形成過程以及CPU通過端口與輸入輸出設(shè)備進行信息交換的基本原理。
1實驗系統(tǒng)設(shè)計
深入理解端口相關(guān)概念及其應(yīng)用方法,需要對一個含有輸入或輸出功能的微機系統(tǒng)工作過程進行解剖分析。為此,我們設(shè)計了一個單片機系統(tǒng),該系統(tǒng)通過執(zhí)行與端口操作的相關(guān)指令,實時地將8個按鍵的狀態(tài)(斷開/閉合),從8個發(fā)光二極管顯示出來。某個發(fā)光二極管亮,表示對應(yīng)的按鍵是閉合的;反之,則表示該按鍵是斷開的。比如:LED3亮,表示K3是閉合的;LED3滅,表示K3是斷開的。
1.1硬件設(shè)計
實驗電路硬件以AT89C51單片機為核心,輔以一片8D鎖存器74HC273及一片雙向驅(qū)動電路74HC245。AT89C51負(fù)責(zé)分析執(zhí)行指令,74HC273鎖存AT89C51執(zhí)行輸出指令時送出的數(shù)據(jù),具有三態(tài)功能的器件74HC245,實現(xiàn)輸入按鍵與CPU總線間的驅(qū)動和隔離。實驗電路的硬件原理如下圖1所示。圖中的RP1和RP2為電阻排,分別用作上拉和限流。
1.2軟件設(shè)計
實驗系統(tǒng)實現(xiàn)的功能非常簡單,程序直接用匯編語言編寫。程序清單如下:
ORG0
MOVDPTR,#0FEFFH
NEXT:MOVXA,@DPTR
MOVX@DPTR,A
ACALLDELAY
SJMPNEXT
DELAY:DJNZR1,$
DJNZR2,$
RET
2實驗系統(tǒng)工作過程
實驗系統(tǒng)實現(xiàn)的功能是通過發(fā)光二極管實時顯示對應(yīng)的按鍵狀態(tài)。其工作過程可以簡單概括為循環(huán)執(zhí)行“讀取按鍵狀態(tài)”、“輸出按鍵狀態(tài)”、“延時”三個步驟。而關(guān)鍵步驟“讀取按鍵狀態(tài)”、“輸出按鍵狀態(tài)”正是通過執(zhí)行端口輸入、輸出指令實現(xiàn)的。因此,理解端口輸入、輸出指令的執(zhí)行過程是理解系統(tǒng)工作原理的關(guān)鍵,也是理解端口概念和作用的根本所在。
在本實驗系統(tǒng)中,完成“讀取按鍵狀態(tài)”功能的端口輸入指令為程序清單中的MOVX A,@DPTR,其執(zhí)行過程的時序圖如下圖2所示[5]。
圖1 實驗系統(tǒng)硬件原理圖
圖2 輸入指令的執(zhí)行時序
首先,CPU分別從單片機的P0口和P2口輸出16位端口地址寄存器DPTR中低8位DPL和高8為DPH的內(nèi)容,待其穩(wěn)定后,利用ALE信號的下降沿鎖存P0口線上的信號。本實驗系統(tǒng)中只使用了16位端口地址中的1位,即P2.0,因為在執(zhí)行MOVX指令時DPTR中的內(nèi)容為FEFFH,所以當(dāng)端口地址信息穩(wěn)定輸出后,P2.0為低電平,即圖1中兩個或門與P2.0相連接的輸入端均為低電平。接下來CPU輸出一定寬度負(fù)脈沖的讀信號RD/,使或門B輸出與讀脈沖等寬度的負(fù)脈沖,該負(fù)脈沖會使三態(tài)雙向驅(qū)動器74HC245開啟,按鍵狀態(tài)對應(yīng)的高低電平通過74HC245,經(jīng)由P0口傳入單片機中的累加器A,完成按鍵狀態(tài)的讀取操作。
完成“輸出按鍵狀態(tài)”的指令是程序清單中的MOVX @DPTR,A指令,該指令的執(zhí)行過程的時序圖如下圖3所示[5]。
圖3 輸出指令的執(zhí)行時序
首先,CPU也是通過P0和P2口分別輸出16位端口地址寄存器中的DPL和DPH,用ALE信號鎖存P0口信號,同樣,DPTR中的內(nèi)容為FEFFH,所以P2.0為低電平,使或門A的一個輸入端為低。接著CPU將累加器A中的內(nèi)容(從輸入口讀取的按鍵狀態(tài))從P0口輸出至鎖存器73HC273的輸入端,并產(chǎn)生具有一定寬度負(fù)脈沖的寫信號WR/,使或門A輸出與寫脈沖等寬度的負(fù)脈沖,該負(fù)脈沖的后延(上升沿)使等候在74HC273輸入端的按鍵狀態(tài)數(shù)據(jù)鎖存到74HC273的輸出端。因為累加器A中的對應(yīng)位為1時表示按鍵斷開,為0時表示按鍵閉合,所以LED燈亮則表示對應(yīng)的按鍵是閉合的,反之,對應(yīng)的按鍵是斷開的。完成按鍵狀態(tài)的輸出功能。
3實驗系統(tǒng)仿真運行結(jié)果
利用Proteus軟件對實驗系統(tǒng)的軟硬件設(shè)計進行了仿真調(diào)試,結(jié)果如下圖4所示。
(1)
(2)
(3)圖4 實驗系統(tǒng)的仿真調(diào)試結(jié)果
(1)按鍵全部閉合,對應(yīng)的LED全亮(2)K1和K2閉合,對應(yīng)點亮LED1和LED2(3)K4和K6閉合,對應(yīng)點亮LED4和LED6
4結(jié)論
從以上實驗系統(tǒng)的工作原理分析可以得出以下結(jié)論:第一,端口是CPU從輸入設(shè)備讀取數(shù)據(jù)的緩沖器或向輸出設(shè)備輸出數(shù)據(jù)的鎖存器。可以是本實驗系統(tǒng)所示的簡單器件,也可以是復(fù)雜接口電路中的一部分;第二,端口地址是產(chǎn)生打開輸入緩沖器或者輸出鎖存器信號所對應(yīng)的系統(tǒng)地址信號組合。實驗系統(tǒng)中只要P2.0為低電平,配合執(zhí)行輸入/輸出指令時產(chǎn)生的讀/寫信號,就可以打開輸入緩沖器或輸出鎖存器,因此,地址信號組合FEFFH就是系統(tǒng)中的輸入和輸出端口地址。當(dāng)然,本電路采用的是“線選法”產(chǎn)生端口地址,端口地址不是唯一的,只要能保證P2.0為低電平,所有地址信號組合均可看作本實驗系統(tǒng)的端口地址;第三,輸入端口器件必須具有三態(tài)功能,以實現(xiàn)輸入設(shè)備與系統(tǒng)總線間的隔離,如實驗系統(tǒng)中的74HC245;輸出端口器件必須具有鎖存功能,一方面可以使輸出設(shè)備與系統(tǒng)總線隔離,同時也可以保證下一次輸出前輸出狀態(tài)保持穩(wěn)定,如實驗系統(tǒng)中的74HC273。
參考文獻:
[1]周佩鈴,彭虎,傅中謙.微機原理與接口技術(shù)(第3版)[M].北京:電子工業(yè)出版社,2011.
[2]高有堂.EDA技術(shù)及應(yīng)用實踐[M].北京:清華大學(xué)出版社,2006.
[3]黃興洲,薛德寬,劉雪林,等.基于單片機的自供電供暖溫度智能調(diào)控裝置[J].大學(xué)物理實驗,2015,28(2):73-76.
[4]高有堂.電子電路設(shè)計制版與仿真[M].鄭州:鄭州大學(xué)出版社,2005.
[5]李朝清.單片機原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2006.
[6]裘雪敬.基于Matlab GUI的RLC仿真實驗平臺開發(fā)[J].大學(xué)物理實驗,27(3):111-113.
Simulation Demonstration Experiment of Port and its Application
SONG Zhi-ping,YE Liu
(Anhui University,Hefei Anhui 230601)
Abstract:The port is one of the key concepts of the microcomputer principle and embedded system courses.The function of port,the nature of port address and its formation process are analyzed in detail by simple design example,combined with the hardware principle and the input/output instruction execution sequence,and the simulation and debugging results of the experiment system are presented based on Proteus.
Key words:embedded system;port;simulation
中圖分類號:O 4-33
文獻標(biāo)志碼:A
DOI:10.14139/j.cnki.cn22-1228.2016.001.004
文章編號:1007-2934(2016)01-0015-05
基金項目:安徽大學(xué)2014年省級質(zhì)量工程項目(2014zy007,2014gxk008,2014xnzx002);安徽大學(xué)本科教育質(zhì)量提升計劃項目(xjyykc1402)
收稿日期:2015-09-11