王本有,黃欣鈺,汪德如
(1.皖西學院信息工程學院,安徽六安237012;2.上海交通大學研究生院,上海 2 00240)
虛擬仿真平臺在單片機教學中的應(yīng)用
王本有1,黃欣鈺2,汪德如1
(1.皖西學院信息工程學院,安徽六安237012;2.上海交通大學研究生院,上海 2 00240)
基于Proteus仿真軟件的特點和功能,闡述了Proteus軟件的使用方法,并用實例介紹了Proteus仿真軟件在單片機教學中的應(yīng)用,軟硬件協(xié)同設(shè)計,仿真單片機執(zhí)行過程,提高了單片機教學效果。
仿真平臺;Proteus;單片機
單片機技術(shù)是一門綜合性、工程性、實踐性很強的電類專業(yè)核心課程,實驗實踐環(huán)節(jié)是該課程學習過程中必不可少的一個重要環(huán)節(jié)[1](P194-226)。在傳統(tǒng)單片機教學中,理論教學與實驗教學分開獨立進行,難以有機融合,更談不上相互貫通,而且由于傳統(tǒng)實驗箱硬件電路已做好,接線也已固定,在實施教學的過程中,學生只能進行簡單的接線,往往學生寫完程序后對系統(tǒng)硬件原理理解仍舊很模糊,更談不上學生自己設(shè)計單片機硬件電路。這樣的結(jié)果往往是理論課枯燥空洞,而實踐時學生又回憶不起理論課的知識,理論與實踐脫節(jié),大大降低了課堂教學效果。本文介紹利用Proteus軟件構(gòu)建單片機虛擬仿真實驗平臺,能在PC機上“邊講解邊演示”,“邊學邊做”,既能通過演示解釋理論中的概念和難以理解的內(nèi)部結(jié)構(gòu)和應(yīng)用,又可驗證所設(shè)計電路的正確性和實用性[2](P3-36)。教學效果表明:基于Proteus軟件的單片機仿真,把教學內(nèi)容、實驗設(shè)備、教師指導、學生操作等有機地融為一體,解決了傳統(tǒng)單片機教學問題,由于只需安裝Proteus仿真軟件的PC機,實驗室可移動,完全開放,極大地提高了教學靈活性,有利于深入學習,加強實踐,并逐步形成軟硬結(jié)合協(xié)同設(shè)計的新思路和新方法。
Proteus是英國Lab Center Electronics公司研發(fā)的電子產(chǎn)品設(shè)計與仿真系統(tǒng),其不僅是模擬電路、數(shù)字電路、模數(shù)混合電路的設(shè)計與仿真平臺,更是目前世界上最先進的基于微控制器(MCU)應(yīng)用系統(tǒng)軟、硬件設(shè)計仿真平臺之一,其最大特點就是基于微控制器的設(shè)計連同所有的外圍電路一起仿真,可直接在單片機虛擬系統(tǒng)上對MCU編程,可對軟件源代碼進行實時調(diào)試,并支持第三方的軟件編譯和調(diào)試環(huán)境,如AVR studio、Kei1等。同時,它具有電路互動仿真功能,通過動態(tài)外設(shè)模型,如鍵盤、LED、LCD等,可實時系統(tǒng)輸入、輸出結(jié)果,或配合Proteus提供的虛擬儀器如示波器、虛擬終端等實現(xiàn)交互仿真,真正實現(xiàn)了在PC上完成從原理圖電路設(shè)計、電路分析與仿真、單片機代碼級調(diào)試與仿真、系統(tǒng)測試與功能驗證到形成PCB制板圖的完整電子設(shè)計過程[2](P3-26)。
Proteus有超過萬種的元器件模型庫、元器件封裝庫,支持主流的CPU類型,如ARM 7、8051/51、AVR、PIC10/12、PIC16/18、HC11、BasicStamp等,CPU類型隨著版本升級還在繼續(xù)增加(需要購買Proteus VSM并需要指定具體的處理器類型模型);為電子產(chǎn)品設(shè)計提供了功能強大的虛擬實驗室(虛擬示波器、虛擬邏輯分析儀、多種虛擬信號源、高級圖表仿真ASF、……),它們是電路設(shè)計與仿真、PCB板設(shè)計與仿真的基礎(chǔ);原理圖設(shè)計完成后,一鍵便可進入ARES的PCB設(shè)計環(huán)境,實現(xiàn)從概念到產(chǎn)品的完整設(shè)計[2](P3-26)[3]。
單片機課程是一門硬件電路與軟件編程統(tǒng)一協(xié)調(diào)的課程,硬件電路為基礎(chǔ),軟件控制硬件[2](P3-26)。要理解以硬件為基礎(chǔ)的接口擴展方法和控制,必須通過設(shè)計硬件電路,進行軟件編程,而軟件又不能脫離硬件電路,最后通過實驗,才可真正領(lǐng)會其軟硬件統(tǒng)一協(xié)調(diào)的含義[2](P3-26)[3]。在Proteus ISIS上做單片機實驗,需要做好下面三件事[4][5]:
(1)在Pro teus ISIS上制作實驗所必須的實驗電路圖(注意MCU的最小系統(tǒng)的外圍電路在仿真時可以省略)。
在Proteus平臺上進行原理圖設(shè)計,通過模糊搜索可以快速定位所需要的器件,如電阻使用 RES或10K均可找到,自動連線功能使連接導線簡單快捷,使用總線布線使電路設(shè)計簡明清晰;設(shè)計好電路后可使用Proteus提供的電氣檢測工具對電路進行電氣檢測,若電路出現(xiàn)電氣錯誤,會彈出信息報告,可根據(jù)報告排除電氣錯誤。
(2)學生需根據(jù)實驗電路圖設(shè)計實驗程序,調(diào)試通過并生成十六進制目標代碼。
軟件調(diào)試方面,其自身只帶匯編編譯器,不支持C語言。但可以將它與 Keil C51集成開發(fā)環(huán)境連接,將用匯編或C語言編寫的程序編譯生成十六進制目標代碼文件后[2][6](P134-179),可以立即進行軟、硬件結(jié)合的系統(tǒng)仿真。
(3)將(2)生成的十六進制目標代碼文件與中實驗電路圖中的單片機綁定在一起,仿真實際效果,若不滿意可修改(1)原理圖和(2)程序,直至成功。
系統(tǒng)仿真像使用仿真器一樣調(diào)試程序。若未達到設(shè)計目標,則可多次進行仿真設(shè)計,直到滿意為止。仿真顯示生動直觀,用色點顯示引腳的數(shù)字電平,默認設(shè)置紅色為高電平,藍色為低電平,灰色為無效電平,結(jié)合動態(tài)器件(如電機、顯示器件、按鈕)的使用可以使仿真直觀、生動[2](P3-26)。
在單片機教學中,端口的正確運用很重要,因此必須掌握端口的內(nèi)部結(jié)構(gòu),P0端口內(nèi)部結(jié)構(gòu)不同于P1、P2、P3端口[6](P134-179),其內(nèi)部集電極沒有上拉電阻和電源相接(稱為OC門),作為I/O口時,須使用外接電源和上拉電阻,才能驅(qū)動負載。通過圖1由Proteus仿真電路來演示端口驅(qū)動能力,可明確 P0口用作驅(qū)動電路時不同于其它端口。從圖1可看出,單片機上電運行,P1-P3輸出為高電平,相應(yīng)管腳的電平顯示為紅色,而 P0口理論上為高電平,但實際為灰色即無效電平,P0.0相連的LED燈不能被驅(qū)動點亮,當P0.1外接電源和電阻后輸出的高電平點亮LED燈。這樣的演示可讓學生明白OC門的帶載特點,加深印象,為正確運用和擴展端口奠定基礎(chǔ)。
圖1 端口驅(qū)動能力演示
由于單片機課程內(nèi)容本身具有抽象性和實踐性,在理論教學時學生普遍感覺難學,教師感覺難教。例如控制流水燈實驗的講解,雖然以往筆者在理論教學過程中也分析程序進行實例講解,但是由于缺乏直觀印象,教學效果并不理想。利用虛擬仿真實驗,可以很好地解決這個問題。課堂上如圖1通過P1口的8個LED燈來模擬實際生活中多樣化廣告燈的控制。多樣化廣告燈的功能是將燈的造型設(shè)計為首先單燈往返移動,其次雙燈往返移動,最后全部燈依次被點亮的動態(tài)效果,并循環(huán)往復。事先將燈的狀態(tài)以16進制或2進制形式保存在以L ED_TABLE為首地址的存儲單元中,執(zhí)行時,通過改變指針DPTR實現(xiàn)狀態(tài)數(shù)據(jù)送到 P1口。多樣化廣告燈匯編程序可由Proteus自帶的匯編編譯器生成目標程序,也可通過Keil C51集成開發(fā)環(huán)境生成十六進制目標文件,最后,綁定到單片機仿真即可達到如圖2所示的效果。通過虛擬仿真給學生演示,燈亮的5種狀態(tài)循環(huán)往復,學生普遍表現(xiàn)出濃厚的興趣,從而自行設(shè)計其它電路和程序并仿真。
;多樣化廣告燈程序如下:;
圖2 多樣化廣告燈效果演示
中斷及其優(yōu)先級從概念來說,學生是可以理解的,但程序如何按中斷向量表執(zhí)行[6](P134-179)[7](P113-180),當多個中斷源申請中斷時,如何根據(jù)IE、IP的設(shè)置判斷中斷優(yōu)先級,如何響應(yīng)中斷服務(wù)程序,如何實現(xiàn)中斷嵌套,學生在實驗中較模糊,可由圖3硬件原理圖和圖4軟件框圖來仿真中斷響應(yīng)和中斷嵌套的各個過程。設(shè)計要求是:程序使P0、P1、P2都能使數(shù)碼管循環(huán)顯示0-9,但 P0口運行即顯示,P1(P2)口能否驅(qū)動數(shù)碼管顯示受 IN T0(IN T1)中斷服務(wù)程序控制,并設(shè)置 IN T0中斷優(yōu)先級最高,IN T1次之,當有中斷響應(yīng)時,藍色數(shù)碼管停止閃爍,并根據(jù)優(yōu)先級來響應(yīng)中斷,響應(yīng)后對應(yīng)數(shù)碼管從0顯示到9后自動返回,當中斷1申請并響應(yīng),紅色數(shù)碼管顯示,這期間若 IN T0申請,紅色數(shù)碼管停止,綠色數(shù)碼管顯示,實現(xiàn)中斷嵌套,但在 IN T0中斷響應(yīng)期間,IN T1申請將得不到響應(yīng)。主程序和中斷服務(wù)程序用匯編或C語言都可以實現(xiàn),仿真效果如圖3所示。
圖3 中斷處理仿真
圖4 主程序和中斷服務(wù)程序INT0(INT1)流程圖
盡管兩個示例演示功能簡單,但對概念的理解、軟硬結(jié)合實現(xiàn)控制、主程序和中斷服務(wù)程序之間的中斷響應(yīng)、中斷嵌套和中斷返回過程非常清楚,實現(xiàn)了理論和實踐結(jié)合,可通過設(shè)計或綜合型實驗引導學生結(jié)合實際設(shè)計實用控制電路。軟硬件綜合開發(fā)應(yīng)用和直觀仿真,使學生有成就感,對激發(fā)學生學習興趣有著很重要的意義。
對于Proteus軟件來講,可使用單步、斷點和連續(xù)方式來調(diào)試、運行,單片機資源是以寄存器和存儲器的方式體現(xiàn)出來的[2](P3-26)。對于寄存器內(nèi)容的查看,可以執(zhí)行在debug菜單下registers菜單項命令打開相應(yīng)的窗口;對于系統(tǒng)內(nèi)部存儲器的查看,同樣是執(zhí)行debug菜單下的internalmemo ry菜單項命令打開相應(yīng)的窗口,查看、調(diào)試非常方便。
利用Pro teus仿真軟件對所設(shè)計的單片機系統(tǒng)進行仿真,不但能測試程序執(zhí)行時單片機某些寄存器值的變化,更能從工程的角度直接看程序運行和系統(tǒng)工作的過程和結(jié)果。從某種意義上講,這樣的仿真實驗克服了用單片機實驗教學中實驗箱或?qū)嶒瀮x硬件電路固定、實驗內(nèi)容固定、學生自主性差等方面的局限性,更好地彌補了實驗和工程應(yīng)用脫節(jié)之間的矛盾,當虛擬單片機系統(tǒng)的仿真結(jié)果達到系統(tǒng)預(yù)期效果后,再進行硬件實物開發(fā),不僅省時省力,也可以節(jié)省因方案不正確所造成的硬件投入浪費,而且實驗過程與工程實踐相接近,可在不投入硬件的情況下鍛煉學生進行軟硬件綜合開發(fā)的能力。
基于Pro teus仿真軟件進行單片機教學,已成為我校單片機教學與實踐的重要環(huán)節(jié),將理論與實踐相結(jié)合,解決了學生理論學習與動手實驗這個環(huán)節(jié)之間的銜接問題,鞏固了理論教學,強化了動手能力;通過引導學生科技創(chuàng)新,培養(yǎng)了創(chuàng)新意識和創(chuàng)新能力,取得了明顯成效。實踐證明:基于 Proteus仿真技術(shù),電子產(chǎn)品設(shè)計靈活、快速,它明顯提高了設(shè)計效率,縮短了設(shè)計周期,節(jié)約了設(shè)計成本,正成為智能電子產(chǎn)品設(shè)計、改進、升級的重要手段。
[1]李朝青.單片機原理及接口技術(shù)[M].北京:北京航空航天大學出版社,2005.
[2]張靖武,周靈彬.單片機系統(tǒng)的設(shè)計與仿真[M].北京:電子工業(yè)出版社,2008.
[3]李莉.基于Proteus的數(shù)據(jù)采集系統(tǒng)仿真設(shè)計[J].電力學報,2009,24(3):226-228.
[4]周靈彬,張靖武.基于仿真技術(shù)的電子產(chǎn)品設(shè)計變革[J].系統(tǒng)仿真技術(shù),2009,5(2):130-134.
[5]田軍營,韓建海.單片機實驗的虛擬化改革[J].實驗室科學,2008,(6):121-124.
[6]張義和,王敏男,許宏昌,等.例說51單片機(C語言版)[M].北京:人民郵電出版社,2008.
[7]馬忠梅,籍順心,張凱,等.單片機的C語言應(yīng)用程序設(shè)計(第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-),男,安徽六安人,皖西學院信息工程學院副教授,碩士,研究方向:嵌入式系統(tǒng)及應(yīng)用。