董增文,徐健寧,劉國平
(南昌大學 機電工程學院,江西 南昌 330029)
研究性學習是指學生結合課程教學內容,在教師的指導下,選擇研究課題,以類似科學研究的方式,主動發(fā)現(xiàn)問題、獲取知識、應用知識、解決問題的學習過程[1],是一種“授人以漁”的教學模式,以培養(yǎng)學生的創(chuàng)新精神和創(chuàng)新能力為目標[2],能夠提升學生對課程知識和實驗原理的理解和記憶,增強學習興趣,提高學生的實踐能力和創(chuàng)新能力[3]。
“單片機原理與接口技術”作為應用性課程,要進行研究性學習,其實踐環(huán)節(jié)尤其重要。傳統(tǒng)實驗設備的開放性有限,教學大多只能停留在課堂的板書與實驗室的驗證實驗層面上[4]。研究性學習的教學模式應用于該課程時,學生針對千差萬別的實際項目,往往受硬件資源、時間和空間等條件的限制[5]。有時由于經費問題,甚至無法開展硬件實驗,這大大影響了學生進行研究性學習的效率和效果。
虛擬實驗室在實驗教學中具有廣闊的應用前景[6],通過軟件仿真來進行單片機系統(tǒng)實驗也是比較經濟實用的[7-9]。單片機虛擬實驗室對于引導學生進行研究性學習,提高學生的實際動手能力、綜合設計能力、創(chuàng)新能力具有非常明顯的作用[10]。為此,筆者結合多年教學經驗,聯(lián)合應用VC++和Proteus等軟件,設計研發(fā)了單片機課程虛擬實驗室,以補充和完善傳統(tǒng)實驗教學模式,為研究性學習提供平臺。
面向對象的VC++編程功能十分強大,開發(fā)的軟件具有自主版權,工業(yè)現(xiàn)場的上位機監(jiān)控軟件很大一部分是采用VC++開發(fā)的,所以采用VC++開發(fā)虛擬實驗室的仿真效果十分貼近工業(yè)現(xiàn)場的應用。
Keil軟件和Proteus軟件仿真功能強大,不僅能仿真嵌入式系統(tǒng)CPU執(zhí)行程序的情況,還能結合外圍電路,進行整個系統(tǒng)硬件原理圖的仿真,其實驗效果非常接近于實際工程系統(tǒng)[11-13]。
聯(lián)合采用VC++和Proteus等軟件開發(fā)的單片機虛擬實驗室實現(xiàn)原理如圖1所示。其中VC++開發(fā)上位機監(jiān)控軟件,仿真工業(yè)現(xiàn)場的上位機監(jiān)控;Proteus軟件開發(fā)單片機的控制系統(tǒng)原理圖,結合Keil軟件編寫的單片機控制程序,仿真工業(yè)現(xiàn)場單片機(下位機)控制系統(tǒng)的運行;上位機和下位機軟件通過虛擬串口SerialNull連接并交換數(shù)據(jù)。
圖1 單片機虛擬實驗室實現(xiàn)原理
學生進行研究性學習時,根據(jù)掌握知識由淺到深的原則,實驗分成不同的層次,該虛擬實驗室架構上也分為4個層次,依次體現(xiàn)4個實驗模塊。
(1)基礎實驗模塊。此實驗模塊針對單片機課程的一些基本概念及知識點進行設計。比如:對P0口的應用特點、做通用I/O口需要上拉的輸出特性;設計出P0口控制LED的電路。學生在進行研究性學習時,可以自己編程驗證該實驗電路的控制效果。由于能仿真出P0口作為I/O輸出口時接上拉電阻和不接上拉電阻的控制效果的差異,學生能更形象、直觀地理解該知識點,從而在入門階段就對本課程建立興趣。該模塊不但可以讓學生在自己個人電腦上進行驗證實驗,還可以在上課時結合多媒體設備進行課堂演示,做到“實驗進課堂”,提高課堂教學的效果。
(2)綜合實驗模塊。本模塊重點訓練學生對上一模塊中基礎知識點的綜合應用。單片機的重要知識點,如中斷、定時器等對單片機的應用開發(fā)極為重要。綜合實驗模塊以這些重要知識點為目標,以實際應用系統(tǒng)的某部分為對象進行仿真設計。如開關控制蜂鳴器的實驗就綜合了中斷和定時器的使用。學生通過研究性學習后完成此實驗,可以鞏固和提升對知識點的掌握,并得到實際應用的初步訓練。
(3)設計性實驗模塊。設計性實驗的內容都是針對實際生活當中的系統(tǒng),這些系統(tǒng)的設計涉及單片機課程的大部分知識點,能充分發(fā)揮學生的主觀能動性及創(chuàng)造性,完成之后具有一定的成就感,能得到硬件電路設計和軟件設計方面的訓練。
(4)課程設計模塊。單片機課程設計的任務是設計一套有實際應用的、具有一定復雜程度的單片機控制系統(tǒng),要求學生手工繪出系統(tǒng)原理圖,并開發(fā)相應的系統(tǒng)控制軟件,學生設計的原理圖及開發(fā)的軟件將在該模塊得到檢驗、修改和調試。
以直流電機速度監(jiān)控系統(tǒng)為例來說明單片機虛擬實驗室的實現(xiàn)方法。系統(tǒng)的開發(fā)包括VC++上位機監(jiān)控軟件、Proteus下位機控制系統(tǒng)原理圖設計、keil單片機Demo控制程序開發(fā)、SerialNull上位機和下位機虛擬串口連接和系統(tǒng)的聯(lián)合仿真。
(1)VC++開發(fā)上位機監(jiān)控軟件。本監(jiān)控系統(tǒng)中,上位機監(jiān)控軟件包括當前轉速顯示、歷史轉速曲線繪制、監(jiān)控數(shù)據(jù)報表顯示、按鈕控制直流電機減速或加速、按鈕保存報表數(shù)據(jù)庫及系統(tǒng)日期和時間的顯示。
實現(xiàn)步驟如下:
第一步,利用 MFC AppWizard[exe]向導建立一個基于對話框的工程。
第二步,在對話框中加入相應控件分別實現(xiàn)上述功能,如采用MSComm控件實現(xiàn)上位機和下位機的串口通信;采用List Control控件實現(xiàn)報表顯示;采用ADO Data控件實現(xiàn)報表數(shù)據(jù)庫存儲;采用Teechart控件實現(xiàn)轉速曲線繪制等。
第三步,對上述控件編寫控制代碼。值得一提的是,在對話框工程初始化函數(shù)中對MSComm控件初始化時,應與虛擬串口連接軟件SerialNull的設定、Proteus中COMPIN虛擬器件的設定、單片機程序中波特率和幀格式的設定相對應。本例中,上位機監(jiān)控軟件采用虛擬串口COM3通信,波特率為9600,幀格式為10位。
故MSComm控件初始化如下:
(2)下位機控制系統(tǒng)設計。首先在Proteus中設計單片機(下位機)控制原理圖,本控制系統(tǒng)中采用電位計控制直流電機轉速。電位計的模擬量值由ADC0808采集,轉速采用2位LED顯示,控制直流電機轉速的PWM波由DAC輸出。與上位機的通信采用COMPIN虛擬串口器件,對應計算機的虛擬串口COM4。該器件集成了電平轉換功能,不需要另接MAX232進行電平轉換,使用方便。
然后采用Keil軟件編寫單片機Demo控制程序,值得注意的是,單片機串口波特率和幀格式的設定要和上位機監(jiān)控軟件的設定相對應。本例中是:
TH1=0xfd;//波特率9 600,幀格式10位,方式1,不倍增;
TL1=0xfd;
TR1=1;
SCON=0x50;
PCON=0x00。
最后將Keil生成的.HEX文件加入到Proteus的控制系統(tǒng)原理圖中。
(3)虛擬串口連接。采用SerialNull軟件實現(xiàn)上位機和下位機的虛擬串口連接,上位機監(jiān)控軟件對應COM3,下位機原理圖COMPIN對應COM4。
(4)上位機和下位機仿真軟件聯(lián)合運行。上位機監(jiān)控軟件和下位機控制系統(tǒng)設計完成后,進行整個系統(tǒng)聯(lián)合運行,并根據(jù)運行結果進一步調試程序和修改原理圖。系統(tǒng)完善后,聯(lián)合仿真運行效果見圖2和圖3。從運行效果看,該系統(tǒng)具有高開放性、高逼真性,可作為學生進行直流電機控制方面的研究性學習平臺。
圖2 VC++上位機監(jiān)控軟件運行結果
為配合學生的研究性學習,必須有相應的實驗平臺。筆者研發(fā)的單片機虛擬實驗室經過近2年的使用表明,其具有高開放性、使用方便、實驗成本低、幾乎無消耗等優(yōu)點,在促進學生進行研究性學習方面效果明顯。
圖3 下位機(單片機)控制系統(tǒng)仿真運行結果
該實驗系統(tǒng)配合多媒體設備,可以很方便地在課堂上邊教學邊演示實驗,豐富了課堂教學的手段,大大促進了教學質量的提高。
(References)
[1]董增文,胡瑢華,劉國平.機電控制器類課程虛擬實驗系統(tǒng)的研究與開發(fā)[J].實驗技術與管理,2011,28(8):53-56.
[2]任長松.探究式學習:l8條原則[J].教育理論與實踐,2002(2):56-59.
[3]袁麗環(huán),段江燕.研究性學習在高校生化實驗教學中的探索與實踐[J].實驗技術與管理,2010,27(6):12-14.
[4]蘇變玲,朱志平,袁衛(wèi),等.基于Proteus的單片機仿真教學的研究[J].實驗室研究與探索,2009(4):75-78.
[5]陳龍,張亞君.Proteus仿真軟件在單片機實驗教學中的應用[J].實驗技術與管理,2009,26(8):73-75.
[6]宋象軍.虛擬實驗室在高校實驗教學中的應用前景[J].實驗技術與管理,2005,22(1):35-37.
[7]孫凌燕,黃允千.Proteus與Keil軟件的整合在單片機實驗開發(fā)中的應用[J].實驗室研究與探索,2008(4):59-61.
[8]風標科技公司.Proteus VsM:完善的電子設計系統(tǒng)[M].風標科技公司,2005.
[9]鐘艷花.Proteus仿真軟件在單片機教學中的應用[J].江門職業(yè)技術學院學報,2007(4):1-3.
[10]匡載華,鄧小鵬.電子類學科專業(yè)Proteus實驗室的建設[J].實驗技術與管理,2009,26(1)155-158.
[11]Wang Huiqiang,Xing Yanqiu,Xiao Tao.The Control System of Belt Grinder Which Based On The Touch Screen And PLC[C]//International Conference on Computer Application and System Modeling.Taiyuan,2010.
[12]Matti Vaananen,Jussi Horelli,Juha Katajisto.Virtual Learning Environment Concept for PLC-programming -Case:Building Automation[C]//2010 2nd International Conference on Education Technology and Computer.Shanghai,2010.
[13]劉心童,郭福田,孫振興,等.Proteus仿真技術在單片機教學中的應用[J].實驗技術與管理,2007,24(3):96-98.