摘 要:筆者通過總結單片機的教學過程中的經驗以及與同組老師交流所得關于單片機教學的方法,提出采用適當的方法來解決單片機在高職中專教學中的問題。即通過任務教學方式,讓學生學習時把理論和實際操作相結合,促進學生自主學習,以更好地實現教學效果。
關鍵詞:單片機 任務教學 實驗演示 自主學習
自19世紀70年代第一塊單片機問世至今,單片機以其優異的性能和低廉的價格滲透到社會生活的各個角落。而芯片制作工藝技術水平的提高以及單片機需求量的不斷加大,也為單片機的發展提供了強大的動力。隨著單片機廣泛運用于工業控制、汽車、生活用品、辦公室自動化、通信系統等領域,學生是否具有單片應用甚至開發能力已成為相關產業的一個招聘衡量標準。教育當然也要與實際需求接軌,才有可能使得培養出來的學生適應目前就業市場的要求。
一、利用匯編語言結合電路理解單片機原理
在筆者學校歷年來的教學檢查中,大多數教師反映本課程難教,除了教學設備沒跟上外,很重要的一個原因是高職中技目前的生源質量不高。很多學生特別是中技的學生對于英語的認識基于字母,所以一看到編程所用的操作碼就頭大,從而一開始就放棄了學習。111條匯編指令就令他們產生畏懼,更不要提什么C語言編程了。對于掌握C以及C++的人來講,采用它們來編程序易修改,使用靈活方便、可移植性強,而且不需要考慮到寄存器存儲空間,當然比匯編來得容易。而匯編語言也有它自己的優點:匯編語言比較貼近于硬件,而且時間比較精準,且學習匯編有利于更為細致地了解對程序。鑒于在校學生的知識層次和匯編語言更適合于初學者,即便111條匯編沒有C語言方便靈活,但對于學生學習單片機入門也是最好的選擇。
對于單片機的原理理解,利用匯編語言結合電路的方法是很有效的。在指令的講解中多結合實例,通過實驗板演示,以提高學生對指令的理解和興趣。如果沒有實用器材,那么采用軟件進行模擬仿真調試并觀察程序的運行結果,對于學生理解程序也會有幫助。人喜歡感觀認識,以眼見為實,見到了對于提高學習興趣就有很好的幫助。最簡單的單片機軟件是Keil uVision系列。但對于教師教學而言,應該就是Proteus,它與Keil uVision結合給學生進行展示程序執行結果,可謂是“兩個搭配,干活不累!”但是同時也要提醒學生,軟件的應用和仿真不能代替實際電路。當然如果有條件,用硬件來調試軟件是最好的,但在沒有條件的情況下,它們的組合將是不錯的選擇。
二、采用任務教學法
在教學過程中,筆者采用了任務教學法。在講解完各個指令后,會要求學生根據具體要求寫出指令通過調試,并在單片機開發實驗儀上進行簡單的實驗。按指令功能分類進行教學和實驗:例如數據傳送指令,可利用它來實現控制燈亮和燈滅。如下列程序:
LINE SOURCE
1 ORG 0000H;程序開始,ORG是一條偽指
令,表示程序從地址0000H開始
2 LJMP MAIN;跳轉到主程序
3 ORG 030H;主程序從地址0030H開始
4 MAIN:MOV P0,#00H;對I/0清零,即無信
號輸出,燈滅
5 MOV P1,#00H
6 MOV P2,#00H
7 MOV P3,#00H
8 ACALL DEL;調用延時子程序DEL
9 MOV P0,#0FFH;對I/0置1,即無信號輸
出,燈亮
10 MOV P1,#0FFH
11 MOV P2,#0FFH
12 MOV P3,#0FFH
13 ACALL DEL
14 AJMP MAIN;跳轉到主程序
15 ORG 0200H
16 DEL: MOV R5,#04H;以下為延時子程序
17 F3: MOV R6,#0FFH
18 F2: MOV R7,#0FFH
19 F1: DJNZ R7,F1
20 DJNZ R6,F2
21 DJNZ R5,F3
22 RET
23 END
該程序只是讓燈全亮全滅,把程序燒錄到單片機實驗板上,先分析程序,再演示實驗結果。讓學生從知識的理論層面到感觀層面進行認識。再給幾段差不多但燈亮燈滅不一樣的程序燒錄到單片機中實驗演示。當學生了解了指令的格式和作用后就可以讓全班同學按8人一組進行分組,并提出想要實現的不同結果功能,讓學生們通過自主討論和分析寫成程序,并通過現場調試再演示出結果。讓組員上來講解程序以及各條指令運行的結果。學生們有了自主學習的機會,可加深其對指令語句的理解。在此,不僅讓學生鞏固指令,同時還訓練學生的表述能力。同時要鼓勵學生在他們自己的電腦上安裝Keil uVision3,可以在平時進行軟件仿真程序的調試與運行。
雖然上面所演示的程序很簡單,而且只能算是簡單實操輔助理論課程,但它可以使剛入門的學生在成功的結果后面產生更多的學習興趣,提高了學生的動手能力和參與熱情。作為一個單片機的入門程序并不是越復雜越好,而是應該體現在如何引導學生進入該課程的學習和引發學習興趣。人往往在知道了一點后才會有想深入學習的欲望,這種欲望是學生學習好該課程的動力。因而,無論教或學都應該由微入細,由易到難,逐步實現教學目的和引導學生進行自主學習。
在單片機的學習中,難的并不是硬件也不是接線,而在于指令學習與運用。硬件相當于人的身體,軟件相當于人的思想,只有強壯的身體而沒有思想是傻子。想要更好地發揮硬件的作用,就必須更好地掌握軟件。加強對指令的熟悉程度是必要的,對于44個操作碼,筆者首先用最笨的方法——背和抄,先記住它們,再與7種尋址方式相結合進行記憶;其次是多看程序,現在單片機的發展使它有著各色各樣的程序,從程序中了解指令的功能和應用。對于小程序要懂得分析每一步運行結果,及其對其他寄存器內容和各種標志位的影響。對于較復雜的程序要學會分析出最終的結果和執行目標。在不斷地看程序中掌握指令。最后就是利用指令對一題用不同指令進行編程,也可以加強對指令的靈活運用。
總之,在該課程的教學中,教師要立足于學生的現狀進行教學,通過多展示、多總結、多分析進行教學。對學生的學習要注重引導,在掌握基礎知識的層面上讓學生自主編程、調試和演示,并學會與同學進行知識的交流,把自己的程序講解給同學們。而且師生之間要多交流和溝通,對學習過程中的難疑點要進行一一突破。
參考文獻:
[1]陳亮,康娟,劉濤.單片機課程教學改革的幾點看法[J].技術監督教育學刊,2006(1).
[2]林格,程鴻勛,唐曾磊.自主學習[M].北京:新世界出版社,2010.
[3]袁道香.《單片機原理與應用》課程教學改革與探討[J].無錫南洋職業技術學院論叢,2011(10)
[4]張鑫.單片機原理及其應用[M].北京:電子工業出版社,2010.
[5]周航慈.單片機應用程序設計技術[M].北京航空航天大學出版社,2011.
(作者單位:廣東省國防科技高級技工學校)