薛玉利,刁廣強(qiáng),柳欣,田 園
(山東青年政治學(xué)院信息工程學(xué)院、山東省高校智能信息處理技術(shù)與安全重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南 250103)
“單片機(jī)原理與應(yīng)用”是電子信息工程專業(yè)的核心實(shí)踐課,培養(yǎng)學(xué)生電路設(shè)計(jì)、軟件開發(fā)和軟硬件聯(lián)調(diào)的能力,為后續(xù)嵌入式原理與應(yīng)用、電子技術(shù)綜合設(shè)計(jì)、專業(yè)實(shí)習(xí)、畢業(yè)實(shí)習(xí)、畢業(yè)設(shè)計(jì)等課程打下堅(jiān)實(shí)的基礎(chǔ)。該課程有實(shí)踐性強(qiáng)、軟硬件結(jié)合等特點(diǎn),傳統(tǒng)教學(xué)方式將理論教學(xué)和實(shí)踐教學(xué)割裂為兩部分,難以取得理想效果。為此,許多教師在課程教學(xué)中引入了案例教學(xué)法,石巧云以LED 數(shù)碼管動態(tài)顯示為例介紹了案例教學(xué)的實(shí)施過程。單巍等人設(shè)計(jì)了“模擬電磁曲射炮”的實(shí)踐訓(xùn)練,要求學(xué)生分組討論設(shè)計(jì)、分析實(shí)驗(yàn)結(jié)果并改進(jìn)。張謙設(shè)計(jì)了基于51單片機(jī)的人數(shù)監(jiān)測系統(tǒng)綜合實(shí)驗(yàn),可用于單片機(jī)項(xiàng)目式教學(xué)。雷濤等人設(shè)計(jì)了一款基于單片機(jī)的心電監(jiān)測系統(tǒng),并將其應(yīng)用于課程實(shí)驗(yàn)教學(xué)。汪愛明等人設(shè)計(jì)了應(yīng)用于煤礦無極繩運(yùn)輸設(shè)備控制系統(tǒng)的顯示及語音提示裝置的實(shí)驗(yàn)案例。張東陽等人介紹了一套較為完整的基于理實(shí)教學(xué)一體化的單片機(jī)原理與應(yīng)用課程案例體系設(shè)計(jì)。
我們認(rèn)為目前教學(xué)存在的問題和已有研究成果存在一些不足之處。①教學(xué)中實(shí)踐性不強(qiáng)。單片機(jī)課程一般有配套實(shí)驗(yàn)箱,電路的連接和軟件的編寫較固定,學(xué)生大部分時候完成驗(yàn)證性實(shí)驗(yàn),設(shè)計(jì)性實(shí)驗(yàn)較少,無法培養(yǎng)學(xué)生的高階能力。②學(xué)生參與度較低。課程教學(xué)中,教師先講授理論知識點(diǎn)并演示,學(xué)生隨后進(jìn)行實(shí)驗(yàn)驗(yàn)證,出現(xiàn)結(jié)果皆大歡喜,然而稍微換一下情境就完全不知道怎么處理。這是因?yàn)閷W(xué)生沒有深刻理解,不會舉一反三和思考總結(jié)。③一些研究中提供的教學(xué)案例大部分是綜合性實(shí)驗(yàn),需要學(xué)生掌握較多知識,一般要課程快結(jié)束時才能進(jìn)行,在平時的教學(xué)中沒有體現(xiàn)出案例教學(xué)的特點(diǎn)。
單片機(jī)的I/O 口默認(rèn)為輸出口,開關(guān)狀態(tài)檢測是單片機(jī)作為輸入口使用的典型案例。本文以開關(guān)狀態(tài)檢測為例介紹案例式教學(xué)方法的實(shí)施。
本課程開設(shè)在大二上學(xué)期,學(xué)生已完成C++語言程序設(shè)計(jì)、電路分析基礎(chǔ)、數(shù)字電子技術(shù)等課程的學(xué)習(xí),具備了一定的C 語言編程、電路分析設(shè)計(jì)的能力。經(jīng)過前幾周的學(xué)習(xí),學(xué)生對單片機(jī)最小系統(tǒng)、硬件結(jié)構(gòu)、C51 語言編程有了初步的認(rèn)識。本案例將為后續(xù)的獨(dú)立式鍵盤、矩陣式鍵盤和中斷系統(tǒng)打下良好的基礎(chǔ)。具體的教學(xué)目標(biāo)如表1所示。
表1 開關(guān)狀態(tài)檢測教學(xué)目標(biāo)
案例式教學(xué)方法主要由課前預(yù)習(xí)、課中實(shí)踐和課后拓展三部分組成。課前預(yù)習(xí)每次十分鐘左右,通過視頻讓學(xué)生對所學(xué)內(nèi)容有一個先驗(yàn)知識,方便課堂上直接導(dǎo)入;課中實(shí)踐分為原理講授、軟件仿真、開發(fā)板調(diào)試三部分,培養(yǎng)學(xué)生分析問題、解決問題和舉一反三的能力;課后拓展通過老師布置或者學(xué)生自己尋找題目的方式,讓學(xué)生根據(jù)本次課程內(nèi)容,查閱資料,完成一個創(chuàng)新性的設(shè)計(jì),培養(yǎng)其自學(xué)能力、信息檢索能力和創(chuàng)新精神。每一次課程的實(shí)施都像一次過關(guān)游戲,每一次解決問題后會增強(qiáng)學(xué)生的專業(yè)自信,激發(fā)他們的學(xué)習(xí)積極性,為后續(xù)的“電子技術(shù)綜合設(shè)計(jì)”和“大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目實(shí)訓(xùn)”打下良好的基礎(chǔ)。
學(xué)生觀看教師在網(wǎng)上教學(xué)平臺布置的視頻“獨(dú)立按鍵的原理”,并翻閱教材中“開關(guān)狀態(tài)檢測”部分,對獨(dú)立按鍵的原理和應(yīng)用到開關(guān)狀態(tài)檢測部分的電路有個基本的了解。
⑴原理講授:電路原理圖如圖1所示。①通過開關(guān)閉合和斷開兩種情況的電路原理分析,學(xué)生發(fā)現(xiàn)“開關(guān)的閉合和斷開會導(dǎo)致I/O 端口是低電平還是高電平”。反過來,通過檢測I/O端口是低電平還是高電平,就知道開關(guān)是閉合還是斷開;②檢測到I/O 端口的電平,需要將其由高4 位傳遞給低4位,引入第一個問題:如何實(shí)現(xiàn)?③學(xué)生依據(jù)課前預(yù)習(xí)的內(nèi)容,分組討論后,給出解決方案;④帶學(xué)生解讀該實(shí)例的代碼。
圖1 電路原理圖
⑵軟件仿真:①利用Proteus繪制開關(guān)檢測電路;②用keil 軟件編寫程序、生成hex 文件;③將hex 文件下載到Proteus 的單片機(jī),觀察結(jié)果。在這個過程中,學(xué)生會遇到各種問題,教師在旁邊進(jìn)行手把手指導(dǎo),并鼓勵學(xué)生通過網(wǎng)絡(luò)查找問題的解決方法,將其分享到QQ群,方便其他遇到該問題的同學(xué)參考。實(shí)驗(yàn)結(jié)果出現(xiàn)的一刻,學(xué)生會表現(xiàn)的更自信。
⑶開發(fā)板調(diào)試:單片機(jī)開發(fā)板電路原理圖如圖2所示,可以看出,與課本實(shí)例發(fā)生了一些變化,獨(dú)立按鍵連接的IO 端口變?yōu)镻3 口的低4位,LED 燈連接的IO 端口變?yōu)镻2口,如何將開關(guān)狀態(tài)檢測的信息傳遞給LED 燈。學(xué)生分組討論分析問題,提出各種解決問題的方法,調(diào)整代碼,并將hex 文件燒寫到開發(fā)板中逐一實(shí)現(xiàn),觀察設(shè)想的方法與實(shí)際結(jié)果是否相符。
圖2 開發(fā)板電路原理圖
下面以其中一種解決方法為例,觀察開發(fā)板代碼相對于軟件仿真代碼做了哪些調(diào)整。軟件仿真代碼和開發(fā)板代碼的對比分析圖如圖3 所示,與軟件仿真代碼相比,開發(fā)板代碼主要發(fā)生了兩部分的調(diào)整:①開關(guān)和LED 連接的IO 口發(fā)生變化使得代碼中的變量發(fā)生相應(yīng)變化;②軟件仿真中,開關(guān)的狀態(tài)由P1 口的高4 位檢測,利用“&”運(yùn)算符屏蔽低4 位賦給變量temp,由temp 將高4 位移到低4位,再送到P1 口驅(qū)動LED 點(diǎn)亮。而開發(fā)板中需要將P3 口的低4 位取出,利用“|”運(yùn)算符取出低4位,送到P2口驅(qū)動LED點(diǎn)亮。
圖3 軟件仿真代碼和開發(fā)板代碼的對比分析
學(xué)生分組查閱資料,找到開關(guān)狀態(tài)檢測的實(shí)際問題情境,并通過軟件仿真,將仿真結(jié)果截圖發(fā)到網(wǎng)絡(luò)教學(xué)平臺,實(shí)現(xiàn)舉一反三、鞏固練習(xí)。
案例式教學(xué)方法以學(xué)生為主體,教師引導(dǎo),分層次、分階段地推進(jìn),以傳統(tǒng)教學(xué)為基礎(chǔ),在完成課本實(shí)例基礎(chǔ)上,引入新的問題,引導(dǎo)學(xué)生針對新問題分組討論,嘗試各種解決方法,并在實(shí)踐中培養(yǎng)了舉一反三的能力。本文以開關(guān)狀態(tài)檢測為例進(jìn)行了介紹,實(shí)際教學(xué)中每次課程均采用該教學(xué)方法,學(xué)生均能完成軟件仿真部分,實(shí)驗(yàn)結(jié)果的呈現(xiàn)增強(qiáng)了同學(xué)的專業(yè)自信心,開發(fā)板調(diào)試部分需要同學(xué)分組討論、查閱資料,大部分同學(xué)順利完成程序設(shè)計(jì),并實(shí)現(xiàn)了軟硬件聯(lián)調(diào),這個過程培養(yǎng)了學(xué)生的自主學(xué)習(xí)、團(tuán)隊(duì)協(xié)作、信息檢索和舉一反三能力。課后拓展環(huán)節(jié)給了學(xué)生開放空間,根據(jù)所學(xué)知識去解決實(shí)際問題,可以促進(jìn)學(xué)生創(chuàng)新精神的培養(yǎng)。
案例式教學(xué)方法幫助學(xué)生更容易地學(xué)習(xí)專業(yè)知識,同時提升了他們舉一反三的能力。課前預(yù)習(xí)能夠讓學(xué)生對所學(xué)內(nèi)容大概了解;課中軟件仿真促使學(xué)生將理論應(yīng)用到實(shí)踐,實(shí)驗(yàn)結(jié)果的出現(xiàn)建立學(xué)習(xí)自信,隨后的開發(fā)板調(diào)試,根據(jù)實(shí)際電路調(diào)整代碼并燒寫到開發(fā)板,實(shí)物結(jié)果更加建立專業(yè)自信;最后將所學(xué)知識技能應(yīng)用到實(shí)際生活情景,培養(yǎng)了學(xué)生舉一反三的能力,促進(jìn)了學(xué)生創(chuàng)新精神的培養(yǎng),為后續(xù)課程打下了堅(jiān)實(shí)的基礎(chǔ)。