王麗芳 李雅潔
湖北鐵道運(yùn)輸職業(yè)學(xué)院(武漢鐵路技師學(xué)院) 湖北武漢 430064
單片機(jī)應(yīng)用技術(shù)是職業(yè)院校中應(yīng)用電子技術(shù)、機(jī)電一體化、電子信息等專業(yè)的一門核心課程,需要電子技術(shù)、C語言等知識(shí)為基礎(chǔ),也作為后續(xù)專業(yè)課程的敲門磚,在課程教學(xué)體系中起著承上啟下的重要作用,還是各類職業(yè)競(jìng)賽電子項(xiàng)目中經(jīng)常使用的工具。從以往學(xué)習(xí)的51單片機(jī),到現(xiàn)在被大眾所認(rèn)可的具有高性能、低功耗等頗多優(yōu)點(diǎn)的STM32單片機(jī),單片機(jī)課程學(xué)習(xí)的內(nèi)容發(fā)生了較大的變化,那么教學(xué)模式的轉(zhuǎn)變就成為我們必須思考的一個(gè)問題。與傳統(tǒng)的以單片機(jī)實(shí)驗(yàn)系統(tǒng)或開發(fā)板學(xué)習(xí)為主的教學(xué)模式不同,本文主要探究基于開發(fā)軟件的單片機(jī)教學(xué)模式,熟練使用單片機(jī)的各類開發(fā)軟件能讓我們?cè)趯W(xué)習(xí)中達(dá)到事半功倍的效果。
與傳統(tǒng)的理論教學(xué)方式不同,單片機(jī)技術(shù)是一門實(shí)踐性要求較高的課程,本課程要求學(xué)生能完成基本的硬件電路設(shè)計(jì)以及熟練掌握單片機(jī)的C語言編程,學(xué)生不僅需要掌握扎實(shí)的理論知識(shí),還要有熟練的動(dòng)手能力。日新月異更新的技術(shù)和新的單片機(jī)出現(xiàn)使得教師不僅要及時(shí)更新知識(shí)儲(chǔ)備,對(duì)實(shí)驗(yàn)設(shè)備的要求也更高,在實(shí)驗(yàn)設(shè)備的配置上不僅需要滿足基礎(chǔ)知識(shí)學(xué)習(xí),還要滿足課程設(shè)計(jì)、電子競(jìng)賽訓(xùn)練等多種功能需求。
1.實(shí)驗(yàn)設(shè)備問題
單片機(jī)實(shí)驗(yàn)室常用配置通常有三種。第一種是綜合實(shí)驗(yàn)仿真系統(tǒng),它具有可靠性強(qiáng)、搭建硬件電路方便的特點(diǎn),但它往往都是半成品,芯片、擴(kuò)展和外設(shè)已經(jīng)焊接好了固定不變,只能在其基礎(chǔ)之上搭建一些常用的實(shí)驗(yàn)電路,僅能用作基礎(chǔ)教學(xué)使用,并且一套完整的綜合實(shí)驗(yàn)仿真系統(tǒng)普遍價(jià)格較高,通常無法做到單人單機(jī);第二種是用萬用板焊接實(shí)驗(yàn)電路,然后編寫程序,下載到電路中,觀察電路的運(yùn)行狀態(tài),這種模式對(duì)于學(xué)習(xí)單片機(jī)硬件電路具有較好的效果,但對(duì)于硬件電路基礎(chǔ)要求較高;第三種是單片機(jī)開發(fā)板單片機(jī)開發(fā)板價(jià)格較便宜,但預(yù)先要花大量時(shí)間來學(xué)習(xí)開發(fā)板的底層電路原理,不適用于基礎(chǔ)教學(xué)。
2.教學(xué)過程問題
在課堂教學(xué)中,學(xué)生通過教師親身直觀的演示,可以快速地在頭腦里留下深刻的印象,但是在以開發(fā)板或?qū)嶒?yàn)仿真系統(tǒng)作為實(shí)驗(yàn)設(shè)備來進(jìn)行教學(xué)演示時(shí),由于課堂條件的限制,很難將具體的實(shí)驗(yàn)過程及現(xiàn)象呈現(xiàn)給學(xué)生,并且難以顧及每個(gè)學(xué)生的情況,可能會(huì)造成學(xué)生寫錯(cuò)程序或操作失誤燒壞實(shí)驗(yàn)設(shè)備的情況,這樣會(huì)大大降低教學(xué)質(zhì)量,也使得學(xué)生在學(xué)習(xí)的過程中產(chǎn)生挫敗感。
傳統(tǒng)的單片機(jī)實(shí)踐教學(xué)環(huán)節(jié)必須在實(shí)驗(yàn)室里用指定的實(shí)驗(yàn)設(shè)備完成,如果實(shí)驗(yàn)室資源不足,就會(huì)使我們的教學(xué)陷入被動(dòng)。而用仿真軟件僅需一臺(tái)電腦即可實(shí)現(xiàn)硬件電路的搭建,再用編程軟件編寫程序?qū)敕抡孳浖涂梢栽诜抡娲翱诳吹綄?shí)驗(yàn)現(xiàn)象,也可以隨時(shí)根據(jù)實(shí)驗(yàn)現(xiàn)象在線修改硬件電路或者程序。在實(shí)際操作上,可減少對(duì)實(shí)驗(yàn)設(shè)備的依賴性。
采用綜合仿真平臺(tái)或者開發(fā)板作為實(shí)踐教學(xué)的工具,教師在進(jìn)行教學(xué)演示和指導(dǎo)中會(huì)遇到諸多困難,而采用仿真軟件教師在多媒體教室里面可以通過控制學(xué)生電腦桌面進(jìn)行演示和指導(dǎo)。在實(shí)際教學(xué)中,這種方式能達(dá)到更好的教學(xué)效果,并且在學(xué)生課后學(xué)習(xí)遇到困難時(shí),也可以通過遠(yuǎn)程桌面幫助學(xué)生解決實(shí)際問題。
用開發(fā)軟件學(xué)習(xí)單片機(jī)不僅有利于學(xué)生的硬件電路原理的學(xué)習(xí),還可以提高學(xué)生軟件操作的能力,并且在實(shí)際教學(xué)中,應(yīng)盡可能要求學(xué)生使用原版軟件而非漢化版軟件,更多地使用英文界面的軟件可以提高學(xué)生的專業(yè)英文水平,為后續(xù)學(xué)習(xí)其他開發(fā)軟件或者專業(yè)的應(yīng)用軟件打下基礎(chǔ)。
以單片機(jī)最小系統(tǒng)的設(shè)計(jì)與仿真為例,單片機(jī)最小系統(tǒng)是指僅包含必需的元器件、僅可運(yùn)行最基本軟件的簡(jiǎn)化系統(tǒng)。最小系統(tǒng)是嵌入式系統(tǒng)硬件設(shè)計(jì)中復(fù)用率最高,也是最基本的功能單元。單片機(jī)最小系統(tǒng)的設(shè)計(jì)與仿真是單片機(jī)教學(xué)的一個(gè)典型學(xué)習(xí)任務(wù)。任務(wù)過程如下:
Proteus仿真軟件是英國(guó)Lab Center Electronics公司出版的EDA(仿真)工具軟件,是目前應(yīng)用最廣泛且最優(yōu)秀的單片機(jī)及外圍器件工具的仿真軟件之一。它不僅能仿真單片機(jī)外圍電路或沒有單片機(jī)的其他電子電路的工作情況,還能從工程的角度驗(yàn)證程序運(yùn)行和電路工作的過程和結(jié)果,可以改善課堂實(shí)踐和工程應(yīng)用脫節(jié)的現(xiàn)象。在實(shí)際教學(xué)中,應(yīng)用Proteus仿真軟件具有以下優(yōu)點(diǎn):第一,Proteus仿真軟件有豐富的內(nèi)部資源,提供了多達(dá)三十多個(gè)元件庫(kù),數(shù)千種不同種類、不同規(guī)格的元件可供選擇,支持大部分STM32單片機(jī)芯片,且自帶的編譯軟件能夠自動(dòng)識(shí)別目前大眾比較認(rèn)可的Keil MDK編程軟件,還向用戶提供了友好的仿真調(diào)試界面。第二,Proteus仿真軟件具有較強(qiáng)的靈活性,在理論教學(xué)中,根據(jù)講授的理論知識(shí)靈活地搭建實(shí)驗(yàn)電路,用數(shù)碼管、LED等虛擬顯示元件和虛擬示波器作為輔助,將一些復(fù)雜且抽象的理論知識(shí)用仿真平臺(tái)生動(dòng)形象地呈現(xiàn)給學(xué)生。第三,Proteus仿真軟件具有較強(qiáng)的實(shí)踐性,在實(shí)踐教學(xué)中,如果用焊接的方式組建實(shí)驗(yàn)電路,在學(xué)生不熟悉電路時(shí)會(huì)經(jīng)常出現(xiàn)結(jié)果與預(yù)期不符的情況,不斷出現(xiàn)問題和拆改硬件電路還會(huì)造成資源的浪費(fèi)。而用Proteus仿真軟件可以輕松在線修改電路,給學(xué)生留出了充分的時(shí)間對(duì)實(shí)驗(yàn)中出現(xiàn)的問題進(jìn)行分析和思考,提出改進(jìn)措施,促進(jìn)學(xué)生對(duì)實(shí)驗(yàn)電路原理和實(shí)驗(yàn)過程的內(nèi)化。實(shí)際教學(xué)中,經(jīng)過教師的指導(dǎo),學(xué)生通常能夠完成在Proteus仿真軟件里創(chuàng)建工程、搜索芯片和元件、電源配置和一些基本連線,可以獨(dú)立繪制出單片機(jī)最小系統(tǒng),如圖1所示。

