【摘要】對單片機實驗課程的實驗教學改革情況進行了介紹,詳細論述了PROTEUS仿真軟件的優(yōu)點和對單片機實驗教學的幫助,以及C語言在單片機應用開發(fā)中的優(yōu)勢。實踐證明本實驗課程的教學改革達到良好效果,激發(fā)學生對單片機的學習興趣,提高了學生動手實踐能力,培養(yǎng)了學生的獨立思考能力。
【關鍵詞】單片機實驗;教學改革;PROTEUS軟件
單片機課程是各高校電子信息類專業(yè)的一門非常重要的專業(yè)基礎課程,其實踐性、操作性,工程性都很強,學好單片機的應用開發(fā)對后續(xù)專業(yè)課程的學習起著重要的作用。單片機教學分理論教學和實驗教學兩部分,實驗教學是對理論知識的檢驗實踐,對培養(yǎng)學生的電路設計能力和編程能力都起著非常重要作用。單片機應用開發(fā)能力的培養(yǎng)需要的實驗環(huán)節(jié)較多,涉及知識面較廣,對初學者來學習單片機時會存在一定困難,為了得到更好的教學效果,調(diào)動學生的積極性,本文對單片機實驗教學環(huán)節(jié)進行改革探索。
1.傳統(tǒng)實驗教學的不足
傳統(tǒng)的單片機實驗教學是在實驗室中進行,每個實驗桌配置PC機和一個體積較大的單片機實驗箱,學生在做實驗時需要了解實驗電路圖,實驗接口按鈕以及實驗連線等,操作比較復雜,如果初學者對這些不熟悉的話做實驗就比較困難,影響學生學習的興趣,老師也只能忙于指導學生對硬件進行操作,浪費實驗時間。另外如果實驗箱出現(xiàn)故障不能及時修復的話會嚴重影響實驗的進度和效果。
因為學校的實驗室資源有限,而學生人數(shù)較多,因此學生能利用實驗室進行更多的實驗操作的機會有限,制約了學生對單片機開發(fā)應用水平的提高。構(gòu)建傳統(tǒng)的單片機實驗室除了需要購置單片機實驗箱外,還需要購置直流穩(wěn)壓電源,示波器,信號源,仿真器的儀器等配套設備,需要投入的資金較大,且日常維護成本較高。單片機實驗箱的硬件資源有限,且已經(jīng)固定不能改變,在實驗時教師和學生都感覺到使用實驗箱進行單片機實驗不夠靈活,學生的電路設計能力得不到很好的鍛煉,也不能更深入地理解電路的性能或作用,因此,傳統(tǒng)的單片機實驗教學有諸多弊端。
2.基于PROTUES的實驗模式的優(yōu)勢
Proteus是Labcenter公司出品的電路分析、實物仿真系統(tǒng)。它可仿真各種電路和集成IC,它還支持許多型號的單片機的仿真,還提供電路原理圖繪制與PCB設計功能。它的元件庫齊全,使用方便,是非常好的電子電路設計輔助軟件。Proteus軟件不僅能對單片機進行仿真調(diào)試,對單片機外圍的其他電路同樣可以仿真,不管是否是與單片機相關的電路。因此在進行仿真調(diào)試時,既可以看到單片機程序語句的執(zhí)行情況,又可以看到其他電路運行的結(jié)果,這與實際工程開發(fā)非常接近,有利于培養(yǎng)學生工程應用開發(fā)能力。
構(gòu)建基于Proteus軟件的單片機實驗室只需要一臺PC機即可,這樣就使得實驗室的通用性很強,硬件成本投入大大減少。用Proteus軟件進行單片機實驗開發(fā),儀器設備資源損耗小,沒有元器件損壞的問題,學生不需要操作真實的儀器設備,使得實驗過程安全系數(shù)增高。實驗內(nèi)容可靈活設置,學生可以自行設計實驗電路,可以嘗試相同功能的接口電路用不同的器件構(gòu)成,有利于擴展設計思路,培養(yǎng)和提高設計能力。用Protues仿真軟件進行單片機課程實驗教學,可以克服用傳統(tǒng)實驗箱帶來的硬件電路固定,實驗內(nèi)容固定等方面的局限性,學生只要有電腦即可安裝軟件自行學習,減少學習資金的投入,從而提高學生的學習效果和學習興趣。
在學生學習過程中,會接觸到多種單片機,學校也會開設各種單片機的選修課,如AVR單片機,PIC單片機等,為了教學需要就要購買相應的實驗設備,建設和維護成本較高。而Proteus軟件可以支持多種單片機的仿真實驗,并且提供了大量的元件庫,有數(shù)千種元件供使用,包括模擬電路,數(shù)字電路相關元件,以及交流和直流相關元件;另外Proteus軟件提供了豐富的儀器儀表資源,包括常用的示波器、信號發(fā)生器、直流電壓表、邏輯分析儀、計數(shù)器等,這是實驗室必備的設備,為建立仿真實驗室提供了可靠的資源保障,這體現(xiàn)了軟件仿真的經(jīng)濟優(yōu)勢。Proteus軟件還具有圖像顯示模塊,以及提供多種激勵測試信號,這些資源在調(diào)試電路時發(fā)揮很大的作用,為調(diào)試電路提供方便。
在單片機實驗完成后會安排單片機課程設計環(huán)節(jié),這時要求學生做出具體的硬件電路來,把在Proteus軟件上驗證好的工程項目移植到具體電路中,讓學生體會仿真運行結(jié)果和具體硬件電路運行結(jié)果的差別,提高學生的工程設計和調(diào)試能力,為將來工作時做更復雜的電路設計做好準備。雖然Proteus的仿真運行與實際硬件運行結(jié)果存在一些差別等缺點,但只要稍微調(diào)整程序參數(shù)就實現(xiàn)在硬件上的良好運行,相比它帶來的學習開發(fā)優(yōu)點來說,這些缺點是可以接受的。Proteus軟件提供了很多例子,學生可以參考和借鑒好的設計方案,也可以在原來電路基礎上加以修改處理,滿足自己的設計需求,這都是很好的學習資源。
3.用C語言進行單片機編程的優(yōu)勢
單片機程序設計是學習的重點,在傳統(tǒng)單片機理論教學中,都是以學習匯編語言為主,而C語言只進行簡單介紹,在單片機實驗中也是主要用匯編語言進行程序設計,其優(yōu)點是占用資源少,執(zhí)行效率高。但是匯編語言是面向機器的程序設計語言,是最接近機器碼的一種語言,其指令較多,學生難以掌握,編寫的代碼難讀懂,不好調(diào)試,開發(fā)效率低,需要對單片機內(nèi)部資源非常熟悉,而且不同的CPU的匯編語言有差異,不好移植。因為學生是初次接觸到這種編程語言,也沒有單片機編程基礎,對單片機內(nèi)部資源不夠熟悉,所以學習效果不理想,在進行單片機實驗時暴露出了很多問題。
本次單片機實驗教學改革中教師要求學生采用C語言進行程序設計,并與理論教師溝通在上理論課時多講用C語言編程的知識。學生在大一時就進行了C語言的學習,有一定的基礎,因此用C語言進行單片機程序開發(fā)對學生來講會容易理解些,復雜的程序一般都用C語言進行開發(fā),這也符合現(xiàn)在企業(yè)用人的要求。使用C語言進行單片機程序開發(fā)有諸多優(yōu)點:
(1)語言簡潔,使用方便靈活,可大幅度提高開發(fā)速度,系統(tǒng)越復雜,開發(fā)效率越高。
(2)無須深入了解單片機內(nèi)部結(jié)構(gòu),和復雜的單片機匯編語言指令集。
(3)可進行模塊化開發(fā),軟件邏輯結(jié)構(gòu)清晰,有條理,易于分工合作。
(4)可移植性好,寫好的一個c語言算法,可方便地移植到其他單片機上,而匯編語言相對要復雜的多。
(5)可直接操作硬件,易于編寫、調(diào)試和維護。
隨著單片機的內(nèi)部資源越來越多,存儲空間越來越大,資源已經(jīng)不是考慮的首要問題,因此用C語言進行單片機程序設計是單片機開發(fā)應用的必然趨勢。C語言是初學者的首選語言,當掌握好用C語言進行單片機編程后,再學習匯編語言就會輕松很多。
4.單片機實驗教學組織
單片機實驗所涉及到的內(nèi)容較多,而單片機實驗課程一般只安排8次實驗共16學時,實驗時間有限。有關單片機的相關理論知識在理論課中已經(jīng)學習過了,如單片機內(nèi)部資源,常用接口電路,編程設計,系統(tǒng)開發(fā)設計等知識在理論課中都會涉及到,單片機實驗課程的目的主要是讓學生提高動手能力,驗證理論知識的正確性,加深單片機應用的理解,直觀感受單片機在電路運行過程中發(fā)揮的作用,提高編程設計能力。
在首次實驗中讓學生掌握Proteus仿真軟件和keil編程軟件的使用方法,掌握單片機應用開發(fā)步驟。keil是目前世界上使用最廣泛的單片機編程開發(fā)工具,很多型號的單片機都用它進行程序開發(fā),它支持匯編、C語言以及混合編程,同時具備強大的仿真功能。在實驗指導書中要編寫軟件的詳細操作步驟,讓學生會能快速掌握兩款軟件的使用方法。
接下來的實驗根據(jù)理論教學內(nèi)容的進度由易到難地安排相關的實驗內(nèi)容,包括單片機IO口的應用設計,單片機外部中斷開發(fā)設計,定時器計數(shù)器開發(fā)設計,串行通信開發(fā)設計,數(shù)碼管顯示器件應用開發(fā),外圍器件的控制開發(fā)(模數(shù)轉(zhuǎn)換器件、數(shù)模轉(zhuǎn)換器件),綜合系統(tǒng)設計等,循序漸進地讓學生學習單片機相關知識,從而提高學生的興趣和實驗信心。
5.一個具體的實驗教學例子
以單片機IO口應用設計為例子,實驗電路圖如圖1所示,實驗要求是讓接在P0口的8個LED從左到右循環(huán)依次點亮,產(chǎn)生流水燈效果,這是單片機典型的入門開發(fā)例子,涉及的知識內(nèi)容包括單片機最小系統(tǒng)電路,單片機IO口的輸出編程,延時程序設計等,內(nèi)容豐富。
實驗電路比較簡單,在實驗之前讓學生跟據(jù)實驗指導書要求用Proteus仿真軟件設計好電路圖,到實驗室做實驗時主要進行程序的設計開發(fā)調(diào)試,因為程序設計和調(diào)試是實驗學習的重點。對于學生來說,程序設計是一個難點,實驗課時教師可以結(jié)合實驗電路講解程序設計的思路,讓學生從實現(xiàn)一個最簡單的功能開始,如只讓一個LED亮,然后逐步添加程序?qū)崿F(xiàn)流水燈功能。在實驗指導書中可以給出程序設計流程圖和程序設計框架,讓學生根據(jù)框架添加設計程序。程序框架如下:
#include
void DelayMS(unsigned x)
{ unsigned i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main()
{ P0=0xfe;
while(1)
{//在下面添加自己的程序
}
}}
6.結(jié)束語
通過本次單片機實驗教學探索證明,在Proteus仿真軟件建立的虛擬平臺上進行實驗的教學效果良好,Proteus仿真軟件不但在課堂教學中發(fā)揮重要作用,對學生在課外的學習也提供了極大地便利,學生不會因為手上沒有開發(fā)板而失去學習的興趣,充分調(diào)動了學生學習的積極性和主動性,提高學生單片機應用編程能力。使用C語言進行單片機編程設計,加快了學生學習的步伐,也符合企業(yè)用人單位的需要,為將來工作做好準備。
參考文獻
[1]欒淑麗.如何用Proteus軟件建立單片機仿真虛擬實驗室[J].價值工程,2011(1).
[2]譚炳菊,富鈺.單片機C語言編程方法探討[J].遼寧高職學報,2010(4).
[3]高林.基于工作過程的課程設計方法及實施條件分析[J].職業(yè)技術教育,2008(13).
作者簡介:李德明(1983—),男,廣西桂林人,桂林電子科技大學信息科技學院電子工程系講師,主要研究方向:精密測量與自動控制、電路系統(tǒng)的EDA技術。