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