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

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

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

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