文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)01-0106-03
微機原理課程是高等學(xué)校工科電工電子類的重要專業(yè)基礎(chǔ)課程,是一門理論性和實踐性都較強的課程。傳統(tǒng)的教學(xué)都是通過理論教學(xué)和有限的實驗進行。微機原理的知識構(gòu)成抽象,理解困難,而實驗內(nèi)容固定,缺乏新意。因此,在教學(xué)過程中,很難激發(fā)學(xué)生的學(xué)習(xí)興趣,學(xué)生的創(chuàng)新思維和綜合開發(fā)能力也難以培養(yǎng)和提高。本文論述了采用Proteus虛擬仿真技術(shù)進行微機原理教學(xué)實踐的新思路和具體方法。
1 Proteus+8086虛擬實驗平臺
Proteus是英國Labcenter公司開發(fā)的電路分析與實物仿真及印制電路板設(shè)計軟件,它應(yīng)用于Windows操作系統(tǒng),可以仿真、分析各種模擬電路與集成電路。該軟件提供了大量模擬與數(shù)字元器件、外部設(shè)備及各種虛擬儀器,并具有對常用控制芯片及其外圍電路組成的綜合系統(tǒng)的交互仿真功能[1]。
Proteus提供多種類型的虛擬仿真模型,例如VSM for 8051、VSM for AVR、VSM for ARM7/LPC2000、VSM for PIC11/12/16/18/24/33、VSM for HC11及VSM for MSP430等。Proteus強大的設(shè)計與仿真功能被廣泛應(yīng)用在數(shù)字電路、模擬電路、單片機、嵌入式系統(tǒng)等多門課程的教學(xué)和實驗中。但是,Proteus在微機原理教學(xué)中的應(yīng)用卻鮮有報道,這主要是因為以往的Proteus版本缺乏對微機原理課程所涉及芯片的支持。直至2009年,Labcenter公司推出了VSM for 8086平臺及Proteus 7.5 SP3軟件,支持8086微處理器與8255、8253、8259、8251等接口芯片的系統(tǒng)仿真[2]。
Proteus為8086微處理器設(shè)定了一些默認(rèn)值,同時也可以通過“編輯元器件”功能對8086模型的多種屬性進行修改,如表1所示。此外,8086模型支持將源代碼的編輯和編譯整合到同一設(shè)計環(huán)境中,用戶可以在設(shè)計中直接編輯代碼,也可以非常容易地修改源程序并查看仿真結(jié)果。
特別需要指示的是,8086模型支持直接加載BIN,COM和EXE格式的文件到內(nèi)部RAM中,而不需要DOS,并且允許對Microsoft(Codeview)和Borland格式中包含了調(diào)試住處的程序可以進行源和/或反匯編級別的調(diào)試,因此源碼編譯和鏈接過程的參數(shù)相當(dāng)重要。
應(yīng)用Proteus進行8086接口技術(shù)仿真,主要是在Proteus ISIS中通過以下步驟完成:編輯電路原理圖、設(shè)置外部代碼編譯器、編寫和添加源代碼及仿真調(diào)試。
2 基于Proteus的微機原理教學(xué)設(shè)計
微機原理課程由匯編語言程序設(shè)計和接口技術(shù)兩大知識塊構(gòu)成,匯編語言是接口技術(shù)開發(fā)設(shè)計的基礎(chǔ),整門課偏重硬件系統(tǒng)的設(shè)計和應(yīng)用。匯編語言程序設(shè)計,主要介紹匯編語句及程序設(shè)計的方法。以往的課堂教學(xué)和實驗通常采用MASM軟件在PC上進行程序編寫和調(diào)試,滿足了教學(xué)和實踐的需求。在Proteus環(huán)境下,亦可進行一些簡單的匯編程序設(shè)計,而其虛擬仿真的優(yōu)勢更主要地體現(xiàn)在接口技術(shù)部分的教學(xué)與實踐環(huán)節(jié)。
接口技術(shù)的內(nèi)容包括存儲器設(shè)計、I/O編址、I/O接口芯片的控制方式及其與CPU的連接等,具體涉及到的有可編程并行接口芯片8255A、可編程定時器/計數(shù)器芯片8253、中斷控制器8259A、可編程串行口芯片8251A以及A/D和D/A轉(zhuǎn)換器ADC0808/0809、DAC0832等。這些接口芯片的工作方式復(fù)雜,引腳數(shù)目多,連接繁瑣。學(xué)生們在學(xué)習(xí)過程中,往往缺乏感性認(rèn)識,使得理解和掌握知識點存在困難,從而失去了學(xué)習(xí)興趣,達(dá)不到很好的教學(xué)效果。
采用Proteus軟件,利用其動態(tài)仿真的優(yōu)勢,一方面可以在課堂上邊講解理論知識,邊進行實例演示,并針對性地展示各基本模塊的硬件連線和軟件控制的方法,做到理論與實踐相結(jié)合,給學(xué)生直觀的認(rèn)知,激發(fā)學(xué)習(xí)興趣;另一方面,通過教學(xué)研究,對知識點進行拆分和綜合,可以設(shè)計出基于Proteus仿真的實驗項目和綜合實訓(xùn)課題,如圖1所示。在實驗過程中,Proteus很好地克服了硬件實驗箱結(jié)構(gòu)固定、資源有限的缺點,給學(xué)生更多實踐和鍛煉的機會,讓他們能夠在掌握各接口芯片使用方法的基礎(chǔ)上,設(shè)計開發(fā)各種應(yīng)用系統(tǒng),培養(yǎng)了整機概念、創(chuàng)新思維以及軟硬件開發(fā)的綜合能力。
實踐證明,將Proteus引入到微機原理教學(xué)中,教學(xué)方法直觀,達(dá)到感性和理性認(rèn)識的結(jié)合,激發(fā)了學(xué)生的學(xué)習(xí)熱情,加深對課程知識點的理解,更快地掌握新內(nèi)容,教學(xué)效果有了顯著的提高。
3 Proteus仿真實例
以基于8086和8255A的“按鍵與數(shù)碼管顯示”實驗為例,說明Proteus虛擬仿真在微機原理課程中的應(yīng)用方法和仿真過程。
3.1 功能設(shè)計
要求設(shè)計一個4×4的矩陣鍵盤,對鍵盤進行按鍵掃描和判斷,并通過數(shù)碼管顯示鍵值。根據(jù)要求,使用可編程并行接口芯片8255A進行接口電路擴展。對8255的并行口進行分配,A口驅(qū)動數(shù)碼管,B口連接LED電路,C口進行鍵盤掃描。
3.2 電路設(shè)計
在設(shè)計Proteus仿真電路時,可由CPU、鍵盤電路、顯示電路3個主要模塊實現(xiàn)。CPU模塊由8086CPU、地址鎖存邏輯和I/O譯碼電路構(gòu)成, 8255的起始地址為30 H;按鍵輸入使用4×4的矩陣鍵盤,C口的低四位和高四位分別連接4×4鍵盤的行、列信號線;顯示模塊由7段數(shù)碼管和LED構(gòu)成,數(shù)碼管采用靜態(tài)共陰接法。核心電路如圖2所示。
3.3 軟件設(shè)計
程序整體采用查詢方式,通過不斷掃描鍵盤,讀取鍵碼,換算鍵值,最終通過顯示模塊讀出結(jié)果。如果讀出的鍵碼非法,則重新掃描。鍵盤掃描采用翻轉(zhuǎn)法,具體算法可參考相關(guān)教材和資料。源代碼的流程設(shè)計如圖3所示。
3.4 仿真調(diào)試與運行
Proteus本身并未提供8086編譯器,而是通過添加外部代碼編譯器,將編寫好的源代碼加入工程,編譯并生成可執(zhí)行程序。點擊Proteus窗口左下角的運行按鈕,系統(tǒng)進入仿真狀態(tài)。當(dāng)某一按鍵按下時,數(shù)碼管顯示其按鍵值,LED顯示鍵值對應(yīng)二進制編碼。
點擊暫停按鈕可使電路從仿真狀態(tài)切換到調(diào)試狀態(tài)。在默認(rèn)設(shè)置下系統(tǒng)會彈出兩個窗口:源程序調(diào)試窗口和寄存器窗口??梢栽谠闯绦蛘{(diào)試窗口設(shè)置斷點,進行單步等多種調(diào)試方式,并通過寄存器窗口監(jiān)視寄存器的變化,以校驗指令的運行。需要注意的是,由于PROTEUS是器件級的仿真過程,因此,匯編程序的運行仿真是在無操作系統(tǒng)支持的狀態(tài)下進行的。所以,仿真時在匯編程序中不再支持DOS和BIOS調(diào)用。
4 教學(xué)實踐的體會和經(jīng)驗
Proteus的引入給教學(xué)實踐帶來了很多新思路、新方法。
(1) 教學(xué)效果的提高
Proteus+8086虛擬實驗平臺建設(shè)成本較低,設(shè)備維護簡單;實驗器件豐富,靈活性好。學(xué)生在學(xué)習(xí)和實踐過程中可以充分發(fā)揮主觀能動性,可靈活地從各類元件庫里找到適合設(shè)計目標(biāo)的器件來構(gòu)建自己的電路。
Proteus除了提供對8086微處理器及相關(guān)接口芯片的支持,同時還提供很多虛擬儀器(如示波器、邏輯分析儀、信號發(fā)生器等),可以用于微機原理課程的相關(guān)應(yīng)用中。學(xué)生可以從小到大、從局部到整體、從小型實例到較大系統(tǒng),隨時進行調(diào)試、檢測,及時修改設(shè)計中的偏差,提高效率。還可以利用Proteus ARES工具布線,生成PCB電路板的3D視圖,實驗效果更加直觀。
(2) 學(xué)生創(chuàng)新思維的培養(yǎng)
在微機原理的教學(xué)過程中引入Proteus仿真技術(shù),克服了原有硬件實驗箱由于是成品,學(xué)生很難參與其中的細(xì)節(jié)設(shè)計和擴展設(shè)計的缺點,給學(xué)生提供了一個進行創(chuàng)新設(shè)計的開放平臺。
(3) Proteus+8086虛擬實驗平臺應(yīng)用于教學(xué)的經(jīng)驗
①應(yīng)使學(xué)生認(rèn)識到仿真電路與實際電路之間的差別[3]。實際電路運行時表現(xiàn)出的各種電氣特征是由芯片、元器件、電路連線、運行環(huán)境等多種因素共同決定的,而Proteus則是通過軟件模擬這些電路特性,其表現(xiàn)取決于仿真軟件設(shè)計、計算機運算速度等因素。因此在Proteus環(huán)境下能夠正常運行的仿真系統(tǒng),其電路設(shè)計未必能夠進行實際應(yīng)用,例如8255實例,實際電路中還需考慮機械式鍵盤的去抖操作。而且,當(dāng)前Proteus VSM for 8086的仿真還不是十分完善,例如,8086僅支持最小組態(tài),8259A需要做適當(dāng)修改才能仿真,常用的Intel 2114存儲芯片、ADC0809、8237等尚未支持。
②應(yīng)使學(xué)生意識到知識點的正確應(yīng)用比仿真效果更重要。在教學(xué)中發(fā)現(xiàn),部分同學(xué)過于關(guān)注系統(tǒng)仿真運行的效果,并以此來判斷自己設(shè)計系統(tǒng)的合理性。這些電路雖然能正常運行,但不符合邏輯以及實際電路的設(shè)計要求,使學(xué)生產(chǎn)生了認(rèn)知錯誤。因此,應(yīng)幫助學(xué)生培養(yǎng)良好的設(shè)計思路和習(xí)慣,提高設(shè)計的合理性。
基于Proteus+8086的虛擬仿真,作為傳統(tǒng)微機原理教學(xué)的有效改進和創(chuàng)新,不僅有助力提高教學(xué)質(zhì)量,改善教學(xué)效果,也使學(xué)生的綜合設(shè)計能力和創(chuàng)新能力得到了培養(yǎng)。
參考文獻(xiàn)
[1] 顧暉,陳越,梁惺彥,等.微機原理與接口技術(shù)-基于8086+Proteus仿真[M].北京:電子工業(yè)出版社,2011.
[2] 吉向東,李新鄂.基于Proteus的微機原理實驗仿真[J].信息技術(shù),2010(2):36-39.
[3] 潘輝.Proteus虛擬實驗環(huán)境在單片機教學(xué)中的應(yīng)用[J].計算機教育,2010(20):143-146.