單片機具有使用靈活、體積小、價格低、面向控制的特點,在汽車電子、家用電器、智能儀器、工業控制儀表等各個領域都有極為廣泛的應用。因此,單片機技術應用越來越受到工程技術人員的重視。目前國內高職院校應用電子技術、自動控制、機電類等專業均將《單片機原理及應用》課程作為一門重要的專業課。從近年學生就業情況來看,用人單位大都要求學生具備單片機應用能力,它是學生將來在電子類公司或電子行業工作的最基本的技能,是學生的“飯碗型”課程。它的教學效果直接影響學生就業及專業上的發展。
一、存在的問題
單片機是一門綜合性很強的學科,單片機系統開發不只是掌握單片機的結構、各功能模塊的使用、指令系統及編程,熟練掌握利用IDE(集成開發環境),掌握分析問題解決問題的思路和系統調試的技能。過去多數院校單片機課程的教學都是以學生全面掌握單片機內部結構、各功能模塊和指令系統與匯編語言編程為目標,仍然沿用重理論輕實踐、重原理輕應用的教學方法,以學習知識為主,而忽略了技能培養。這種教學體系的不足之處在于:(1)以講解大量的原理來引導學生入門,不僅使學生理解困難,而且感覺枯燥乏味;(2)教學過程中以單片機原理為核心,其應用只是點綴,造成學生應用能力的培養不足;(3)軟硬件介紹分離,對單片機軟硬件結合的系統設計方法強調不夠,這使得學生在構建實際的單片機應用系統時缺少系統化的思路。
二、教學改革的實施方案
MCS-51系列單片機應用廣泛,是學習單片機技術較好的系統平臺,同時也是單片微型計算機應用系統開發的一個重要系列。以MCS-51單片機為教學模型,為我們改革這門課程的教學方法和教學內容提供了有力的技術支撐。
(一)教學方法的改革
1.采用任務驅動式教學法。為更好的培養學生分析問題解決問題的能力,使學生熟練掌握單片機應用系統開發、調試的技能,我們在本課程中采用了任務驅動式教學方法。例如在講到并行口時給學生布置了8位LED流水燈這個小項目,通過這個項目學生可以掌握P0口的結構,驅動LED燈點亮的方法和循環指令等基本知識。完成這個任務后,可以繼續要求學生將原來的亮點流動改為暗點流動,再改變流動方向和流動花樣,這樣隨著任務難度的逐步加大,學生的好奇心更強,不斷地嘗試完成這些任務,在這一過程中就由被動的接受知識變為主動探索解決問題,也達到了靈活掌握指令的目的。
2.采用教、學、做一體化教學模式。為了配合任務驅動式教學法,使學生在學習的過程中培養實際工作能力,我們在教學中采用了教、學、做一體化的課程組織模式。學生通過親自動手完成任務,能夠深刻理解單片機內部結構和掌握編程技巧,這遠比聽老師講看老師做效果好得多。充分利用現代教育技術和實驗實訓條件,事先給每個學生準備好能實現所有項目任務的實訓用戶板零件,學生自己安裝實訓用戶板。在項目任務的教學實施過程中,將課堂搬到實驗室,教師先圍繞單片機功能模塊的應用和需要解決實際工程問題,介紹有關背景知識和項目任務要求,給出解決方案,并分析相關程序,學生在此基礎上,建立任務項目,加入程序,編譯、調試、下載、運行,實現任務要求,從而全面了解單片機的開發過程。學生對此非常感興趣,學習積極性提高。隨后教師再修改任務要求,由學生自己修改程序,實現新的任務要求。如此反復進行,由簡入繁,使學生在學習的過程中既培養了實際工作能力,獲得并積累開發單片機應用系統的經驗。
3.開發實訓用戶板和應用proteus仿真軟件。單片機課程的實踐性非常強,學生只有通過大量的編程運行,反復調試,才能深入了解芯片內部每一個功能單元。為了配合教學,課題組自己開發設計了單片機開發實訓用戶板。包括顯示、鍵盤、語音、I2C總線和E2PROM等多個模塊,使用方便,價格低,可以滿足學生邊學邊做的需要。在學期初,把板子和所需要的元器件一起發放到學生手中,學生拿到這些物品以后,自己詳細的對照配套的電路原理圖將實訓板焊接好,通過焊接過程,熟悉元器件、熟悉實驗板。實訓板使用與課程同步,邊講邊練,生動直觀,比在課堂上重復講指令的效果要好得多。
為了使學生建立直觀的仿真思想,我們引入了proteus仿真軟件。proteus仿真軟件上有國際通用的虛擬儀器及電子元器件庫。通過它們,用戶可以方便地進行電路原理圖的設計和仿真測試,觀察電路的工作狀態及軟件運行后的變化情況。在單片機中,所有的硬件電路設計、對應軟件其實都可以在keil及proteus平臺上進行,這對于學生的深入學習有巨大的幫助。keil完成單片機軟件設計調試,proteus完成硬件設計及系統運行結果查看。用它來做單片機的仿真分析、設計無疑是很方便的。它極大地開拓了單片機學習的空間,降低了單片機的學習成本,提高了學習效果。
(二)教學內容的調整
1.以C51編程訓練為主。過去的單片機課程教學均要求學生掌握單片機指令系統和匯編語言編程,這樣做雖然有利于學生掌握單片機內部結構和編程方法,但是由于匯編語言可移植性差,開發效率低,所以在實際工程應用中大多使用C語言進行系統開發。用C語言進行單片機程序設計是單片機開發與應用的必然趨勢。單片機開發人員應該掌握C語言編程。為此我們將C51直接引入《單片機原理及應用》課程的教學中,從學生接觸單片機之初,就引導學生用C語言編程,熟悉C語言的應用。同時為適應部分同學學習匯編語言的需求,在開始階段,對一些簡單的項目任務,也給出匯編語言程序。
2.注重引入單片機應用新技術。單片機應用系統的硬件設計是越簡潔越好,近年來51系列單片機快速發展,不斷出現新的機型和新的接口電路。為適應單片機技術的發展,在教學中不斷向學生強調合理選擇單片機重于系統擴展的思想,盡量多介紹各種不同配置的51系列單片機的片內資源情況。特別是在教學內容中引入了高檔51單片機SILICON的C8051F系列SOC嵌入式處理器,開闊學生視野引導學生不斷跟蹤技術的發展。削減系統擴展中的部分陳舊內容,以介紹串行總線擴展技術和新型的串行擴展接口芯片為主。
3.修訂教學大綱。按照任務驅動式教學和教、學、做一體化的思路重新修訂了課程教學大綱。將整個教學環節分為基礎部分和應用部分。基礎部分主要以講解單片機基本知識為主。用24個學時完成,其中包括課堂教學20學時,其中4學時在實驗室組織教學,另有上機實驗4學時。應用部分分為5個專題,每個專題根據具體情況設計若干個項目任務,在教學中先提出技術問題,給出解決問題的方法;再講授單片機有關模塊的功能和使用方法;最后教師提出修改了的任務要求。學生邊學、邊做、邊練。
4.采用綜合考核方法,注重實際效果。好的考核的方法,可以讓課程教學起到事半功倍的功效,取得較好的教學效果。傳統的考核方法都是閉卷筆試,對學生來說就靠死記硬背了,這樣就把學生引導到追求高分數上去,而不能體現學生分析問題和解決問題的能力,更體現不出學生的創造性。其實現實中拿著書本編程的人并不少見,而很多工程師也是在編過若干個程序之后,才熟悉指令及相關知識的。考核的目的就是檢驗學生是否掌握了單片機硬件設計和軟件編程能力,單純記憶知識是毫無用處的。為此,我們采取綜合考核方式,將學生自主學習情況、創新活動及表現、學習過程情況等納入考核評價體系,建立以能力考核為重點,以過程考核為主,注重實際效果的課程考核評價體系。筆試成績只占40%,操作考核占60%。我們給學生提供多個設計任務,最后采用答辯的形式來作為考核手段。其評分標準方法為:(1)只有預定功能實現才能參加評分,否則以零分計;(2)滿分100,計分方法分兩種情況:一是使用實訓板上資源不另外擴展:凡用到所述資源者(定時/計數器、串行口、中斷系統、發光二極管、常開按鈕、撥碼開關、數碼管顯示器、蜂鳴器),每用到一個以10分計,另外根據實現的功能給予0-20分的獎勵分;二是使用實訓板同時加適當的擴展電路:基礎分為70分,另根據實現的功能給予0-30分的獎勵分;(3)附加10分:即具有別人都沒有做到的功能。此項由學生自己提出口頭申請,由驗收老師決定。考核時要求學生演示所實現功能,講解功能實現的方法,回答老師提出的與本題目有關的3~5個問題,回答基本正確者按標準(2)計分。經過這樣的考核,明顯增加了學生的學習積極性,他們為了得到更好的成績,會想辦法把單片機資源的使用方法都弄清楚,盡可能多的把它們用到自己的設計中去,對于程度好的學生也有足夠的發揮空間。采用這種方式既提高了動手實踐能力,又鞏固了理論知識,一旦學生進入了這種知識學習的良性循環,那么無論今后繼續學習和工作,都會終身受益的。
(作者單位:河南機電高等專科學校)