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