【摘要】本文主要分析了單片機在傳統(tǒng)教育中的不足,總結Proteus在實踐教學中的優(yōu)點,利用以一個模擬交通燈案例來分析了Protues在理實一體化教學中的應用的,實踐證明,不僅能夠提高學生的興趣,而且提高了學生的動手能力和獨立思考問題的能力。
【關鍵詞】Protues仿真軟件;理實一體化;單片機
一、傳統(tǒng)單片機教學存在的問題
單片機作為一個計算機的分支,從20世紀70年代誕生以來,廣泛的應用于工業(yè)控制、智能儀表、家用電器等各個領域。目前單片機基礎這門課程在各個高職院校的信息、自動化、機電等開設,由于單片機是具有很強的理論性和實踐性,需要有高質量的實踐環(huán)節(jié)來配合教學,然而傳統(tǒng)的單片機教學普遍存在以下的問題,制約了單片機教學的發(fā)展。
1.硬件條件跟不上。通常學校需要投入一定錢來購買單片機試驗箱,但是在使用的過程中,經常出現(xiàn)元器件的損壞,損壞后沒有得到及時的維修,影響后續(xù)學生的使用。
2.注重理論教學,實踐跟不上。在筆者讀書時,一般單片機教學都是從指令教學開始,需要很多計算機方面的知識,學生在學習過程中不僅覺得這門課程難學,而且失去了興趣,進而對單片機產生了畏懼。
3.有很多學校購買了試驗箱,試驗箱主要是演示性和驗證性,學生在學習過程中缺乏動手能力,這樣就不能培養(yǎng)學生獨立思考問題能力和解決問題能力。
基于這些問題的存在,我們將Proteus軟件引入到單片機教學中,用以改善上述的問題。
二、Proteus軟件簡介
隨著計算機技術的發(fā)展,虛擬現(xiàn)實技術已經成為我們工作設計的一個重要輔助工具,市場上也出現(xiàn)了多種單片機仿真軟件,其中最著名的是Proteus仿真軟件。Proteus軟件是英國Labcenter公司1989年開發(fā)的電路分析和仿真軟件。它集原理圖設計、電路分析、仿真和PCB設計一體,配有各種信號源和電路分析所需要的虛擬儀表;具有模擬電路、數(shù)字電路、單片機應用系統(tǒng)、嵌入式系統(tǒng)設計與仿真功能?;赑roteus的電子電路設計從根本上克服了傳統(tǒng)電子產品沒有物理原型就無法對系統(tǒng)進行測試,沒有系統(tǒng)硬件就很難對軟件進行調試的缺點。
三、Proteus在理實一體化教學中的應用
現(xiàn)我院每年的第一學年開設單片機課程,并且設為必修課程,足可以見我院對單片機教學的重視,學院每一屆都將近一千人,受教學條件的影響,實驗設備,實驗場地很難滿足這么大規(guī)模的教學,而且實踐證明,光學習理論,面對一些指令、單片機結構,而沒有實踐, 不僅學生學習沒有興趣,老師教學也缺乏熱情,嚴重影響了單片機教學。目前采用Proteus軟件結合理論教學,是實現(xiàn)單片機理實一體化教學比較理想的模式。
為了激發(fā)學生興趣,培養(yǎng)學生動手能力和獨立思考問題的能力,采用任務驅動教學,從最簡單的點亮流水燈任務開始,一步步的將學生帶入單片機的世界。從而避開一上來就講單片機的硬件結構原理,一上來就講指令系統(tǒng)匯編程序,令人枯燥的教學模式下面以其中一項驅動任務為例。
1.任務要求
要求利用單片機作為核心控制器件,設計交通燈模擬任務,要求能夠顯示紅綠黃三種燈的顏色,當綠燈亮27秒后,黃燈亮,綠燈滅,黃燈亮3秒后紅燈亮,紅燈亮7秒后熄滅黃燈繼續(xù)亮3秒,接著黃燈熄滅繼續(xù)綠燈亮,以此循環(huán)來模擬交通燈,數(shù)碼管要求顯示倒計時的數(shù)碼。本實驗運用了單片機內部的IO口,定時器中斷,數(shù)碼管動態(tài)掃描等接口知識,是一個綜合性實驗。
2.仿真電路的設計
打開Proteus軟件,在原理圖編輯窗口中繪制圖1所示。
原理圖主要電子元器件包括AT89C52,74HC138譯碼器,兩個共陰極數(shù)碼管,三個LED發(fā)光二極管。數(shù)碼管以動態(tài)掃描的方式來驅動,位選信號通過譯碼管來選擇,單片機的P1口接數(shù)碼管的管腳,P2.0,P2.1接譯碼器的低兩位,用來做數(shù)碼管的位選信號,LED發(fā)光二級管經過限流電阻接到P2.2,P2.3,P2.4口,用來模擬紅綠黃三種顏色的交通燈。
3.軟件設計
本實驗程序主要兩大模塊程序組成。由主程序模塊,定時器T0的中斷服務程序模塊。
(1)主程序模塊,主要完成系統(tǒng)任務的初始化,比如定時器中斷的初始化任務,紅黃綠交通燈的初始化,數(shù)碼管顯示的初始化。部分主程序如下:
void main()
{
init()//初始化定時器中斷
GREENLED=0;//點亮綠燈
while(1){
display(num);//數(shù)碼管顯示
}
}
(2)定時器T0中斷服務模塊。本程序利用定時器T0產生一個50ms的中斷,在中斷服務程序中累計中斷的次數(shù),若超過20次計數(shù)一次。這樣就相當于1秒鐘就計數(shù)。中斷程序要處理的是判斷是否倒計時到3秒和0秒,在最后3秒點亮黃燈,在最后1秒還要判斷接下來是點亮紅燈還是綠燈。中斷服務程序如下:
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;//重新裝載計數(shù)
Count++;
if(Count==20){//20次中斷,即1秒
num++;
if(num==3){//判斷是否還剩3秒
YELLOWLED=0;//黃燈亮;
if(tagGR==1){//標志位用來判斷接下來點亮的是紅燈還是黃燈
tagGR=0;
}else{
tagGR=1;
}
}
if(num==0){//倒計時最后
num=29;//讓計時器重新開始計時
if(tagGR==1){
REDLED=0;//點亮紅燈
}else{
GREENLED=0;//點亮綠燈
}
}
}
}
4.軟硬件結合仿真聯(lián)調
本實驗編程主要用C語言編寫,C語言的集成開發(fā)環(huán)境主要采用的是keil編譯軟件,利用keil生成的hex文件,然后將hex文件裝載到Proteus當中即可。
1)keil軟件中的設置。打開菜單欄里的“Project”,選擇“Option for Target Target1”,在對話框里選擇“output”這一欄,然后在將“Create Hex Fi”選擇上。如圖2所示。
2)Proteus軟件的設置。雙擊仿真圖上的單片機,在彈出的對話框里選擇需要加載的hex文件,即你的程序生成的文件(如圖3所示)。
圖4
3)運行軟件。點擊Proteus左下角的運行軟件(如圖4所示)。
四、結束語
將仿真軟件Proteus用于課堂教學中,可有效的克服傳統(tǒng)教學的一些不足,提高單片機教學的質量,而且有利于理實一體化的教學的設計。如果要學生真正掌握單片機,除了仿真軟件的使用,更多的是要學生能夠將單片機技術與實際結合起來,運用到實際中去才會有價值。
參考文獻
[1]江世民,黃同成.單片機原理及應用[M].北京:中國鐵道出版社,2010.
[2]朱玉紅,林小軍.單片機原理與接口技術[M].北京:機械工業(yè)出版社,2014.
[3]柯艷明.Proteus仿真軟件在單片機實驗教學中的應用[J].實驗室科學,2014,17(3):75-78.
[4]石英.仿真技術在單片機教學中的應用[J].黃山學院報,2012,14(3):128-130.
[5]陳炳杰,余里超.基于Proteus與Keil的虛擬實驗室構建[J].茂名學院學報,2009,19(03):65-68.
[6]王詠梅,王印松.單片機實驗教學改革的探索與實踐[J].實驗室科學,2012,15(4):25-26.
作者簡介:何旭東(1983—),湖南邵陽人,畢業(yè)天津職業(yè)技術師范大學,現(xiàn)任教于貴陽職業(yè)技術學院軌道交通分院。