

摘要:本文介紹了將單片機課程分解成各個項目,基于Proteus和Keil軟件進行仿真教學的方法。采用這種項目式仿真教學可以加深學生對單片機的理解和掌握,鍛煉學生的實踐能力。通過一個具體單片機項目實例,闡述了基于Proteus和Keil軟件的仿真教學與傳統教學相比效果更好。
關鍵詞:Proteus Keil 單片機 項目教學 仿真
中圖分類號:G712文獻標識碼:A
本文由金肯職業技術學院單片機技術及應用項目訓練課程建設經費支持(課題編號KC0913)
傳統的單片機教學多以理論教學為主,實驗教學為輔。理論教學主要涉及單片機的原理及軟硬件設計等內容,教學過程中學生感覺枯燥抽象,難以理解和掌握;而實驗教學也大多是基于單片機實驗箱的驗證性實驗,學生難以體會一個單片機系統的軟硬件設計細節[1]。另外,采用單片機實驗箱或實驗板加硬件仿真器的方式,不僅需采購多款實驗儀器設備,而且也大大增加設備的維護工作量[2]。Proteus和Keil軟件的出現,解決了這些問題,為單片機課程的仿真教學提供了很好的平臺。
一、Proteus和Keil介紹及聯調
(一)軟件簡介
Proteus仿真軟件是由英國LabCenter Electronics公司開發的一款仿真工具,由ISIS和ARES兩個軟件組成,其中ISIS是原理圖編輯與仿真軟件,ARES是布線編輯軟件[3]。與其它單片機仿真軟件不同的是,Proteus不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。利用該軟件,可以將單片機項目實例進行形象化地演示。
Keil是德國開發的一個51單片機開發軟件平臺,支持匯編語言和C語言等高級語言。現在常用的KeiluVision2不但可以進行純粹的軟件仿真(仿真軟件程序,不接硬件電路),也可以利用硬件仿真器,搭接上單片機硬件系統,在仿真器中載入項目程序后進行實時仿真。還可以使用uVision2的內嵌模塊Keil Monitor-51在不需要額外硬件仿真器的條件下,搭接單片機硬件系統對項目程序進行實時仿真[4]。
(二)聯調方法
Proteus與Keil軟件的聯調即建立軟硬件聯合仿真調試的過程。軟硬件聯合仿真系統由一個硬件執行環境和一個軟件執行環境組成,通常軟件環境和硬件環境都有自己的糾錯和控制界面,而Proteus與Keil軟件可以實現軟硬件系統的聯合調試[4]。在該系統中,Proteus作為硬件仿真界面,Keil作為軟件調試界面,如圖1所示。具體步驟如下:
(1)在Windows中安裝Proteus和KeiluVision2。
(2)安裝Keil驅動程序,將VDM51.dll文件安裝到Keil目錄下的\C51\BIN中。
(3)運行Proteus的ISIS程序后,進入該仿真軟件的主界面。在Proteus的原理圖設計窗口中,放置單片機及所需的外圍元件,設置各元件參數,連接元器件。在Proteus的Debug菜單中選中Use Remote Debug Monitor。
(4)每次新建Keil工程后,進入Project菜單下Option for Target‘Target 1’。在Debug選項卡右欄下拉菜單選中Proteus VSM Simulators。再進入Setting,如果同一臺機則IP名為12 7.0.0.1, 如不是同一臺機則填另一臺的IP地址,端口號一定為8000。
(5)在Keil中編寫單片機源程序并進行調試,同時在Proteus中查看運行的結果。
(6)若源程序調試正確,可在Keil中編譯生成后綴名為“.hex”的可執行文件。將該文件加載到Proteus的單片機芯片中,即可通過Proteus的相關工具進行系統總體執行效果的調試。
圖1Proteus與Keil軟件聯調框圖
二、單片機項目分解
在單片機的教學過程中,所涉及到的內容主要包括了四方面,即系統資源、硬件接口、軟件程序、綜合應用。因此項目分解時,應該充分考慮課程的特點并作合理的模塊劃分。
(1)系統資源
任何一種單片機均提供了一定的系統資源。對于51系列單片機來講,其所提供的資源是以寄存器和存儲器的方式體現出來的。查看寄存器內容,可以采用各種模擬仿真51單片機的軟件來實現。在Proteus 軟件中,可以執行debug菜單下registers菜單項命令打開相應的窗口。對于系統內部存儲器的查看,同樣是執行debug 菜單下的 internal memory 菜單項命令打開相應的窗口。
(2)硬件接口
單片機的接口電路所涉及到的知識涵蓋了電子電路設計的相關領域,也涉及到單片機應用系統具體的工作需要。Proteus實現了單片機仿真和SPICE電路仿真相結合,具有各種仿真儀器儀表工具,如示波器、邏輯分析儀等[5]。利用Proteus 軟件仿真電路時,可以根據具體的項目要求,讓學生設計硬件電路并編寫相應的程序。
(3)軟件程序
在軟件程序的教學中所涉及到的內容主要包括對語言中具體語句的執行效果驗證、算法的具體實現、程序中語法錯誤的檢查和邏輯錯誤的驗證等內容。采用項目教學時,教師可以針對具體單片機項目內容,結合Keil軟件演示講解以達到預期的教學目的。
(4)綜合應用
軟件和硬件的結合,就是一個單片機的應用系統了。這一步在介紹完相關知識點后以項目的方式提出來,并且可以將其分解成不同的子任務分次完成,使學生易于接受。在這一階段,硬件電路的設計已經不是最為關鍵的了,而軟件系統的設計、調試和運行才是主要內容。因此教師可以引導學生按目標設計出具體的硬件電路,由學生進行軟件的設計和調試。
結合單片機課程的教學任務和學生的具體情況,實際教學時我們將內容分解成單片機系統及軟件的認識、霹靂燈的設計、輸入電路的設計、鍵盤的設計、碼表的設計以及LED點陣顯示的設計等項目。將單片機的每個知識點穿插在具體的項目中,引導學生在實踐中學習并掌握單片機的應用。
三、項目仿真教學實例
現以一個簡易99秒碼表的設計為例來說明單片機項目仿真教學過程。
該項目設計目標要求INT0所接的按鈕開關具有啟動碼表及停止碼表的功能,按一下INT0按鈕開關,即可開始定時,7段LED數碼管上每秒增加1;再按一下INT0按鈕開關,即可停止定時。INT1所接的按鈕開關的功能是將碼表歸零,按一下INT1按鈕開關,則不管有沒有定時,7段LED數碼管都將從00開始。
運行Proteus軟件,選擇系統需要的元器件,如單片機、LED數碼管、7447譯碼器、電阻、按鈕等,在工作界面中繪制碼表的硬件電路。在Keil軟件中按照電路需要實現的功能要求編寫匯編源程序。
對Proteus中的電路和Keil中的程序進行編譯并聯合調試,直至運行結果顯示正確,如圖2所示。
圖2基于Proteus和Keil設計的電路仿真結果
四、結束語
采用Proteus和軟件進行單片機仿真教學,具有比較明顯的優勢。比如克服了傳統單片機教學過程中理論的枯燥性和實驗的局限性,學生可以帶著問題在軟件中仿真實現項目目標,并掌握相關知識點,很好地擴展了學生的思路,提高了學生的學習興趣。與傳統的試驗箱相比,這種軟件仿真教學硬件投入少、實驗過程中損耗小、基本沒有元器件的損耗問題,既節約資源也省時省力確保了很好的教學效果。
參考文獻
[1] 胡敬朋,王聰.單片機項目教學研究及實踐[J].電氣電子教學學報,2009,31(5):82-84
[2] 袁鋒偉,趙立宏,朱慧玲,張瑩. 基于Proteus的單片機課程教學與實驗改革[J].實驗室研究與探索,2007,26(12):75-78
[3] 劉燎原,孫秋波. Proteus軟件在單片機項目教學中的應用[J].徐州建筑職業技術學院學報,2009,9(2):63-65
[4] 孫凌燕,黃允千. Proteus與Keil軟件的整合在單片機實驗開發中的應用[J].實驗室研究與探索,2008,27(4):59-61
[5] 張靖武.單片機原理、應用與PROTEUS仿真[ M].北京:電子工業出版社,2008.