韓明 沈振乾 王紅霞
[摘 ? ? ? ? ? 要] ?目前微機原理與應(yīng)用課程的實驗教學(xué)存在較多問題,通過將Proteus虛擬仿真軟件引入課程的實驗教學(xué)中,研究虛擬仿真在實驗教學(xué)、電路設(shè)計、實驗考核等方面的應(yīng)用,并在實驗教學(xué)改革中進行案例分析。實踐結(jié)果表明,將Proteus虛擬仿真軟件應(yīng)用到微機原理與應(yīng)用課程實驗教學(xué)中,可以實現(xiàn)理論教學(xué)與實驗實踐相結(jié)合,深化學(xué)生對微機原理與應(yīng)用課程的理解,改善教學(xué)質(zhì)量和實驗效果,優(yōu)化實驗環(huán)境和考核方法,提高學(xué)生的操作能力、創(chuàng)新能力和綜合設(shè)計能力。
[關(guān) ? ?鍵 ? 詞] ?虛擬仿真;Proteus;微機原理與應(yīng)用課程;教學(xué)改革
[中圖分類號] ?G642 ? ? ? ? ? ? ? ? ? ?[文獻標(biāo)志碼] ?A ? ? ? ? ? ? ? ? ?[文章編號] ?2096-0603(2023)07-0029-04
微機原理與應(yīng)用課程是高校理工科的一門專業(yè)基礎(chǔ)課,也是電子、信息、計算機等專業(yè)的必修課。該課程以Intel 80 × 86微處理器和PC系列微機作為基礎(chǔ),全面介紹了微型計算機的基本原理、編程語言和接口技術(shù)。該課程具有軟件與硬件相結(jié)合、理論與實踐相聯(lián)系的特點,因此,除了理論教學(xué)之外,還需要相應(yīng)的實驗課教學(xué)與之相配。通過對應(yīng)的實驗課教學(xué)可以更好地實現(xiàn)理論聯(lián)系實際,幫助學(xué)生掌握微型計算機的基本工作原理、常用芯片結(jié)構(gòu),熟悉編程語言、編程思路和編程設(shè)計方法等知識。
在教學(xué)工作中,分析了微機原理與應(yīng)用課程在教學(xué)方法和教學(xué)形式方面存在的問題,提出將虛擬仿真軟件引入實驗教學(xué)中,可以提高教學(xué)質(zhì)量和效果,激發(fā)學(xué)生的學(xué)習(xí)興趣和創(chuàng)新思維,與理論課教學(xué)相比,在培養(yǎng)學(xué)生操作能力、實踐能力和創(chuàng)新能力等方面,有更好的作用和效果,為后續(xù)專業(yè)課程的學(xué)習(xí)打下堅實的基礎(chǔ)。本文中虛擬仿真軟件選用Proteus軟件,同時引入實驗案例,讓每位學(xué)生通過Proteus軟件設(shè)計、調(diào)試、仿真,并顯示出自己的學(xué)號,以此作為實驗最終的結(jié)果,從而有效提高學(xué)生學(xué)習(xí)實驗的獨立性和自主性。
一、微機原理與應(yīng)用課程的現(xiàn)狀
目前,大部分學(xué)校微機原理與應(yīng)用課程主要采用“微機實驗箱+電腦編程軟件”的模式,多數(shù)實驗都屬于“驗證式”實驗,實驗教材中提供了每項實驗所需的硬件固定連接、程序參考代碼、程序調(diào)試方法等操作步驟。學(xué)生在實驗時不需要太多的思考,只需要按照教材里提供的實驗步驟進行操作就可以完成實驗,沒有達到實驗教學(xué)在整體課程教學(xué)中應(yīng)發(fā)揮的作用和效果。這種實驗教學(xué)的形式和方法主要存在以下不足。
(一)教學(xué)方法單一,考核形式簡單
目前,大部分學(xué)校的實驗課都使用微機實驗箱來進行實驗學(xué)習(xí),但在傳統(tǒng)的實驗箱上,大部分的元器件及其連線已經(jīng)固定,學(xué)生實際操作的內(nèi)容比較少,也比較簡單。傳統(tǒng)實驗教學(xué)一般是由教師將實驗項目演示一遍,然后學(xué)生按照固定的步驟進行固定的操作,出現(xiàn)固定的結(jié)果后再叫教師過來檢查打分。教師根據(jù)實驗最后的結(jié)果給出成績,這種方式很難使學(xué)生對理論課程的內(nèi)容有深入的理解和認(rèn)識,不利于調(diào)動學(xué)生參與實驗的積極性和主動性。
(二)設(shè)備故障較多,維修成本較高
實驗箱屬于硬件設(shè)備,使用時間越長故障率就越高,如果部分核心元器件損壞,則必須由生產(chǎn)廠家的專業(yè)工程師來維修調(diào)試,維修及更換配件的時效性較差,而且維修成本較高,且容易影響正常實驗的順利進行,實驗箱的利用率不高。
(三)靈活性不夠,創(chuàng)新性不足
由于實驗箱都是微機原理與應(yīng)用課程配套專用,對其他相關(guān)實驗課應(yīng)用的擴展性較低,實驗箱的通用性不強。實驗箱內(nèi)部的元器件和線路已經(jīng)固定,學(xué)生只能開展固定的驗證性實驗,無法自主設(shè)計實驗,實驗的靈活性不夠。每位學(xué)生的實驗內(nèi)容和結(jié)果都完全一樣,需要自己進行主動思考,自主設(shè)計的內(nèi)容較少,限制了學(xué)生的思維拓展,很難調(diào)動學(xué)生的學(xué)習(xí)興趣,不利于培養(yǎng)學(xué)生的自主能力和創(chuàng)新能力。
二、Proteus虛擬仿真軟件的基本原理
本文中說的虛擬仿真軟件指的是Proteus軟件,是英國Labcenter Electronics公司開發(fā)的一款EDA工具軟件,是可以將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三者合一的設(shè)計平臺,具有豐富的元件庫、虛擬儀器、仿真模型等應(yīng)用資源,不僅可以仿真單片機及外圍器件,還可以對電路進行設(shè)計、制版、仿真等操作。Proteus軟件可以分析和仿真各種微型計算機、模擬電路、數(shù)字電路、集成電路、單片機及其外部設(shè)備,能夠提供多種虛擬儀器,被廣泛地應(yīng)用于微機原理、電路理論、模擬/數(shù)字電子技術(shù)等電類專業(yè)課程教學(xué)中。
在微機原理與應(yīng)用課程的實驗中,可以借助Proteus軟件實現(xiàn)動態(tài)演示教學(xué),使學(xué)生實時觀察到存儲器、內(nèi)外部寄存器、芯片相關(guān)接口的狀態(tài)變化,加深對課程內(nèi)容的學(xué)習(xí)和理解。通過引入Proteus軟件進行教學(xué),實現(xiàn)硬件和軟件設(shè)計的結(jié)合,增強實驗課程的專業(yè)性和創(chuàng)造性,鍛煉學(xué)生的實踐操作能力和設(shè)計創(chuàng)新能力,加深學(xué)生對微機原理及應(yīng)用課程中理論知識的理解,提高實驗效果和教學(xué)質(zhì)量。
三、Proteus虛擬仿真在實驗教學(xué)改革的案例分析
(一)程序設(shè)計基本方法
8255A是Intel公司生產(chǎn)的可編程輸入輸出接口芯片,在計算機系統(tǒng)中是比較常用的一種可編程并行接口芯片,可以通過軟件編程對其工作方式進行靈活設(shè)置,具有使用方便、價格低廉、應(yīng)用廣泛的特點。
8255A內(nèi)部有三個8位的輸入輸出端口,是三個相互獨立的并行接口,分別為A、B、C端口,其中A端口作為輸入用,B端口作為輸出用,C端口作為輔助控制用。8255A共有三種工作方式,可通過設(shè)置方式控制字進行設(shè)置:方式0為基本的輸入/輸出方式,A、B、C三個端口都可以設(shè)定為輸入或者輸出;方式1為選通式輸入/輸出方式,A、B、C三個端口都可以工作在這一方式下;方式2為雙向總線I/O方式,只有A端口可以工作于方式2,既可以發(fā)送數(shù)據(jù),又可以接收數(shù)據(jù)。圖1為本實驗的程序設(shè)計流程圖。
(二)Proteus硬件電路設(shè)計
本實驗使用可編程并行接口芯片8255A、8051 CPU、74LS373鎖存器、LED燈、BCD數(shù)碼管及相關(guān)的接口芯片設(shè)計硬件電路,由Proteus軟件進行仿真,實驗設(shè)計的具體要求如下:
1.將8051CPU的時鐘頻率設(shè)置為2.0MHz。
2.使兩片8255A的A、B、C端口均工作于方式0,并使A口為輸出口,B口為輸入口。
3.使第1片8255A的B口高4位控制A口的4個LED燈,B口低4位控制BCD數(shù)碼管1。
4.使第2片8255A的A口高四位接BCD數(shù)碼管2,顯示第1片8255A的B口高四位按鍵輸入的數(shù)字。
5.74LS273鎖存器進行輸出地址Q0-Q7的鎖存。
6.讓學(xué)生自行設(shè)計電路并編程,使2個BCD數(shù)碼管顯示出學(xué)生本人學(xué)號的后2位。
實驗電路的核心部分為8051CPU單片機,在本實驗Proteus仿真軟件中的8051CPU選用AT89C51單片機,AT89C51是內(nèi)部帶有4K字節(jié)FLASH存儲器的高性能、低電壓8位CMOS微處理器單片機。AT89C51單片機內(nèi)部包括4K字節(jié)Flash閃速存儲器(FPEROM——Flash Programmableand Erasable Read Only Memory),256字節(jié)片內(nèi)數(shù)據(jù)存儲器(00H-7FH為片內(nèi)RAM,80H-FFH為特殊功能寄存器SFR),4個8位并行I/O端口(既可以作為輸入,又可以作為輸出),兩個16位定時/計數(shù)器(既可以作為定時器,又可以作為計數(shù)器),一個5向量兩級中斷結(jié)構(gòu)(5個中斷源、2個中斷優(yōu)先級的中斷控制系統(tǒng)),一個全雙工UART(通用異步接收發(fā)送器)串行I/O通信口,片內(nèi)振蕩器及時鐘電路,以上各部分通過片內(nèi)8位數(shù)據(jù)總線(DBUS)相連接。
AT89C51中RST為復(fù)位信號輸入接口,當(dāng)輸入2個機器周期的高電平時,可以實現(xiàn)復(fù)位操作。ALE為地址鎖存信號接口,向外輸出正脈沖信號,鎖存低8位地址的控制信號,在本實驗仿真中將其接到74LS373的LE鎖存接口。EA為內(nèi)外程序存儲器選擇接口,當(dāng)EA輸入低電平時,CPU只訪問片外ROM并執(zhí)行片外程序存儲器的程序指令;當(dāng)EA輸入高電平時,CPU則只訪問片內(nèi)ROM并執(zhí)行片內(nèi)程序存儲器的程序指令。P0口(P0.0-P0.7)是漏極開路的8位準(zhǔn)雙向I/O端口;P1口(P1.0-P1.7)是內(nèi)部帶有上拉電阻的8位準(zhǔn)雙向I/O端口(并行或按位使用);P2口(P2.0-P2.7)是內(nèi)部帶有上拉電阻的8位準(zhǔn)雙向I/O端口,當(dāng)有外部存儲器時用作高8位地址總線;P3口(P3.0-P3.7)是內(nèi)部帶有上拉電阻的8位準(zhǔn)雙向I/O端口,每個引腳除了可作為一般I/O口外,還可以控制系統(tǒng)信號。在本實驗仿真中,使用了P0口(P0.0-P0.7),通過總線連接到74LS373的D0-D7接口,進行數(shù)據(jù)的傳輸和控制,實驗時學(xué)生可以通過Proteus仿真軟件的存儲器窗口進行控制并觀察狀態(tài)。
8255A為可編程并行接口芯片,芯片連接的方式類似于一個外部RAM。在其內(nèi)部接口引腳中的左側(cè)部分均為控制接口,D0-D7為數(shù)據(jù)總線,與系統(tǒng)數(shù)據(jù)線雙向連接,可以并行傳送8位數(shù)據(jù);A0、A1為端口選擇接口,可以決定CPU對8255A內(nèi)部操作哪個端口。RESET接口是復(fù)位功能,將8255A中所有的寄存器都清空,復(fù)原至最初的狀態(tài)。RD讀信號和WR寫信號,通過讀/寫的模式實現(xiàn)I/O口(輸入/輸出)功能,在CS片選信號的配合下實現(xiàn)對8255A執(zhí)行讀/寫操作。RD、WR、CS信號均為低電平有效,在本實驗中,學(xué)生可以通過Proteus軟件中的源代碼編程部分對相應(yīng)位賦值0或賦值1來控制對應(yīng)信號引腳是否選用,并觀察內(nèi)部寄存器各數(shù)據(jù)的變化。
在其內(nèi)部接口引腳中的右側(cè)部分是A、B、C三個通道,每個通道都有8根線與外部設(shè)備連接,各接口分別為PA0-PA7、PB0-PB7、PC0-PC7,其中PA0-PA7具有8位輸出鎖存器/緩沖器和8位輸入鎖存器,用于8255A向外部設(shè)備輸入/輸出8位并行數(shù)據(jù),在本實驗設(shè)計中連接并控制LED燈和BCD數(shù)碼顯示管;PB0-PB7具有8位輸入鎖存器/緩沖器和8位輸出鎖存器,用于8255AA向外部設(shè)備輸入/輸出8位并行數(shù)據(jù),在本實驗設(shè)計中連接并控制8個DIP撥碼開關(guān);PC0-PC7具有8位輸出鎖存器/緩沖器和8位輸入緩存器,在本實驗中可讓學(xué)生通過Proteus仿真將PC口分別與PA口、PB口相互配合使用,作為其控制信號輸出或者狀態(tài)信號輸入端口,邊實驗邊觀察其信號狀態(tài)。在Proteus仿真軟件的“source code”編程界面中,進行相應(yīng)的賦值來選擇A、B、C三個端口的使用:如果A1、A0接口的賦值是00,則選擇的是A端口(即PA0-PA7);如果A1、A0接口的賦值是01,則選擇的是B端口(即PB0-PB7);如果A1、A0接口的賦值是10,則選擇的是C端口(即PC0-PC7)。
74LS373為地址鎖存器芯片,D0-D7連接到89C51的P0.0-P0.7接收信號,輸出端Q0-Q7可直接與總線相連,輸出端的狀態(tài)并不會隨著輸入端的狀態(tài)一直變化,只有接收到鎖存信號時,輸入端的狀態(tài)才會保存到輸出,并一直保存至下一個鎖存信號出現(xiàn)時才會改變。鎖存信號LE(latch enable)引腳置于高電平時,Q0-Q7接口便鎖存住了對應(yīng)D0-D7的上一個狀態(tài),之后無論D0-D7接收到的信號如何變化,Q0-Q7的信號都是被鎖存的,輸出的依然是原來的數(shù)據(jù)。在本實驗中可以通過Proteus仿真軟件查看內(nèi)部地址數(shù)據(jù)的狀態(tài)。
本實驗仿真電路的顯示部分為LED燈和BCD數(shù)碼顯示管兩部分,4個LED燈可以顯示亮滅,1個BCD數(shù)碼顯示管可以顯示數(shù)值。SW1-SW8為撥碼開關(guān),具有控制功能,在Proteus仿真軟件中可以通過鼠標(biāo)選擇上撥或者下?lián)?。其中LED燈是由撥碼開關(guān)的高4位控制的,由于LED燈均通過上拉電阻連接到GND接地,采用共陽極的連接方式,所以輸入低電平時LED燈會被點亮。在本實驗中,學(xué)生可以通過Proteus仿真軟件,根據(jù)情況自行選擇SW撥碼開關(guān)和LED燈的數(shù)量,以及根據(jù)顯示效果選擇LED燈的顏色,由此可以形象地顯示出實驗狀態(tài),提高學(xué)生學(xué)習(xí)的積極性和自主性。BCD數(shù)碼顯示管由撥碼開關(guān)的低4位控制的,根據(jù)4個撥碼開關(guān)的0/1值,顯示出對應(yīng)數(shù)值。學(xué)生在實驗時,通過Proteus軟件中的源代碼編程部分對相應(yīng)位賦值0或賦值1,來控制對應(yīng)信號引腳是否選用,并觀察內(nèi)部寄存器各數(shù)據(jù)的變化,加深對賦值和控制功能的學(xué)習(xí)和理解。
(三)Proteus軟件程序設(shè)計
本實驗的程序編譯和調(diào)試需要選擇可以支持8051匯編語言的編譯編輯器,通過Proteus仿真軟件的“source code”編程界面進行源代碼的編寫,進行編譯、匯編后生成可執(zhí)行的“.ASM”或者“.EXE”格式的程序可執(zhí)行文件,編寫的源代碼的主程序如下:
org 0000h
ljmp main
orgt 0100h
main:mov a,#82h
? ? mov dptr,#7fffh
? ? movx @ dptr,a
light:mov dptr,#7ffdh
? ?movx a,@ dptr
? ?mov dptr,#7ffch
? ?movx @ dptr,a
? ?mov dptr,#0bff3h
? ?movx @ dptr,a
? ?sjmp light
end
(四)仿真電路的程序調(diào)試
可編程并行接口芯片8255A的A端口和B端口的輸出接到LED發(fā)光二極管和BCD數(shù)碼管并顯示出對應(yīng)的狀態(tài),在仿真電路中選擇8051CPU芯片并單擊右鍵,出現(xiàn)“Edit Component”對話框,設(shè)置8051CPU的芯片參數(shù),并把源文件生成的“.ASM”或者“.EXE”文件加載到8051CPU芯片中,然后就可以進行仿真和調(diào)試。學(xué)生在實驗時可以根據(jù)實際情況自行設(shè)置8051CPU芯片內(nèi)部的各項參數(shù),可以通過設(shè)置不同的參數(shù)觀察實驗數(shù)據(jù)的差別。通過控制L1-L8這8個撥碼開關(guān),來控制4個LED發(fā)光二極管和2個BCD數(shù)碼管,2個BCD數(shù)碼管顯示出的“2”和“0”即為該實驗學(xué)生學(xué)號的后兩位。通過這種方式,可以形象地顯示出仿真效果,便于學(xué)生對實驗的學(xué)習(xí)和理解。由于不同學(xué)生實驗結(jié)果顯示的學(xué)號數(shù)字不同,也可以提高學(xué)生實驗的獨立性和自主性。
在我校的教學(xué)中,教師通過將Proteus仿真軟件引入實驗教學(xué),可以更加生動形象地演示出8051CPU、74LS373、8255A等芯片的工作方式設(shè)置、程序調(diào)試過程和實驗效果實現(xiàn),可以很好地提高學(xué)生的學(xué)習(xí)興趣和積極性,深化學(xué)生對8051單片機、74LS373鎖存器、可編程8255A并行接口芯片及其接口功能的學(xué)習(xí)和理解,取得了良好的教學(xué)效果。
在本實驗案例中,讓每位學(xué)生通過Proteus軟件自行設(shè)計電路、調(diào)試程序、仿真結(jié)果,并顯示出自己學(xué)號的后兩位,以此作為實驗最終的結(jié)果。這樣每位學(xué)生的程序和結(jié)果都不一樣,避免學(xué)生出現(xiàn)互相抄襲、依賴他人的心理,可以有效提高學(xué)生學(xué)習(xí)實驗的獨立性和自主性,進而提高實驗課程的質(zhì)量和效果。
四、結(jié)語
本文通過將Proteus虛擬仿真引入微機原理與應(yīng)用課程教學(xué)中,可以在課程教學(xué)的改革方面發(fā)揮積極的作用。在理論教學(xué)中,通過Proteus仿真教學(xué)可以使理論講解更加形象生動;在實驗教學(xué)中,通過Proteus軟件進行虛擬仿真實驗可以彌補硬件實驗設(shè)備資源數(shù)量有限、硬件容易損壞、通用性不強、利用率不高等缺點,給學(xué)生提供更多的實驗和動手機會,同時方便學(xué)生實時觀察系統(tǒng)存儲器、寄存器等數(shù)據(jù)的變化。經(jīng)過我們的教學(xué)實踐,激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了學(xué)生的軟硬件綜合設(shè)計能力,培養(yǎng)了學(xué)生的創(chuàng)新能力,提高了教學(xué)質(zhì)量和效果。從總體上看,整體實驗效果比較理想,有利于改革傳統(tǒng)的實驗教學(xué)方法,推動實驗課程的網(wǎng)絡(luò)教學(xué)發(fā)展。
參考文獻:
[1]侯慧,朱韶華,張清勇,等.國內(nèi)外高等學(xué)校虛擬仿真實驗發(fā)展綜述[J].電氣電子教學(xué)學(xué)報,2022,44(5):143-147.
[2]曹彥剛,李紅偉,田連起,等.信息化支持下中藥炮制類本科課程體系的構(gòu)建與實踐[J].中國信息化,2022(4):73-75.
[3]蘇春建,韓寶坤,王瑞.基于虛擬仿真實驗的機械類教學(xué)理論與實踐研究[J].教育教學(xué)論壇,2022(47):97-100.
[4]曹紅霞,卞振濤,朱巖巖,等.基于創(chuàng)新型工程人才培養(yǎng)的化工工藝學(xué)課程教學(xué)探討[J].廣東化工,2022, 49(16):242-243,251.
[5]連文磊,楊理理,于兵.基于虛擬仿真的線上線下混合式教學(xué)探索:以“光伏原理”課程為例[J].工業(yè)和信息化教育,2022(2):91-94.
◎編輯 鄭曉燕