王本有,黃欣鈺,汪德如
(1.皖西學院信息工程學院,安徽六安237012;2.上海交通大學研究生院,上海 2 00240)
虛擬仿真平臺在單片機教學中的應用
王本有1,黃欣鈺2,汪德如1
(1.皖西學院信息工程學院,安徽六安237012;2.上海交通大學研究生院,上海 2 00240)
基于Proteus仿真軟件的特點和功能,闡述了Proteus軟件的使用方法,并用實例介紹了Proteus仿真軟件在單片機教學中的應用,軟硬件協同設計,仿真單片機執行過程,提高了單片機教學效果。
仿真平臺;Proteus;單片機
單片機技術是一門綜合性、工程性、實踐性很強的電類專業核心課程,實驗實踐環節是該課程學習過程中必不可少的一個重要環節[1](P194-226)。在傳統單片機教學中,理論教學與實驗教學分開獨立進行,難以有機融合,更談不上相互貫通,而且由于傳統實驗箱硬件電路已做好,接線也已固定,在實施教學的過程中,學生只能進行簡單的接線,往往學生寫完程序后對系統硬件原理理解仍舊很模糊,更談不上學生自己設計單片機硬件電路。這樣的結果往往是理論課枯燥空洞,而實踐時學生又回憶不起理論課的知識,理論與實踐脫節,大大降低了課堂教學效果。本文介紹利用Proteus軟件構建單片機虛擬仿真實驗平臺,能在PC機上“邊講解邊演示”,“邊學邊做”,既能通過演示解釋理論中的概念和難以理解的內部結構和應用,又可驗證所設計電路的正確性和實用性[2](P3-36)。教學效果表明:基于Proteus軟件的單片機仿真,把教學內容、實驗設備、教師指導、學生操作等有機地融為一體,解決了傳統單片機教學問題,由于只需安裝Proteus仿真軟件的PC機,實驗室可移動,完全開放,極大地提高了教學靈活性,有利于深入學習,加強實踐,并逐步形成軟硬結合協同設計的新思路和新方法。
Proteus是英國Lab Center Electronics公司研發的電子產品設計與仿真系統,其不僅是模擬電路、數字電路、模數混合電路的設計與仿真平臺,更是目前世界上最先進的基于微控制器(MCU)應用系統軟、硬件設計仿真平臺之一,其最大特點就是基于微控制器的設計連同所有的外圍電路一起仿真,可直接在單片機虛擬系統上對MCU編程,可對軟件源代碼進行實時調試,并支持第三方的軟件編譯和調試環境,如AVR studio、Kei1等。同時,它具有電路互動仿真功能,通過動態外設模型,如鍵盤、LED、LCD等,可實時系統輸入、輸出結果,或配合Proteus提供的虛擬儀器如示波器、虛擬終端等實現交互仿真,真正實現了在PC上完成從原理圖電路設計、電路分析與仿真、單片機代碼級調試與仿真、系統測試與功能驗證到形成PCB制板圖的完整電子設計過程[2](P3-26)。
Proteus有超過萬種的元器件模型庫、元器件封裝庫,支持主流的CPU類型,如ARM 7、8051/51、AVR、PIC10/12、PIC16/18、HC11、BasicStamp等,CPU類型隨著版本升級還在繼續增加(需要購買Proteus VSM并需要指定具體的處理器類型模型);為電子產品設計提供了功能強大的虛擬實驗室(虛擬示波器、虛擬邏輯分析儀、多種虛擬信號源、高級圖表仿真ASF、……),它們是電路設計與仿真、PCB板設計與仿真的基礎;原理圖設計完成后,一鍵便可進入ARES的PCB設計環境,實現從概念到產品的完整設計[2](P3-26)[3]。
單片機課程是一門硬件電路與軟件編程統一協調的課程,硬件電路為基礎,軟件控制硬件[2](P3-26)。要理解以硬件為基礎的接口擴展方法和控制,必須通過設計硬件電路,進行軟件編程,而軟件又不能脫離硬件電路,最后通過實驗,才可真正領會其軟硬件統一協調的含義[2](P3-26)[3]。在Proteus ISIS上做單片機實驗,需要做好下面三件事[4][5]:
(1)在Pro teus ISIS上制作實驗所必須的實驗電路圖(注意MCU的最小系統的外圍電路在仿真時可以省略)。
在Proteus平臺上進行原理圖設計,通過模糊搜索可以快速定位所需要的器件,如電阻使用 RES或10K均可找到,自動連線功能使連接導線簡單快捷,使用總線布線使電路設計簡明清晰;設計好電路后可使用Proteus提供的電氣檢測工具對電路進行電氣檢測,若電路出現電氣錯誤,會彈出信息報告,可根據報告排除電氣錯誤。
(2)學生需根據實驗電路圖設計實驗程序,調試通過并生成十六進制目標代碼。
軟件調試方面,其自身只帶匯編編譯器,不支持C語言。但可以將它與 Keil C51集成開發環境連接,將用匯編或C語言編寫的程序編譯生成十六進制目標代碼文件后[2][6](P134-179),可以立即進行軟、硬件結合的系統仿真。
(3)將(2)生成的十六進制目標代碼文件與中實驗電路圖中的單片機綁定在一起,仿真實際效果,若不滿意可修改(1)原理圖和(2)程序,直至成功。
系統仿真像使用仿真器一樣調試程序。若未達到設計目標,則可多次進行仿真設計,直到滿意為止。仿真顯示生動直觀,用色點顯示引腳的數字電平,默認設置紅色為高電平,藍色為低電平,灰色為無效電平,結合動態器件(如電機、顯示器件、按鈕)的使用可以使仿真直觀、生動[2](P3-26)。
在單片機教學中,端口的正確運用很重要,因此必須掌握端口的內部結構,P0端口內部結構不同于P1、P2、P3端口[6](P134-179),其內部集電極沒有上拉電阻和電源相接(稱為OC門),作為I/O口時,須使用外接電源和上拉電阻,才能驅動負載。通過圖1由Proteus仿真電路來演示端口驅動能力,可明確 P0口用作驅動電路時不同于其它端口。從圖1可看出,單片機上電運行,P1-P3輸出為高電平,相應管腳的電平顯示為紅色,而 P0口理論上為高電平,但實際為灰色即無效電平,P0.0相連的LED燈不能被驅動點亮,當P0.1外接電源和電阻后輸出的高電平點亮LED燈。這樣的演示可讓學生明白OC門的帶載特點,加深印象,為正確運用和擴展端口奠定基礎。

