彭玄璋 鄭偉 駱珍儀
摘要:該文針對《匯編語言與接口技術(shù)》在實(shí)驗(yàn)教學(xué)存在的問題,提出了基于Emu8086和Proteus仿真軟件的虛擬實(shí)驗(yàn)教學(xué)方法;介紹了一個(gè)實(shí)驗(yàn)教學(xué)實(shí)例——使用Emu8086和Proteus仿真軟件設(shè)計(jì)與實(shí)現(xiàn)的8253定時(shí)/計(jì)數(shù)器實(shí)驗(yàn),通過實(shí)例說明Emu8086和Proteus仿真軟件在該課程實(shí)驗(yàn)教學(xué)中的應(yīng)用方法和仿真過程。
關(guān)鍵詞:實(shí)驗(yàn)教學(xué);仿真實(shí)驗(yàn);微機(jī)接口;匯編語言
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)17-0165-03
1 引言
《匯編語言與接口技術(shù)》課程對于計(jì)算機(jī)、通信工程、物聯(lián)網(wǎng)工程等專業(yè)的學(xué)生來說是一門重要的課程。該課程又是一門理論性和實(shí)踐性都很強(qiáng)的課程,因此必須加強(qiáng)理論教學(xué)和實(shí)驗(yàn)教學(xué)的結(jié)合。通過實(shí)驗(yàn)促使學(xué)生能使用微處理器芯片及典型接口芯片設(shè)計(jì)出微機(jī)接口電路,加深對微處理器芯片和典型接口芯片特性的認(rèn)識和理解,掌握微機(jī)接口電路設(shè)計(jì)的方法,接受一定的匯編語言編程訓(xùn)練,從而加強(qiáng)微機(jī)應(yīng)用的工程實(shí)踐能力。
在傳統(tǒng)的《匯編語言與接口技術(shù)》實(shí)驗(yàn)教學(xué)中,采用的微機(jī)原理與接口技術(shù)實(shí)驗(yàn)箱由于其內(nèi)部線路已經(jīng)連好,沒有給學(xué)生實(shí)際設(shè)計(jì)微機(jī)接口電路的機(jī)會,實(shí)驗(yàn)效果不是很理想。再有就是實(shí)驗(yàn)設(shè)備成本高,容易損壞,維護(hù)困難,使用受到場地限制。針對使用實(shí)驗(yàn)箱進(jìn)行實(shí)驗(yàn)教學(xué)現(xiàn)狀中的諸多限制,我們提出了一種基于EMU8086和PROTEUS的《匯編語言與接口技術(shù)》仿真實(shí)驗(yàn)的方法,通過使用PROTEUS7.9提供的VSM FOR 8086模塊,利用虛擬仿真軟件進(jìn)行電路設(shè)計(jì)和仿真。這一方法不僅完全取代了以往使用實(shí)驗(yàn)箱才能做《匯編語言與接口技術(shù)》實(shí)驗(yàn),而且使用方便、快捷,可靠性高,節(jié)省投資。
2 虛擬實(shí)驗(yàn)使用的仿真軟件簡介
Emu8086-Assembler and Microprocessor Emulator是一個(gè)可在Microsoft Windows 操作系統(tǒng)環(huán)境下運(yùn)行的8086CPU匯編仿真軟件。它是的一款8086CPU模擬器,可以用于8086CPU的程序模擬運(yùn)行。另外,它本身集成了文本編輯器、編譯器和反編譯器,所以可用作8086匯編語言的集成開發(fā)工具軟件來使用。它是學(xué)習(xí)8086匯編語言程序設(shè)計(jì)的一個(gè)理想工具。
Proteus是英國Labcenter electronics公司研發(fā)的一個(gè)EDA多功能軟件。它的ISIS智能原理圖輸入系統(tǒng),有非常友好的人機(jī)互動窗口界面;有豐富的操作菜單與工具。在ISIS編輯區(qū)中,能很方便地完成微機(jī)系統(tǒng)的硬件仿真電路設(shè)計(jì)、調(diào)試與仿真。
基于EMU8086、PROTUES仿真軟件和微機(jī)構(gòu)建的《匯編語言與接口技術(shù)》課程的虛擬實(shí)驗(yàn)平臺,如同一個(gè)真實(shí)的功能強(qiáng)大的實(shí)驗(yàn)室。教師可利用它進(jìn)行仿真實(shí)驗(yàn)教學(xué),學(xué)生可以在此虛擬實(shí)驗(yàn)平臺上進(jìn)行微機(jī)接口仿真電路設(shè)計(jì)和匯編語言程序設(shè)計(jì)訓(xùn)練。
3 仿真實(shí)驗(yàn)教學(xué)的一個(gè)實(shí)例
這里給出我們實(shí)驗(yàn)教學(xué)中的一個(gè)基于Emu8086和Proteus的教學(xué)實(shí)例----8253定時(shí)/計(jì)數(shù)器實(shí)例,通過該實(shí)例可以了解到仿真軟件在實(shí)驗(yàn)課程教學(xué)中的應(yīng)用方法和仿真過程。
3.1 實(shí)例的設(shè)計(jì)任務(wù)與要求
設(shè)計(jì)一個(gè)硬件仿真電路,利用8086微處理器連接8253可編程定時(shí)/計(jì)數(shù)器,實(shí)現(xiàn)對外部事件(用脈沖代表)進(jìn)行計(jì)數(shù)。
3.2 實(shí)例的仿真電路設(shè)計(jì)
這個(gè)實(shí)例用到的主要芯片有一片8086,一片8253,三片74273和一片74154。
其中74273用作為地址寄存器,74154用作為地址譯碼器。設(shè)定8253定時(shí)/計(jì)數(shù)器的端口地址為400H~406H。按照實(shí)例的要求和8253的端口地址范圍,進(jìn)行相關(guān)接口芯片原理、功能分析和8253芯片端口地址分析后,使用Proteus ISIS設(shè)計(jì)出如下圖1所示的實(shí)例仿真電路。
3.3 8086匯編語言的實(shí)例源程序設(shè)計(jì)
8253可編程定時(shí)/計(jì)數(shù)器有3個(gè)獨(dú)立的16位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器都可由程序設(shè)置6種工作方式,每個(gè)計(jì)數(shù)器均以減法計(jì)數(shù)。
設(shè)置計(jì)數(shù)器工作在方式0時(shí),當(dāng)CPU給8253計(jì)數(shù)器裝寫入計(jì)數(shù)初值后,在門控端GATE端為高電平時(shí),可用一個(gè)脈沖代表一個(gè)外部事件,每來一個(gè)CLK脈沖就對計(jì)數(shù)值進(jìn)行減1計(jì)數(shù),當(dāng)計(jì)數(shù)器的計(jì)數(shù)值減至為0時(shí),在OUT端輸出高電平信號。
實(shí)例中8253計(jì)數(shù)器是按方式0工作,在控制字寫進(jìn)控制字寄存器之后,計(jì)數(shù)器的輸出OUT立即變低,在GATE為高電平的情況下,計(jì)數(shù)器允許計(jì)數(shù),直到計(jì)數(shù)到0,OUT才變?yōu)楦唠娖健7抡鎸?shí)驗(yàn)時(shí),OUT0端輸出的高電平點(diǎn)亮LED發(fā)光二極管。在實(shí)驗(yàn)中設(shè)定的計(jì)數(shù)初值為5,也就是外部來了5個(gè)脈沖(下降沿)后, OUT0端輸出一個(gè)高電平。根據(jù)8253定時(shí)/計(jì)數(shù)器的工作原理和初始化編程要求,寫出如下的匯編語言源程序(文件命名為實(shí)例.asm):
3.4 實(shí)例的仿真工作步驟
由于Proteus 本身不帶有 8086 的匯編器,因此必須使用外部的匯編器。所以我們使用Emu8086仿真軟件對已經(jīng)編寫好匯編語言的源程序進(jìn)行編輯并保存;然后對源程序進(jìn)行編譯,如果程序無錯誤,則編譯通過,將會生成一個(gè).exe格式的可執(zhí)行文件(如實(shí)例.exe)。
在圖1所示的Proteus的仿真電路繪制好后,還需要加載可執(zhí)行文件(實(shí)例.exe)到8086CPU中才能仿真運(yùn)行。因此,使用Proteus打開實(shí)例的Proteus的仿真電路,然后雙擊電路圖中的8086可彈出元件屬性對話框。在打開的對話框中,單擊“Program File”欄目旁邊的文件瀏覽選擇按鈕
單擊Proteus ISIS主界面左下角的仿真控制工具欄
在上面的實(shí)例電路仿真運(yùn)行開始后,按下仿真電路圖中的按鈕5次后,發(fā)現(xiàn)LED燈點(diǎn)亮,8253定時(shí)/計(jì)數(shù)器運(yùn)行正常,這說明硬件仿真電路設(shè)計(jì)和匯編語言源程序設(shè)計(jì)是正確的,達(dá)到了實(shí)例設(shè)計(jì)任務(wù)的要求。
4 結(jié)束語
在上面的實(shí)驗(yàn)教學(xué)實(shí)例中,可以發(fā)現(xiàn)把Emu8086和Proteus仿真軟件結(jié)合使用比較好地克服了實(shí)驗(yàn)箱教學(xué)的實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)電路結(jié)構(gòu)固定單一,沒有靈活性的缺點(diǎn)。學(xué)生可以根據(jù)教學(xué)老師提出的實(shí)驗(yàn)設(shè)計(jì)任務(wù),設(shè)計(jì)出不同的電路方案和匯編語言程序。
總之利用Emu8086和Proteus仿真軟件進(jìn)行實(shí)驗(yàn)教學(xué),進(jìn)一步提高了學(xué)生對《匯編語言與接口技術(shù)》課程的學(xué)習(xí)興趣,深化對課程內(nèi)容的掌握和理解。學(xué)生的實(shí)際動手能力和創(chuàng)新設(shè)計(jì)能力得到了加強(qiáng),進(jìn)一步提高了《匯編語言與接口技術(shù)》課程的教學(xué)質(zhì)量。
參考文獻(xiàn):
[1] 陳越,顧暉,梁惺彥. 虛擬仿真在微機(jī)原理教學(xué)中的應(yīng)用[J]. 電子技術(shù)應(yīng)用,2012,38(1):106-108.
[2] 李現(xiàn)國,張艷. Proteus仿真在微機(jī)原理及接口技術(shù)教學(xué)中的應(yīng)用[J]. 實(shí)驗(yàn)技術(shù)與管理,2010,27(12):125-127.
[3] 顧暉,陳越,梁惺彥,等.微機(jī)原理與接口技術(shù)--基于8086和Proteus仿真[M].北京:電子工業(yè)出版社,2011:175-181.