江蘇大學(xué)電氣信息工程學(xué)院 王照偉 王 博 陳 前
本文針對《單片機(jī)原理及應(yīng)用》課程實踐性強(qiáng)、知識點多但邏輯關(guān)聯(lián)性弱、過于抽象等特點,立足于自動化專業(yè)創(chuàng)新型、實踐型、知識型復(fù)合人才培養(yǎng)目標(biāo),基于項目驅(qū)動理念,重新構(gòu)建教學(xué)內(nèi)容,將理論教學(xué)與實踐教學(xué)有機(jī)結(jié)合,優(yōu)化教學(xué)過程,增強(qiáng)學(xué)生學(xué)習(xí)的主觀能動性,解決了傳統(tǒng)教學(xué)模式重理論輕實踐、理論與實踐結(jié)合不夠緊密的問題。教學(xué)實踐結(jié)果表明,學(xué)生應(yīng)用性和創(chuàng)新性能力得到顯著提高,專業(yè)知識體系得到了完善。
《單片機(jī)原理及應(yīng)用》課程是自動化專業(yè)的一門專業(yè)基礎(chǔ)核心課程,是理論基礎(chǔ)課程走向工程實踐應(yīng)用的橋梁,在自動化專業(yè)課程教學(xué)中起著重要的銜接作用。課程內(nèi)容包括單片機(jī)工作原理、硬件結(jié)構(gòu)、外圍接口、匯編/C51語言程序設(shè)計、應(yīng)用系統(tǒng)開發(fā)等,涉及數(shù)字電路、模擬電路、微機(jī)原理、C語言編程等先修課程,呈現(xiàn)出知識點多、分散、關(guān)聯(lián)性弱等特點。傳統(tǒng)教學(xué)過程中,多采用專業(yè)理論知識講授先行、課程設(shè)計實踐集中教學(xué)后之的方式。但因?qū)W生缺乏實際的開發(fā)經(jīng)驗和應(yīng)用背景,對于抽象的單片機(jī)硬件結(jié)構(gòu)和工作原理、枯燥的程序語言,往往隨著課程的推進(jìn),其學(xué)習(xí)興趣逐漸喪失。加之課時壓縮、學(xué)生課后學(xué)習(xí)主動性不足、課程前后知識點邏輯性差等,學(xué)生學(xué)習(xí)效果并不好。雖然通過集中復(fù)習(xí),學(xué)生也可通過課程終結(jié)性考核,但在后續(xù)課程設(shè)計環(huán)節(jié)的知識點擴(kuò)展應(yīng)用時,就會暴漏出對于關(guān)鍵知識點掌握嚴(yán)重不足的問題。
《單片機(jī)原理及應(yīng)用》的課程目標(biāo)是使學(xué)生在理解單片機(jī)基本結(jié)構(gòu)與工作原理的基礎(chǔ)上,掌握單片機(jī)應(yīng)用系統(tǒng)的軟、硬件開發(fā)能力,為學(xué)生畢業(yè)后從事控制工程的計算機(jī)檢測與控制、智能儀表、運(yùn)動控制等相關(guān)工作奠定理論與實踐基礎(chǔ)。傳統(tǒng)教學(xué)方式側(cè)重于以教師為主導(dǎo)的單片機(jī)相關(guān)基礎(chǔ)理論知識的講授,缺乏學(xué)生參與的主觀性引領(lǐng)教學(xué),課程實踐與理論教學(xué)銜接關(guān)系薄弱,造成學(xué)生在課程結(jié)束后獲得的能力不能有效達(dá)到既定教學(xué)目標(biāo)。針對《單片機(jī)原理及應(yīng)用》課程的特點,我們立足于課程目標(biāo)達(dá)成,結(jié)合新時代單片機(jī)應(yīng)用實例,基于項目驅(qū)動重構(gòu)課程教學(xué)內(nèi)容,寓教于學(xué),激發(fā)學(xué)生的學(xué)習(xí)興趣,進(jìn)一步培養(yǎng)學(xué)生的創(chuàng)新性思維和解決實際控制問題的能力。
傳統(tǒng)側(cè)重于理論教學(xué)、以教師引導(dǎo)為主的講授過程,立足于選定教材,通過PPT、板書等形式講解理論知識,按照教材章節(jié)安排順序講授單片機(jī)的基本結(jié)構(gòu)與工作原理、指令系統(tǒng)、程序設(shè)計、外圍接口芯片擴(kuò)展、應(yīng)用系統(tǒng)開發(fā)等知識。但過于抽象的概念、知識體系的邏輯性差、脫離課程實踐的關(guān)聯(lián),學(xué)生學(xué)習(xí)難度大、聽課過程枯燥,進(jìn)一步造成其無法深入理解相關(guān)知識點。
項目驅(qū)動教學(xué)方法通過設(shè)計完整的學(xué)習(xí)情境,將理論與實踐互聯(lián),重新構(gòu)建教學(xué)內(nèi)容,通過實際的應(yīng)用范例將知識點嵌入到項目功能實現(xiàn)中。課程知識不再是空中樓閣,而是可看、可觸、可控。教師通過設(shè)置問題“What”、“Why”、“How”,引導(dǎo)學(xué)生層層推進(jìn)知識的應(yīng)用,激發(fā)學(xué)生的學(xué)習(xí)興趣,將教師的被動講授變?yōu)閷W(xué)生的主動學(xué)習(xí)。在學(xué)習(xí)過程中,學(xué)生不再是漫無目的學(xué)習(xí),而是帶著實踐任務(wù)去學(xué)習(xí),提高了解決實際工程問題的能力。
江蘇大學(xué)自動化專業(yè)旨在培養(yǎng)專業(yè)知識扎實、富有創(chuàng)新能力、具有國際視野的復(fù)合型人才。具體到《單片機(jī)原理及應(yīng)用》課程,則期望通過該課程的深入學(xué)習(xí),激發(fā)學(xué)生科技報國的家國情懷和使命擔(dān)當(dāng),使學(xué)生具備精益求精的大國工匠精神和百折不撓的抗挫能力。
此外,要求掌握單片機(jī)的基本結(jié)構(gòu)和工作原理,包括I/O口、定時器/計數(shù)器、串行接口、中斷系統(tǒng)、存儲系統(tǒng)等工作原理和應(yīng)用方法;掌握單片機(jī)的程序設(shè)計方法,涉及存儲器擴(kuò)展、并行接口的擴(kuò)展、A/D接口、D/A接口等設(shè)計和編程方法;掌握單片機(jī)鍵盤接口、LED顯示器接口、LCD接口等工作原理和編程方法,如圖1所示。
圖1 《單片機(jī)原理及應(yīng)用》課程目標(biāo)及知識結(jié)構(gòu)
在此基礎(chǔ)之上,進(jìn)一步掌握基本的單片機(jī)應(yīng)用系統(tǒng)軟、硬件設(shè)計過程和技巧,以及基本方法和常用接口的使用方法;能夠針對自動控制系統(tǒng)的特定需求,分析關(guān)鍵環(huán)節(jié)和參數(shù)的作用,開發(fā)、設(shè)計硬件系統(tǒng)和軟件程序。達(dá)到能夠使用單片機(jī)的相關(guān)知識對目標(biāo)系統(tǒng)方案進(jìn)行分析、判斷和評價的能力。同時具備自主拓展學(xué)習(xí)、可創(chuàng)造性解決工程實踐問題的能力。
課程目標(biāo)明確要求教師在教學(xué)過程中要注重培養(yǎng)學(xué)生的實際工程應(yīng)用能力,寓用于教、寓教于樂,加強(qiáng)學(xué)生對單片機(jī)軟、硬件結(jié)構(gòu)分析和設(shè)計的掌握和認(rèn)識,夯實進(jìn)一步學(xué)習(xí)ARM嵌入式系統(tǒng)、人工智能、過程控制等相關(guān)專業(yè)課程的基礎(chǔ)。
如圖1所示,項目驅(qū)動教學(xué)方法著力于培養(yǎng)學(xué)生軟硬件設(shè)計、關(guān)鍵環(huán)節(jié)和參數(shù)分析與設(shè)計的自動控制系統(tǒng)工程設(shè)計開發(fā)能力。在實踐教學(xué)中,課程團(tuán)隊從實際案例出發(fā),采用自頂向下的步驟,重新組織教學(xué)內(nèi)容。課程以嵌入式應(yīng)用系統(tǒng)開發(fā)流程為起點,從具體的硬件功能設(shè)計到抽象的軟件系統(tǒng)分析,將實踐與理論充分融合,緊扣培養(yǎng)學(xué)生實踐能力的目標(biāo),具體實施過程如下。
課程開始,通過項目案例,分析具體的嵌入式應(yīng)用系統(tǒng)開發(fā)流程,包括明確系統(tǒng)任務(wù)需求;設(shè)計硬件電路,以及元器件選擇;基于硬件基礎(chǔ)和應(yīng)用需求編寫軟件控制系統(tǒng);軟硬件調(diào)試,完成功能設(shè)計。
以“履帶式機(jī)器人循跡控制”為例,向?qū)W生講授完整的嵌入式應(yīng)用系統(tǒng)開發(fā)實現(xiàn)所涉及到的單片機(jī)相關(guān)知識,包括“What(單片機(jī)是什么?)”,奠定學(xué)生的單片機(jī)概念,與微機(jī)原理課程做出有效區(qū)分,避免學(xué)生對二者產(chǎn)生混亂;“Why(為什么學(xué)習(xí)單片機(jī)?)”,從就業(yè)、高端電子技術(shù)的學(xué)習(xí)等角度引導(dǎo)學(xué)生進(jìn)一步深入理解課程學(xué)習(xí)目標(biāo);“How(怎么學(xué)習(xí)單片機(jī)?)”,涉及硬件電路設(shè)計、軟件系統(tǒng)設(shè)計、集成開發(fā)環(huán)境使用等知識點,為學(xué)生學(xué)習(xí)后續(xù)課程知識奠定初步基礎(chǔ)。
以“循跡控制”為例,其硬件結(jié)構(gòu)組成主要包括單片機(jī)控制板、傳感器模塊、電機(jī)驅(qū)動模塊等,功能實現(xiàn)流程為:由傳感器模塊智能探測路線,并向單片機(jī)控制板輸出感知信號;單片機(jī)控制版基于收到的感知信息,向電機(jī)驅(qū)動模塊輸出命令,從而控制履帶的運(yùn)轉(zhuǎn)速度和方向,實現(xiàn)機(jī)器人智能循跡。在此過程中,引導(dǎo)學(xué)生學(xué)習(xí)掌握單片機(jī)的內(nèi)部結(jié)構(gòu)組成,并熟練使用相關(guān)模塊。
單片機(jī)內(nèi)部結(jié)構(gòu)要與芯片內(nèi)部實際的物理結(jié)構(gòu)和布局區(qū)分開,從應(yīng)用角度展開進(jìn)行講授,引導(dǎo)學(xué)生通過開發(fā)者的視角來學(xué)習(xí)。同時,單片機(jī)硬件結(jié)構(gòu)的學(xué)習(xí)則應(yīng)從外到內(nèi)逐步展開,其外圍引腳可分為電源、時鐘、控制和I/O等四大類,其分類可用于學(xué)習(xí)其他同類型芯片的引腳。通過引腳的學(xué)習(xí),近一步延伸到單片機(jī)內(nèi)部結(jié)構(gòu),包括:用于存儲數(shù)據(jù)、指令的程序/數(shù)據(jù)存儲器;與外圍芯片連接的I/O口;串行通信口;定時/計數(shù)器;中斷系統(tǒng)等。需要注意,內(nèi)部結(jié)構(gòu)和外圍引腳互聯(lián)互通,二者之間的學(xué)習(xí)需要緊密聯(lián)系起來。
在“履帶機(jī)器人循跡控制”項目開發(fā)中,單片機(jī)開發(fā)板需要提供傳感器接口、舵機(jī)接口。此外,為了豐富其功能,還提供了藍(lán)牙接口、紅外接口、按鍵接口、手柄接口等。以51單片機(jī)為例,其提供了32根I/O引腳線,其中P0口和P2口一般多作為地址線和數(shù)據(jù)線,P3口為控制線,可用于外圍硬件使用的只有P1口。因此,基于單片機(jī)構(gòu)成的最小應(yīng)用系統(tǒng)往往不能滿足實際的應(yīng)用需求,在實際應(yīng)用中,經(jīng)常需要擴(kuò)展單片機(jī)硬件接口。
布置硬件接口擴(kuò)展任務(wù),引導(dǎo)學(xué)生對比學(xué)習(xí)單片機(jī)硬件接口的擴(kuò)展,其中需要擴(kuò)展的硬件包括程序存儲器ROM、數(shù)據(jù)存儲器RAM、數(shù)/模和模/數(shù)(D/A和A/D)轉(zhuǎn)換、并行接口、鍵盤、LED/LCD顯示器等接口芯片。在外圍芯片擴(kuò)展時,通過三總線結(jié)構(gòu)實現(xiàn)外圍芯片與單片機(jī)芯片的互聯(lián),其中P0口和P2口構(gòu)成地址總線,P0口復(fù)用為數(shù)據(jù)總線,P3口復(fù)用控制線和單片機(jī)獨(dú)立控制線一起構(gòu)成控制總線。
運(yùn)行于單片機(jī)硬件平臺上的軟件系統(tǒng),是硬件功能的支撐,提供了系統(tǒng)運(yùn)行的操作系統(tǒng)以及單片機(jī)與外部設(shè)備通信的功能。軟件與硬件相輔相成,共同構(gòu)成完整的單片機(jī)應(yīng)用系統(tǒng)。軟件編程流程包括分析問題明確功能需求、確定算法并繪制程序流程圖、編制源程序、程序調(diào)試。在“智能循跡”控制中,需要首先明確檢測以及控制邏輯算法,在此基礎(chǔ)上基于Keil開發(fā)工具編寫源程序。
在授課過程中需要重點提醒學(xué)生,程序的編寫離不開硬件的支持。硬件平臺變化,程序設(shè)計也要做出相應(yīng)調(diào)整。而一段完整的程序由一條條指令組成,指令的執(zhí)行包括取指令、指令譯碼、取數(shù)據(jù)執(zhí)行、存結(jié)果。其中,如何存儲、查找數(shù)據(jù)是指令執(zhí)行的關(guān)鍵,因此,需要重點講解指令和數(shù)據(jù)的存儲,即尋址方式。同時根據(jù)功能需求,指導(dǎo)學(xué)生設(shè)計順序程序、分支程序、循環(huán)程序或子程序。而程序的編寫離不開編程語言的支持,常用的編程語言有匯編語言和C51語言。
最后,鑒于學(xué)生已完成課程理論學(xué)習(xí)和初步實踐項目開發(fā),利用“履帶機(jī)器人”開發(fā)平臺提供的單片機(jī)最小應(yīng)用系統(tǒng)及外圍功能擴(kuò)展模塊,設(shè)置多個綜合能力提升課題。將課堂延伸至課下,其目的在于提高學(xué)生的主動學(xué)習(xí)、團(tuán)隊合作、創(chuàng)新實踐等能力。
首先,通過網(wǎng)絡(luò)提供相關(guān)的技術(shù)資料,讓學(xué)生提前自主學(xué)習(xí),鍛煉其資料查閱能力。在課堂上,學(xué)生3人一組自由組隊,自行討論設(shè)計課題方案。教師需關(guān)注每組方案設(shè)計的進(jìn)展與正確性,進(jìn)行啟發(fā)式教學(xué)。其次,學(xué)生根據(jù)方案思路,設(shè)計硬件和軟件系統(tǒng),并進(jìn)行系統(tǒng)功能調(diào)試。最后,學(xué)生進(jìn)行小組答辯和功能展示。在教學(xué)過程中,教師應(yīng)引導(dǎo)學(xué)生充分發(fā)揮創(chuàng)新性思維,方案設(shè)計不拘一格,不限于已學(xué)習(xí)的知識。學(xué)生則利用網(wǎng)絡(luò)、課堂、MOOC等多種途徑查詢資料,完成方案設(shè)計和功能演示。
本課程通過采用項目驅(qū)動教學(xué)理念,使得《單片機(jī)原理及應(yīng)用》課程教學(xué)內(nèi)容與項目案例有機(jī)結(jié)合,課程內(nèi)容各知識模塊的層次和邏輯更加清晰,變抽象的知識學(xué)習(xí)為具體的實例教學(xué),進(jìn)一步加深了學(xué)生對理論知識的理解。同時,動態(tài)交互式教學(xué)模式提高了學(xué)生的參與度,激發(fā)了學(xué)生的學(xué)習(xí)興趣。從課后調(diào)研情況看,學(xué)生的實踐能力、創(chuàng)新能力得到了顯著提高,對于知識的掌握和理解也有了明顯提升。