圖1 端口驅動能力演示
由于單片機課程內容本身具有抽象性和實踐性,在理論教學時學生普遍感覺難學,教師感覺難教。例如控制流水燈實驗的講解,雖然以往筆者在理論教學過程中也分析程序進行實例講解,但是由于缺乏直觀印象,教學效果并不理想。利用虛擬仿真實驗,可以很好地解決這個問題。課堂上如圖1通過P1口的8個LED燈來模擬實際生活中多樣化廣告燈的控制。多樣化廣告燈的功能是將燈的造型設計為首先單燈往返移動,其次雙燈往返移動,最后全部燈依次被點亮的動態效果,并循環往復。事先將燈的狀態以16進制或2進制形式保存在以L ED_TABLE為首地址的存儲單元中,執行時,通過改變指針DPTR實現狀態數據送到 P1口。多樣化廣告燈匯編程序可由Proteus自帶的匯編編譯器生成目標程序,也可通過Keil C51集成開發環境生成十六進制目標文件,最后,綁定到單片機仿真即可達到如圖2所示的效果。通過虛擬仿真給學生演示,燈亮的5種狀態循環往復,學生普遍表現出濃厚的興趣,從而自行設計其它電路和程序并仿真。
;多樣化廣告燈程序如下:;



圖2 多樣化廣告燈效果演示
中斷及其優先級從概念來說,學生是可以理解的,但程序如何按中斷向量表執行[6](P134-179)[7](P113-180),當多個中斷源申請中斷時,如何根據IE、IP的設置判斷中斷優先級,如何響應中斷服務程序,如何實現中斷嵌套,學生在實驗中較模糊,可由圖3硬件原理圖和圖4軟件框圖來仿真中斷響應和中斷嵌套的各個過程。設計要求是:程序使P0、P1、P2都能使數碼管循環顯示0-9,但 P0口運行即顯示,P1(P2)口能否驅動數碼管顯示受 IN T0(IN T1)中斷服務程序控制,并設置 IN T0中斷優先級最高,IN T1次之,當有中斷響應時,藍色數碼管停止閃爍,并根據優先級來響應中斷,響應后對應數碼管從0顯示到9后自動返回,當中斷1申請并響應,紅色數碼管顯示,這期間若 IN T0申請,紅色數碼管停止,綠色數碼管顯示,實現中斷嵌套,但在 IN T0中斷響應期間,IN T1申請將得不到響應。主程序和中斷服務程序用匯編或C語言都可以實現,仿真效果如圖3所示。

