凌六一 黃友銳 唐超禮 曲立國 陳珍萍 徐善永 韓濤
摘要:單片機課程是一門實踐性強的課程,實驗教學對學生掌握單片機系統開發與應用至關重要。為解決目前實驗教學過程中存在的實驗內容單一、驗證性實驗為主、實驗課時及硬件條件有限等問題,本文將Proteus和Keil相結合的虛擬仿真技術應用到單片機實驗教學中,給出了兩者聯合仿真的方法與步驟,通過具體實例驗證了應用虛擬仿真技術的可行性,表明了虛擬仿真技術在單片機實驗教學中具有應用前景。
關鍵詞:實驗教學;單片機課程;虛擬仿真;Proteus軟件
中圖分類號:G712 文獻標識碼:A 文章編號:1007-0079(2014)32-0121-02
單片微型計算機簡稱單片機,是將一個計算機系統集成在一個芯片上,它具有體積小、耗能低、控制功能強、擴展靈活、微型化和使用方便等優點,廣泛應用于智能儀器儀表、工業控制、汽車電子、醫療電子、家用電器等領域。鑒于單片機優點及其廣闊的應用前景,單片機課程已成為很多高校電子信息類專業本科生必修課程之一。作為一門實踐性很強的課程,傳統的單片機課程教學多以MCS-51單片機及其匯編語言開發作為主要授課內容,匯編指令可以幫助學生直接了解和掌握系統硬件及編程,但由于單片機匯編指令較多,在學習過程中若不反復使用這些指令來開發一些實際系統,學生是很難記住,更談不上熟練掌握這些指令,從而限制學生深層次地理解單片機內部結構以及接口設計的內涵。盡管目前單片機課程教學中都設有實驗環節,但畢竟實驗課時有限,而且多數實驗以驗證性為主,學生很難在短時間的驗證性實驗教學中對單片機系統一探究竟。由于硬件條件與實驗條件的限制,不可能每個學生都有機會在課余時間進行單片機系統的開發訓練。雖然單片機開發系統有限,但計算機已很普及,擁有計算機的學生很多,為此本文擬采用Proteus和Keil軟件相結合的虛擬仿真技術[1],模擬單片機開發系統及編程,進行單片機課程實驗教學的改革與實踐,通過仿真環境增強學生的感性認識,激發學生的學習興趣和主觀能動性,從而來提高教學質量。
一、單片機課程實驗教學現狀及存在的問題
目前,很多高校的單片機課程以MCS-51內核的單片機作為授課內容,著重介紹此類單片機的匯編語言編程與開發。而單片機實驗教學主要圍繞課堂教學展開,實驗課時非常有限,開設的實驗項目主要用于驗證書本上的內容。總的來說,目前單片機實驗教學存在一些問題[2-4],主要表現在以下幾個方面:
(1)實驗內容單調,多以驗證性實驗為主。由于實驗課時的限制,為了盡可能多地涉及到課本上的一些主要內容,在實驗課時安排上只能以驗證性實驗為主,實驗教學時會具體給出實驗目的、實驗要求和實驗步驟,甚至連實驗程序一并給出。在這樣的實驗教學中,學生處于被動地位,其獨立思考問題能力、解決問題能力和創新能力得不到有效的鍛煉。
(2)實驗過程中學生的硬件設計能力得不到鍛煉。由于實驗教學中所采用的實驗設備大多為高度集成的實驗箱或實驗臺,實驗過程中學生不需要自行搭建硬件電路,而只需進行簡單的連線即可滿足實驗的硬件設計要求。因此,學生無法實踐單片機硬件電路的設計,更談不上自行設計電路并通過實驗來驗證正確與否了。
(3)實驗硬件缺失,難以開展綜合性實驗。單片機學習不僅是編程序,驗證一下指令系統那么簡單。在掌握單片機內部結構和軟件編程的基礎上,將單片機最小系統與外部硬件結合起來,能夠將單片機真正應用到實踐中,這樣才能讓學生建立起單片機系統的概念,讓他們真正體會到單片機的應用價值,激發學生學習和實踐的興趣。然而,由于實驗硬件條件有限,能夠增強學生建立單片機系統概念的綜合性實驗很難開展起來。實際上,也只有一小部分學生能通過學科競賽而不是實驗教學來真正掌握單片機系統的開發。
二、虛擬仿真技術的應用
虛擬仿真又稱虛擬現實技術或模擬技術,就是用一個虛擬的系統模仿另一個真實系統的技術。Proteus軟件是一款電路分析仿真軟件,非常適用于開發單片機系統的虛擬仿真。Keil軟件是一款單片機系統開發軟件,支持匯編、C語言及混合編程。通過Proteus軟件建立虛擬的單片機系統,再利用Keil軟件對單片機程序進行調試,程序的運行結果能夠在Proteus環境中得以反映,這兩者的有機結合完全可以模擬出“單片機系統+仿真器+開發軟件”這種實際系統的運行效果。
1.Proteus與Keil軟件簡介
Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件,它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。從原理圖繪制、PCB設計、代碼調試到單片機與外圍電路協同仿真,真正實現了從概念到產品的完整設計。Proteus是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,可以仿真51系列、AVR、PIC、ARM、等常用主流單片機以及Cortex和DSP系列處理器。支持匯編語言的編輯、編譯、源碼級仿真,內帶匯編編譯器,也可以與第三方集成編譯環境(如IAR、Keil和Hitech)結合,進行高級語言的源碼級仿真和調試,配合系統配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設計開發環境。
Keil軟件是一款兼容51系列單片機的開發工具,它提供了豐富的庫函數和功能強大的集成開發調試工具。支持匯編、C語言及混合編程,可以在無硬件情況下進行純程序調試的模擬仿真,也可以通過單片機仿真器、JTAG等程序調試接口對實際系統進行程序調試。
2.Proteus與Keil軟件的聯合仿真步驟
在進行聯合仿真之前,需要將Proteus軟件和Keil軟件聯系起來,聯合仿真的具體操作步驟如下:
第一步:安裝Keil環境下的Proteus VSM仿真器的驅動程序(vdmagdi.exe);
第二步:在Proteus開發環境中建立項目文件,根據具體仿真內容,繪制單片機系統電路圖,包括添加信號源、顯示工具等;
第三步:在Proteus開發環境中,Debug菜單項選擇“Use Remote Debug Monitor”;
第四步:在Keil開發環境中建立項目文件,根據具體仿真內容編寫單片機程序代碼;
第五步:設置Keil開發環境下的項目文件的“Target”選項,選擇“Debug”方式為“Proteus VSM Simulator”。
第六步:在Keil開發環境下編譯項目文件,運行單片機程序。然后在Proteus環境中觀測運行結果,若結果有誤可返回Keil環境中修改單片機程序,直至運行結果正確為止。
在軟件調試過程中,也可以在Keil環境中設置斷點、程序運行到指定程序段等方式來查看系統部分運行結果或中間結果,如單片機內部寄存器、內存單元等其中的內容。
3.應用實例
下面以單片機AT89C51控制4位7段數碼管的動態掃描顯示為例,介紹Proteus與Keil在單片機實驗教學中的應用。
(1)Proteus環境下的硬件電路設計。應用實例硬件電路在Proteus軟件環境下進行設計,根據數碼管動態掃描顯示的原理與要求,4位7段數碼管(共陽極)的段選信號由單片機的P3控制,位選信號由單片機的P1.4~P1.7來控制,位選信號控制PNP型三極管的導通與截止,從而提供或停止提供灌電流,即選擇數據碼是否點亮。應用實例的具體硬件電路如圖1所示。
(2)Keil環境下的軟件編程與調試。軟件編程實現4位數碼管的動態掃描顯示功能,在Keil項目文件中可新建ASM文件或C文件,在文件中編寫相應語言的程序代碼。圖2給出該實例的程序流程,顯示內容為“25.78”。
軟件編寫完成后,按照之前的步驟,就可以進行整個系統的軟硬件仿真,仿真運行結果見圖1中的數碼管顯示。在程序調試的過程中,逐步增加延時程序的延時時間,可以了解到數碼動態掃描顯示的全過程。隨著延時時間的增加,數碼管從閃爍顯示到按位輪流顯示,這樣可以幫助學生感性地來認識動態掃描顯示的原理與過程,從而使學生牢牢地掌握這一知識點。
三、結束語
Proteus和Keil軟件相結合的虛擬仿真技術既節省了實驗教學硬件成本,又縮短了學生學習和開發單片機系統的周期,仿真平臺的直觀運行效果可以使學生更好地理解和掌握單片機課程內容及相關理論知識,該技術在單片機課程實驗教學中的應用有利于培養學生的實踐動手能力、創新能力和綜合運用知識的能力,有助于電子信息類專業人才的培養。
參考文獻:
[1]魏力.PROTEUS仿真技術應用淺析[J].天津職業院校聯合學報,2013,(8):94-96.
[2]孟建,劉瑞祥,劉永啟.“單片機原理及應用”課程改革實踐和探索[J].中國電力教育,2013,(35):74-76.
[3]金紅,蔣存波.單片機課程教學的探索與實踐[J].電氣電子教學學報,2013,(2):44-46.
[4]丁保華,張有忠,陳軍,等.單片機原理與接口技術實驗教學改革與實踐[J].實驗技術與管理,2010,(1):117-119.
(責任編輯:劉翠枝)