圖1 Proteus繪制單片機(jī)最小系統(tǒng)圖
STM32CubeMX是ST意法半導(dǎo)體近幾年推出的STM32芯片圖形化配置工具,它主要用來做單片機(jī)接口定義、外設(shè)定義、時(shí)鐘配置、系統(tǒng)配置等。配置界面采用直觀的圖形化設(shè)置,配置完成后直接生成初始化代碼導(dǎo)成C語言格式文件,減少在編程軟件中編寫接口定義、外設(shè)定義等各類煩瑣的定義程序,可以較大程度縮短開發(fā)時(shí)間,提高開發(fā)的效率。在實(shí)際教學(xué)中,單片機(jī)編程的學(xué)習(xí)一直是個(gè)棘手的問題,傳統(tǒng)的單片機(jī)編程實(shí)踐教學(xué)都是以寄存器編程或使用標(biāo)準(zhǔn)庫(kù)編程,需要花費(fèi)較多時(shí)間查閱STM32的數(shù)據(jù)手冊(cè),尋找對(duì)應(yīng)寄存器的地址,這個(gè)過程煩瑣且容易出錯(cuò),定義的程序?qū)W生大多也難以理解,通常只能死記硬背。而STM32CubeMX圖形化配置軟件能解決這個(gè)難題,更大程度上鍛煉學(xué)生編程的能力。STM32CubeMX圖形化配置軟件界面如圖2所示。

