胡晶晶,李 娟
(淮南聯(lián)合大學 機電系,安徽 淮南 232038)
單片機原理及應用(或單片機原理及接口技術)是一門理論與實踐結(jié)合非常緊密的課程,其理論知識眾多且較為難懂,對學生的實際動手能力要求又較強.整個課程具有理論知識復雜、實踐入門門檻高、外圍元器件眾多等特點.針對上述特點,各大專院校越來越重視單片機實踐課程的實施,本文提出虛擬仿真與硬件實訓相結(jié)合的單片機實踐教學方法,并提出實施過程中的相關建議.
單片機原理及應用(或單片機原理及接口技術)是工科院校電子信息類、自動化類及計算機類普遍開設的一門專業(yè)課,該課程實用性較強,且當前發(fā)展很快,很多學生對課程很感興趣.但在單片機教學實施過程中存在很多難點,使得部分學生接觸不久就放棄了.現(xiàn)對單片機課程的特點總結(jié)如下:
1.1 理論體系復雜
單片機內(nèi)部結(jié)構(gòu)復雜,學生剛開始接觸CPU、存儲器、I/O接口等單片機內(nèi)部結(jié)構(gòu)時會感覺很難理解,無從下手.且匯編語言指令較多,容易混淆,寫程序較為麻煩.不學習匯編語言又很難理解單片機的工作過程.
1.2 實踐動手入門門檻較高
初學者要入門單片機電路設計,除了了解單片機原理外還需要學習很多環(huán)節(jié),首先要學會畫原理圖(通常用protues或protel軟件),其次編寫程序(通常用匯編語言或C語言),在編寫程序前要學會使用開發(fā)軟件(如keil),然后將編寫好的程序下載到單片機,不同廠家的單片機有不同的下載軟件和方法.然后搭建好硬件電路進行試驗.這些環(huán)節(jié)熟悉了后并不復雜,但對于初學者來說,只要一個地方使用不正確,可能就導致實踐無法繼續(xù),這對初學者的積極性有很大的打擊,很多初學者在這個地方會卡很長時間,甚至放棄學習.
1.3 外圍電路眾多
單片機在學習過程中要掌握眾多的外圍電路,如發(fā)光二極管、數(shù)碼管、蜂鳴器、液晶顯示屏、點陣、A/D、D/A轉(zhuǎn)換、外部存儲器、串口通信等.不同的外圍電路原理各不相同,差異巨大,這需要學生主動查閱各種手冊等資料.
以上特點是單片機教學過程中普遍存在的困難,也是單片機教學改革中所重點關注的對象.
計算機輔助設計在工業(yè)設計中已得到廣泛的應用,在真正設計出產(chǎn)品前,先用計算機進行仿真,然后再進行試驗驗證,這樣不僅可以節(jié)約大量的人力物力,還可以少走很多彎路,節(jié)省時間,減少開發(fā)周期.在單片機設計領域也不例外,現(xiàn)在常用的仿真軟件有protues等.雖然學生在校期間很難接觸到實際產(chǎn)品開發(fā),也無法體驗產(chǎn)品開發(fā)過程中的人力、物力和產(chǎn)品開發(fā)周期.但對于學生掌握開發(fā)技能,了解產(chǎn)品開發(fā)思路來說,虛擬仿真這個環(huán)節(jié)是比不可少的,所以現(xiàn)在很多院校也開始建設虛擬仿真實訓室.
除上述原因外,虛擬仿真對理論教學上也有很大的輔助作用,在講單片機實例時可以先用仿真軟件仿真,這樣學生可以有個直觀的了解,然后進行硬件實訓時不至于脫節(jié),對于硬件實訓過程中遇到的問題也容易對癥分析,如果通過虛擬仿真,則說明整個設計的思路和程序是沒有問題的,就可以把焦點對準硬件電路本身.
由于虛擬仿真能夠模擬實際電路的運行,所以很多學校和學生為了方便,就完全取代硬件電路實訓,用來訓練學生的單片機開發(fā)能力.雖然在上述文章中分析了虛擬仿真的重要性,但完全用虛擬仿真來代替硬件電路實訓是不適合的.因為硬件電路實訓對訓練學生的動手能力、故障診斷與分析能力及綜合能力有著不可替代的作用,原因如下:
(1)實際電路的搭建與布局與仿真電路會有區(qū)別,不能完全用理論電路圖來代替實際電路的布局和接線.
(2)再完善的模擬也不能保證在實際電路的運行過程中不出問題,而對出現(xiàn)問題的解決是訓練學生能力的重要途徑,這在虛擬仿真中是無法替代的.
(3)硬件電路實訓對學生認識元器件、外圍電路以及對學生訓練焊接或接線能力具有重要的意義.
(4)在硬件電路實訓過程中,如果電路設計成功,學生即可看到自己的成果實際運行,這對激發(fā)學生的興趣和成就感具有重要作用,使得學生能夠積極主動的學習,以及產(chǎn)生深刻的記憶.
針對上述問題,筆者提出在單片機教學過程中一定要進行虛實結(jié)合,即在教學過程中既要進行虛擬仿真又要進行硬件電路實訓.根據(jù)筆者長期的教學經(jīng)驗以及廣泛的調(diào)研發(fā)現(xiàn),虛擬仿真和硬件電路實訓結(jié)合存在教學內(nèi)容較多,課時不夠用等問題.前面已經(jīng)說過,單片機教學過程中需要講解的內(nèi)容眾多,包括芯片原理、內(nèi)部結(jié)構(gòu)、匯編程序設計,各種外圍元器件的原理、應用、以及與單片機的接口,單片機程序開發(fā)時的各種軟件的使用等,“虛實結(jié)合”使得本來就較為緊張的課時更加不夠用.這樣的問題使得有些學校要么放棄虛擬仿真,要么放棄硬件電路實訓.
根據(jù)上述情況,如何將虛擬仿真與硬件實驗相結(jié)合,而又不增加課時提出如下幾點建議:
4.1 對每次的實驗課程(哪怕是最簡單的流水燈實驗),也要引導學生按照產(chǎn)品開發(fā)的思路,先分析產(chǎn)品需求,然后選擇電路元器件,查詢外圍電路的功能及原理,分析整個電路框架,然后畫出電路圖進行虛擬仿真,搭建硬件平臺,下載軟件并運行程序,觀察運行結(jié)果并寫出實驗報告.再簡單的實驗也不要省略其中的任何一個環(huán)節(jié),讓學生一開始就培養(yǎng)出認真的學習態(tài)度和嚴謹?shù)膶W習思路.下面以數(shù)碼管開發(fā)為例,闡述整個設計過程.
設計題目:用單個數(shù)碼管實現(xiàn)0~9往復循環(huán)電路,時間間隔為1秒.
教學過程如下:
(1)引導學生查找7段顯示數(shù)碼管的類型(1位數(shù)碼管、4位數(shù)碼管、共陽極、共陰極等)、原理,學會查找芯片手冊.允許學生選擇不同類型的管子,當然不同的選擇會導致后續(xù)的電路設計和程序程序產(chǎn)生差異.
(2)分析功能需求:數(shù)碼管從0開始每隔1s增加1,直到9后回到0,循環(huán)顯示.
(3)3根據(jù)需求畫出電路原理圖,如圖1所示.
圖1 單個數(shù)碼管電路圖
(4)設計程序代碼并進行仿真.其中C語言參考程序如下所示(也可以用匯編程序設計,限于篇幅從略):
(5)搭建硬件電路平臺,下載程序并運行,利用硬 件電路實現(xiàn)0~9循環(huán)顯示.
(6)撰寫試用報告和心得.
(7)提出擴展題目,供學生課后思考.如用2個單個數(shù)碼管如何實現(xiàn)00~59循環(huán)顯示;自學4位數(shù)碼管原理,實現(xiàn)00~99循環(huán)顯示.
4.2 對理論知識的講解要由淺入深,循序漸進,理論與實驗教學要相互穿插,互相推進.有些老師和學生喜歡先將理論知識先學完,然后再進行動手實驗,這樣在學習理論知識的時候會覺得非??菰?可以在學生學習最基本的體系結(jié)構(gòu)和關鍵的幾條匯編語言后即可讓學生進行簡單的實訓(如流水燈、數(shù)碼管等).這樣可以讓學生及時看到學習成效,提高學習的興趣.
4.3 引導學生自主完成整個實驗過程,從外圍電路的原理開始,到整體思路設計,再到局部電路的具體設計,要引導學生獨立思考,不能完全由老師進行灌輸,培養(yǎng)學生獨立思考的能力.
4.4 引導學生對比虛擬仿真與實際硬件電路的差異,感受各自的特點.有的學生喜歡編程,有的學生則更喜歡硬件電路的焊接或接線.根據(jù)不同學生的興趣,有差異的培養(yǎng)起特長.
4.5 建立開放實驗室,單片機實驗不僅要圍繞課堂教學,還必須結(jié)合學校的相關社團、技能大賽等活動,形成一個完整的學習鏈.通過社團和技能大賽,使學生的拓寬學生的學習面,而不是僅僅拘泥于課堂,可以有效的將單片機與其他相關領域相結(jié)合,另外可以大大拓展學生的有效學習時間,補充課堂教學的不足.經(jīng)過實踐證明,開放的實驗室可以大大提高學生的學習興趣.
4.6 精選實訓案例,現(xiàn)在很多實驗完全按照實驗指導書,按部就班的實施,由于課堂教學時間有限,實驗無法完成,很多知識點都無法覆蓋.在實驗教學過程中要精選部分有代表性的案例,讓學生掌握單片機開發(fā)的關鍵要點,同類型的案例可以放到課后讓學生進一步去探索,且根據(jù)不同學生的學習情況,提出不同的要求.
4.7 進行綜合實訓,在課程快結(jié)束時,一定要有相對集中的時間完成一個典型的綜合實訓(如電子鐘).綜合實訓不僅可以將前面所學的知識進行連貫起來,起到融會貫通的作用,還可以訓練學生對實際產(chǎn)品開發(fā)流程的掌握,讓學生切實體會實際產(chǎn)品的開發(fā)過程,對以后走上社會后可以盡快的融入工作環(huán)境提供初步的訓練.
單片機實踐教學對真?zhèn)€單品就學習過程起著至關重要的作用,隨著虛擬仿真軟件的發(fā)展以及硬件成本的不斷下降,使得學生學習單片機的實驗環(huán)境不斷完善.合理的將虛擬仿真和硬件實驗相結(jié)合起來,可以對單片機教學提供非常有效的幫助.本文對此進行了一些探討.
〔1〕丁保華,張有忠,陳軍,孟凡喜.單片機原理與接口技術實驗教學改革與實踐[J].實驗技術于管理,2010,1(27):117-119.
〔2〕伍馮潔,謝斌.基于 Proteus與 Keil的單片機實驗教學改革[J].實驗室研究與探索,2009,7(28):125-127.
〔3〕殷士勇.Keil和Proteus在單片機實驗教學中的應用 [J].重慶工商大學學報 (自然科學版),2009,6(26):568-570.
〔4〕王建萍.優(yōu)化單片機課程實驗教學的新思路與實踐[J].實驗技術于管理,2006,11(23):108-110.
〔5〕張鑫,張巖,楊莉,高群.單片機實驗教學改革與探索[J].計算機教育,2007(4):7-30.
〔6〕秦曉梅,陳育斌,楊建華.單片機綜合設計實驗課程的建設與開發(fā)[J].實驗技術于管理,2004,2(21):114-118.
〔7〕杜治國.單片機實驗教學改革探討[J].中國人民公安大學學報(自然科學版),2006,1(1):100-102.
〔8〕李朝青.單片機原理及接口技術[M].北京:北京航空航天大學出版社,2006.