圖3 中斷處理仿真

圖4 主程序和中斷服務程序INT0(INT1)流程圖
盡管兩個示例演示功能簡單,但對概念的理解、軟硬結合實現控制、主程序和中斷服務程序之間的中斷響應、中斷嵌套和中斷返回過程非常清楚,實現了理論和實踐結合,可通過設計或綜合型實驗引導學生結合實際設計實用控制電路。軟硬件綜合開發應用和直觀仿真,使學生有成就感,對激發學生學習興趣有著很重要的意義。
對于Proteus軟件來講,可使用單步、斷點和連續方式來調試、運行,單片機資源是以寄存器和存儲器的方式體現出來的[2](P3-26)。對于寄存器內容的查看,可以執行在debug菜單下registers菜單項命令打開相應的窗口;對于系統內部存儲器的查看,同樣是執行debug菜單下的internalmemo ry菜單項命令打開相應的窗口,查看、調試非常方便。
利用Pro teus仿真軟件對所設計的單片機系統進行仿真,不但能測試程序執行時單片機某些寄存器值的變化,更能從工程的角度直接看程序運行和系統工作的過程和結果。從某種意義上講,這樣的仿真實驗克服了用單片機實驗教學中實驗箱或實驗儀硬件電路固定、實驗內容固定、學生自主性差等方面的局限性,更好地彌補了實驗和工程應用脫節之間的矛盾,當虛擬單片機系統的仿真結果達到系統預期效果后,再進行硬件實物開發,不僅省時省力,也可以節省因方案不正確所造成的硬件投入浪費,而且實驗過程與工程實踐相接近,可在不投入硬件的情況下鍛煉學生進行軟硬件綜合開發的能力。
基于Pro teus仿真軟件進行單片機教學,已成為我校單片機教學與實踐的重要環節,將理論與實踐相結合,解決了學生理論學習與動手實驗這個環節之間的銜接問題,鞏固了理論教學,強化了動手能力;通過引導學生科技創新,培養了創新意識和創新能力,取得了明顯成效。實踐證明:基于 Proteus仿真技術,電子產品設計靈活、快速,它明顯提高了設計效率,縮短了設計周期,節約了設計成本,正成為智能電子產品設計、改進、升級的重要手段。
[1]李朝青.單片機原理及接口技術[M].北京:北京航空航天大學出版社,2005.
[2]張靖武,周靈彬.單片機系統的設計與仿真[M].北京:電子工業出版社,2008.
[3]李莉.基于Proteus的數據采集系統仿真設計[J].電力學報,2009,24(3):226-228.
[4]周靈彬,張靖武.基于仿真技術的電子產品設計變革[J].系統仿真技術,2009,5(2):130-134.
[5]田軍營,韓建海.單片機實驗的虛擬化改革[J].實驗室科學,2008,(6):121-124.
[6]張義和,王敏男,許宏昌,等.例說51單片機(C語言版)[M].北京:人民郵電出版社,2008.
[7]馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計(第4版)[M].北京:北京航空航天大學出版社,2007.
Application of Virtual Simulation Platform in the Teaching of Single-chip M icrocomputer
WANGBen-you1,HUANG Xin-yu2,WANGDe-ru1
(1.College of Inform ation Engineering,West Anhui University,L u’an 237012,China;2.Graduate School,Shanghai Jiao Tong University,Shanghai 200240,China)
Based on the features and functionsof Proteus software,the paper,illustrated w ith examp les,discusses the app lication of Proteus software in single-chip microcomputer teaching.The combined design of software and hardware and single-chip microcomputer simulating the p rocess help a lot to imp rove the teaching effect of single-chip microcomputer.
simulation p latfo rm;Proteus;single-chip microcomputer
TP392
A
1009-9735(2010)05-0032-04
2010-06-28
安徽高校省級自然科學研究一般項目(KJ2010B265);皖西學院校級教學研究項目(JYXM200914)。
王本有(1970-),男,安徽六安人,皖西學院信息工程學院副教授,碩士,研究方向:嵌入式系統及應用。