圖2 STM32CubeMX配置界面
Keil MDK編程軟件是德國(guó)知名軟件公司Keil(現(xiàn)已并入ARM公司)開發(fā)的基于ARM內(nèi)核的微控制器軟件開發(fā)平臺(tái),是目前ARM內(nèi)核單片機(jī)開發(fā)的主流工具,Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)函數(shù)管理和一個(gè)功能完備的仿真調(diào)試器在內(nèi)的完整開發(fā)方案,編程調(diào)試界面友好,用Keil MDK編程軟件編寫的程序編譯成HEX代碼文件可以很方便地在Proteus仿真軟件里進(jìn)行仿真。STM32CubeMX生成的C代碼文件直接用Keil MDK編程軟件打開,如圖3所示,可以看到定義好的配置文件,在此基礎(chǔ)之上編寫用戶程序,編寫完成后生成HEX文件導(dǎo)入Proteus仿真軟件觀察實(shí)驗(yàn)現(xiàn)象。

圖3 Keil MDK編程界面
通過新的教學(xué)模式探索,在我校單片機(jī)課程的實(shí)際教學(xué)中起到了明顯的作用,教學(xué)效率和質(zhì)量得到了明顯的提高,只需要電腦和一整套開發(fā)軟件就可以進(jìn)行實(shí)時(shí)在線仿真和調(diào)試,有助于培養(yǎng)學(xué)生通過不斷學(xué)習(xí)解決實(shí)際問題的能力。同時(shí)這種新的教學(xué)模式也給我們一個(gè)啟示,科技和技術(shù)在不斷進(jìn)步,我們也要緊跟時(shí)代潮流,多學(xué)習(xí)新的知識(shí),不僅有助于鍛煉教師的教學(xué)能力和學(xué)生的學(xué)習(xí)能力,也盡可能避免了學(xué)生在學(xué)校學(xué)習(xí)的知識(shí)與踏入社會(huì)后的實(shí)際應(yīng)用脫節(jié)的現(xiàn)象。