吳瑞芳
摘 ? ?要: 本文從激發學生課程興趣和動力,兩類編程語言教學方式效果對比,項目化教學在教學中的運用及理念聯系實際四個方面介紹在中職學校如何進行單片機課程教學,從而提高課程教學效率。
關鍵詞: 單機機 ? C語言 ? 項目化教學
我是一名從事電子專業教學的中職教師,中職學校學生學習水平低,學習主動性差,如何將一些專業性比較強的課程教給學生對老師來說是一個巨大挑戰,所幸我從事教育教學工作多年,在這十多年里累積了一些非常寶貴的經驗,現針對學生認為比較難學的單片機課程進行教育探索。為什么挑單片機講呢?這里簡單說明一下,主要因為單片機是一門既要懂硬件又要懂軟件的課程,對學生來說,如果能把單片機真正搞懂,就算半個電子工程師了。
古語常說:“師傅引進門,修行靠個人。”我覺得這句話非常有道理,作為一名合格的老師,并不在于你教會學生多少知識,而在于當你開啟每一門新課程時,能讓學生有個良好的入門,讓學生懂得自己在學習什么,激發學生潛在的學習動力,這樣學生有激情有動力學習,才能學會并掌握一門功課。倘若老師我行我素地滿堂灌,而臺下學生沒有興趣聽,沒有興趣學,講再多的知識也沒有用,學生聽過之后就忘記,課后不練習實踐操作,一點效果也沒有。因此,每次講新功課時,總想辦法讓學生聯系實際,讓他們知道自己要學習的專業課到底有什么用,涉及哪些應用領域激發學生對新課程的好奇心。針對單片機課程教學,第一節課我一般會布置一份課后實踐作業,讓學生尋找“身邊的電子產品”,學生可以用手機拍下看到的一切電子產品,并登錄個人賬號,上傳到我制作的“魔燈”課程網站上,我會將學生的作品整合后,在第二節課時,對學生做一個引導入門介紹。學生拍來的作品五花八門:有ATM機、交通燈、液晶電視機、數碼音響、遙控器、空調、智能玩具、洗衣機、電飯鍋、電燈、電腦、手機、IC卡等,他們能想到的、能見到的都給拍了上傳過來,在這么多材料里,我必須進行一定篩選,選出一些跟單片機比較緊密相關的,并且接下來課程傳授會牽涉相關知識點的一些電子產品,如交通燈、空調、洗衣機這幾個比較基礎的。我會試著引導學生,挑選其中一樣電器讓學生思考:“整個電子產品到底是怎樣構成的?”“它是通過什么樣的方式工作呢?”從而慢慢引導學生了解單片機的控制作用。接下來,我會將學生的所有作品都快速播放給他們看,這么做的目的在于對他們進一步強調本課程的重要性,單從他們上交的作業就可以看出現今社會智能化東西越來越多,意味著日常生活中使用的單片機越多,所以學習單片機非常有前途,學好了不怕找不到工作。
引起學生的學習興趣與重視以后,接下來就是防止學生“半途而廢”,在教學過程中這是最難的一關,時刻保持住學生的學習熱情和學習動力,也就是所謂的“恒心、毅力”,我常常跟學生開玩笑說,你們要時刻“一心一意”地跟我走。在講課過程中,我常常斟酌自己的語言,盡量用通俗的表達方式講解,碰到一些比較基礎的電子知識,只要學生有疑問,就花時間整理知識點,確保學生可以理解掌握,因為我始終堅信“萬丈高樓平地起”,如果沒有良好的基礎,則學習路程走不遠。為了讓學生更有興趣學習,我還挖空心思學習電子畫圖,盡可能以圖例形式形象表達一些知識要點。
學校的課程還是傳統的51系列單片機教學,畢竟它是目前市場上用得最多的單片機之一,而且其指令通俗易懂,I/O(輸入輸出口)的控制簡單。
一開始,我會簡單介紹單片機的工作條件及硬件組成,接著教學生用單片機學習套件試著點亮一只發光二極管,當學生發現原來自己只要寫幾條指令就可以讓燈亮時,心里是無比興奮的,這時進一步讓學生依次點亮八只發光二極管,在學生慢慢入門以后讓他們學習編程,讓發光管以流水燈的方式點亮,到此算是一個很好的入門操作。其實這還只是入門,要登上大殿,路程還很遙遠,學習單機片最頭痛的就是硬件部分,硬件難就難在沒有頭緒,學習硬件技術找到一個合適的入手點最重要。為了解決這個問題,教研組經過討論和設計,在開設單片機課程之前,都先開設數電與模電設計課程,讓學生學習簡單的數字電路設計和模擬電路設計,制作一些簡單的電路板,為后續單片機課程打好基礎。
再來是編程語言的選擇,我們糾結了很久,到底用哪一種語言好,是匯編呢?還是C語言?一開始,我們先從匯編語言程序設計入手,雖然匯編對中專學生來說很難,但是堅持半年下來后會發現,采用匯編教學后,學生對MCS51的內部硬件構成比較清楚,但是弊端就是全班真正掌握的學生比例很低。后來我們采用C語言教學,因為C語言有很好的結構性與模塊化,更符合人們的思考習慣。對比兩種語言的教學效果,采用C語言效果遠好于匯編。畢竟匯編在編程時往往要考慮細節問題,而這對中專生來說有點難,往往是一個小細節問題會讓你搞半天,而結構化的C往往只需要考慮算法無需過多考慮細節問題,同時可讀性好,調試時間大大減少。所以學生都比較喜歡C,后來的教學過程中,我們一直采用C語言教學,除非個別聰明的學生希望學習匯編,我們會以興趣小組的方式開展。
在教學過程中我采用項目化教學,這是一種比較實用的單片機教學方法,直接教學生怎樣使用C語言開發單片機,采用模塊化教學生,讓學生在較短時間內掌握IO口、定時器、中斷的操作,通過一個一個模塊的學習,讓學生慢慢了解芯片內部的硬件構成細節。這種教學方式的優點體現在:學生剛開始學習時,不需要花很長時間學習單片機內部硬件構成結構之類很枯燥的東西,只要明白C語言的變量與單片機的IO口等模塊里的寄存器、一個函數與對應的單片機的一項功能、順序語句與單片機的順序輸出、條件語句與單片機的輸入輸出間條件關系、循環語句與單片機的反復型輸出是怎樣映射的就可以完成很多范例項目的開發,保持住學習興趣。
當學生學習進入一個階段以后,就可以進行比較深入的實驗,讓學生在實踐中領悟理論,用理論指導實踐。學習單片機,只有讓學生真正實際動手做點東西,才能真正弄明白自己到底學習什么。我會設計一些比較簡單的項目,讓學生分組抽簽,每個小組做一個小項目,讓學生在設計過程中加深印象。不管怎么樣,單片機學習過程應該是一個循序漸進、不斷學習、不斷積累的過程,需要師生雙方配合,才能掌握。在教學過程中,我對單片機應用這個領域始終充滿熱情,希望與行業里的各位老師多多交流,不斷學習,不斷成長。
參考文獻:
[1]李廣弟,等.單片機基礎[M].北京航空航天出版社,2001.
[2]王東峰,等.單片機C語言應用100例[M].電子工業出版社,2009.
[3]張毅剛,等.MCS-51單片機應用設計.哈工大出版社,2004,第2版.
[4]霍孟友,等.單片機原理與應用.機械工業出版社,2004.1.