
摘要:針對電氣信息類專業“C語言程序設計”課程教學目標不明確,與“單片機原理與接口技術”課程脫節較嚴重等現狀,嘗試在“C語言程序設計”教學中融入“單片機原理與接口技術”的內容,通過優化教學內容、構建實驗環境、分階段融合等措施實施教學改革。實際教學效果證明,課程融合后學生學習積極性提高,學習目標明確,為學生盡早參加創新活動提供了條件。
關鍵詞:C語言;單片機;融合;教學改革
作者簡介:陳景波(1978-),男,江蘇常熟人,常熟理工學院電氣與自動化工程學院,副教授;陳飛(1978-),女,浙江寧波人,常熟理工學院電氣與自動化工程學院,副教授。(江蘇 常熟 215500)
基金項目:本文系常熟理工學院教學研究項目(項目編號:JX1101286)的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1007-0079(2013)26-0071-02
“C語言程序設計”(以下簡稱“C語言”)和“單片機原理與接口技術”(以下簡稱“單片機”)都是電氣信息類專業的重要課程,這兩門課程實踐性非常強,學習效果直接影響到學生就業的核心競爭力。“C語言”課程教學中關于任務驅動教學法、項目教學法的研究已經較多,在一定程度上可以激發學生學習興趣,提高教學質量。但在電氣信息類專業的“C語言”課程教學中,應該針對專業的特點,結合后續課程融入“單片機”教學內容,有針對性地進行現場教學、案例教學,可以更有效地提升教學效果,本文針對這一問題進行探討。
一、“C語言”和“單片機”教學現狀分析
目前的教學之中,兩門課程的脫節較嚴重,“C語言”作為基礎課程,往往在大一就開設,而“單片機”作為專業課程,要在“模擬電子技術”和“數字電子技術”課程之后才開設。兩門課程教學時間相隔較長,往往導致學生在學習單片機的C語言程序設計時,基本忘記了C語言的基本編程方法。在講授C語言時,電氣信息類專業大多也是以譚浩強老師的《C程序設計》為教材,除了介紹語言的數據類型、控制語句、數組、指針外,還對函數、結構體、文件進行講解。整個教學過程中,過分注重語句、語法的細節和程序設計技巧的講授,對如何分析和解決實際問題講得不夠,從而導致學生沒有明確的學習目的,更缺少學習的興趣。即使開展項目教學法,項目的選擇也是一些關于學生成績處理、方程求解等方面。雖然在一定程度上激發了學生的學習興趣,但這些項目與專業應用結合得不是非常緊密,學生的學習積極性難以得到充分提高。
二、“C語言”教學中融入單片機內容的可行性分析
作為電氣信息類專業的學生,學習C語言的主要目的是為單片機、DSP和ARM等嵌入式系統編程打基礎。C語言是一門較特別的高級語言,它把高級語言的基本結構和語句與低級語言的實用性結合起來,允許直接訪問物理地址,可直接對硬件進行操作,因此既具有高級語言的功能,又有低級語言的許多功能,能夠像匯編語言一樣對位字節和地址進行操作單片機的指令系統和硬件結構。而匯編語言編程正是學生最頭疼的內容,實際的單片機項目也大多數采用C語言開發,因此目前大多數高校也已采用C語言來講授單片機應用程序的設計。
常熟理工學院電氣與自動化工程學院的單片機實驗室由教師自行開發了積木式的實驗設備,同時設計了精簡版的開發板,特別提出了“口袋實驗室計劃”,讓每一個電類學生在一入學就有自己的單片機開發系統,為“C語言”教學中融入單片機內容提供了基本保障,同時讓學生可以在低年級就能夠在電子系統設計上快速入門。
三、具體實施過程
在具體實施過程中,務必注意引入單片機教學內容只是為了增強學生學習C語言的興趣,提高教學效果,為學生盡早開展一些創新訓練打下基礎。課程的重點還是C語言知識和編程技巧的掌握,只有這樣打下堅實的基礎,學生的編程道路才可以走得更遠。實施的思路如圖1所示:
1. 教學內容的優化設計
“C語言”教學中引入“單片機”內容后,“C語言”教學時間會相應縮減,需要進一步針對單片機C語言編程選擇教學內容。對于程序的基本結構、函數、指針、結構體、聯合體、位字段等內容需要加強,增加一些單片機C語言中特殊數據類型和存儲類型的講解。
引入“單片機”教學內容,“單片機”內容的學時可以分配8個學時左右(可根據總學時相應調整),其中理論課和實驗課各為4個學時,理論課可以穿插在整個教學過程中,實驗課可以相對集中,分成兩個實驗完成。
“單片機”教學內容可選擇以下幾個方面:單片機基礎知識,簡單介紹單片機的功能、結構和引腳;Keil軟件使用及外部軟件資源,包括C51的庫函數、寄存器庫函數reg51.h,以此為實例介紹C語言中預處理命令“文件包含”的應用;并行I/O口的操作與編程,為實驗作準備;LED流水燈程序設計;數碼管顯示原理及程序設計。
2.實驗環境的構建及實驗案例選擇
由于實施了“口袋實驗室計劃”,每個學生從大一就擁有自己的開發系統,在原來的計算機實驗室安裝相應的單片機C語言軟件開發系統Keil uVision,即可搭建基本的實驗環境。
由于學生剛入學,相應的專業基礎課程還未學習,可選擇典型且直觀的案例,進行現場演示和學生參與編程。實施過程中,選擇了LED流水燈設計和數碼管顯示實驗,只需掌握單片機簡單的接口編程技術即可完成。
3. 分階段融入“單片機”教學內容
(1)第一階段,明確學習目標,激發學習興趣。第一堂課可以根據之前確定的流水燈設計和數碼管顯示實驗,老師利用開發系統進行現場演示告訴學生C語言是單片機等控制器的靈魂,有哪些應用,學生將會增強學習的目的性。
(2)第二階段,結合典型案例學習C語言編程技術。在學生掌握C語言基本的程序框架、變量類型和語句結構后,老師可以在之前演示過的案例中將LED和數碼管出現的現象與程序中的每行代碼對應起來進行解釋,并可以通過修改代碼,產生不同的實驗結果。也可以在這過程中提出一些問題,讓學生思考如何修改程序,由于每行代碼和具體的現象相對應,學生將會進一步產生濃厚的學習興趣。
(3)第三階段,通過實驗,學生親自體會程序設計的樂趣。這一階段在實驗室完成,老師通過講解程序修改的方法,LED和數碼管就可以出現不同的效果。如果學生完成得比較好,可以增加一些擴展實驗部分或者讓學生自由發揮編程,最后根據實驗的效果進行評比,讓做得好的同學講解項目實現的思路及代碼的含義,進一步樹立學生的學習信心。
(4)第四階段,多樣化考核體現真實的學習效果。考核分成理論考試和實踐考試兩個部分,理論考試主要考核學生對C語言本身程序設計知識的掌握效果。實踐考試再分為通用C語言編程部分和單片機C語言編程部分。前者可考核學生對通用C語言的實際編程、調試的能力;后者考核內容相對容易,學生完成一個工程創建、編輯、編譯、調試下載的完整過程,并能實現簡單的實驗效果即可。
四、實踐效果
經過幾輪在“C語言”課程中融入“單片機”內容的教學實踐后,取得了以下一些效果:大大提高了學生學習C語言的積極性和主動性,教學質量和學習效果也大為改善;使“C語言”課程中的項目教學法、案例教學法等落到實處,切實緊密結合專業開展;由于學生提前接觸單片機程序設計,具備了盡快開展創新項目訓練的基礎,為學院提出的“口袋實驗室計劃”的實施也提供了前提條件,學生單片機系統的設計水平也得到了切實的提升,在各級各類電子設計競賽中取得了豐碩的成果。
五、結束語
課程間的融合產生一加一大于二的效果,也符合工程實踐中需要綜合性知識的要求。這種教學方式使得“C語言”課程教學改革可以進一步深入,在電氣信息類專業中具有較大的推廣價值,這種課程教學改革的思路也可以給其他課程提供一些參考。
參考文獻:
[1]蔣宏偉.“C語言”與“單片機”課程整合教學法探討與實施[J].新課程學習,2012,(8):53.
[2]蘇波,陶寧.“C語言”與“單片機”相結合的教學研究[A]. 2006-2010年教育部高等學校光電信息科學與工程專業教學指導分委員會及協作委員會2010年全體會議論文集[C].2010.
[3]譚浩強.C程序設計(第四版)[M].北京:清華大學出版社,2010.
[4]馬忠梅,王美剛,孫娟,等.單片機的C語言應用程序設計(第5版)[M].北京:北京航空航天大學出版社,2013.
(責任編輯:王意琴)