廣西大學 聶 雄
針對電子信息類專業單片機課程的教學現狀,將Proteus仿真軟件引入“微機原理與單片機應用”課程教學環節,改革現有教學方法和手段,改善課程的教學效果。實踐表明,采用仿真軟件輔助教學,能提高學生的學習興趣,鍛煉和提升學生的單片機編程設計能力。
微機原理與單片機應用課程是電子通信類專業的基礎核心課程,該課程與已經開設的電路分析、模擬電路和數字電路等單純硬件系統的課程不同,它是硬件電路與軟件設計相結合的,兩者缺一不可,課堂上單純的介紹理論知識,學生感覺抽象難懂,且較為枯燥。雖然安排有實驗環節,但受課時安排和設備數量等因素的限制,理論課和實驗課還是存脫節現象。因此,將實踐教學和理論教學相結合是必然的選擇。然而,傳統的教學存在以下問題:
1)課時分配不合理,理論課時相對較多,實驗課時較少,學生動手能力難于提高。以我校為例,課程總學時56,理論學時44,實驗學時12,通常每個實驗至少2個學時,最多能安排6個實驗。對于單片機這種實踐性很強的課程來而言,12個實驗學時遠遠不夠,但由于該課程理論課教學內容也很多,又不能通過減少理論課時來增加實驗課時。
2)教學手段單一,沒有充分利用仿真軟件等進行動態教學演示和實例分析。老師課堂上僅使用PPT投影方式進行教學,難于激發學生的學習興趣。
3)理論教學和實驗教學較為脫節,不夠連貫。由于實驗設備數量有限,為了做到一人一臺設備,一個班學生通過要分成幾批安排實驗,時間上要拉長,無法做到理論課講完一個內容,接著安排對應的實驗。而且實驗課時較少,無法做到每個教學內容都安排實驗。
4)實驗場所較為固定,開放時間也都是有限制,因而學生參與實驗受到時間和空間的限制,不能靈活安排。
針對上述存在的問題,我們在教學上引入了Proteus仿真軟件平臺。課堂教學中,在IO端口、數碼管顯示、定時器/計數器、中斷和外設總線等教學內容中增加Proteus虛擬仿真環節,使學生在學習單片機理論知識時,也能生動形象地了解單片機的動態工作過程和運行結果,克服傳統方式下教學手段單一、理論和實踐脫節等問題,同時提高了學生學習的興趣。在實驗教學中,引入Proteus虛擬仿真平臺后,學生可在自己個人計算機上安裝了Proteus軟件,在到實驗室上實驗課之前,可以自己先用Proteus軟件對實驗內容進得仿真,實驗課時再通過實際的單片機實驗設備進一步驗證仿真結果,仿真過程不受實驗室開放時間和實驗設備數量的限制,有效的打破傳統教學方式下實踐環節受時間和空間限制的問題。引入Proteus虛擬仿真平臺后,學生可以在學習理論課內容后,課余時間自主完成該內容對應的仿真實驗,能有效彌補實驗課時不足問題,能效避免理論教學與實踐教學的脫節問題。
Proteus是英國Labcenter Electronics公司開發的一款EDA工具軟件,它支持眾多的模擬和數字元器件仿真,特別是支持8051、ARM7和MSP430等多種處理器,可實現代碼調試到處理器與外圍電路的協同仿真。同時支持字符型LCD模塊、圖形LCD模塊、LED點陣、數碼管、電機和鍵盤等外部設備仿真。支持IAR、Keil和ICCAVR等多種編譯生成的機器碼文件的調試。Proteus內置的仿真儀表資源眾多,包括示波器、信號發生器、邏輯分析儀、虛擬終端和SPI調試器等。在此平臺上可開展模擬電路、數字電路、單片機等多種課程的教學和實驗,可有效解決單片機教學中前述提到的相關問題。
微機原理與單片機應用課程以51單片機為基礎進行教學,教學內容豐富,我們從中選取了IO端口、外部中斷、定時器、數碼管顯示及SPI總線等幾個比較基礎的、較為抽象的內容,在課堂教學時,使用對應的仿真電路,進行虛擬仿真演示,這種方式比使用開發板實物進行演示更為直觀。
IO端口和外部中斷的仿真使用圖1所示電路,單片機為AT89S52,圖中P1.7外接LED發光二極管,可用IO端口輸出測試,電路中P3.2外接按鍵開關,可作為IO端口輸入測試,同時P3.2第二功能為外部中斷輸入引腳,可用作外部中斷功能測試。內部IO端口是學生接觸到的第一個功能模塊,雖然編程很簡單,但對于首次接觸單片機這類硬件軟件相結合器件的學生,還是較為抽象的,特別是當IO端口作為輸入時,有個關鍵的知識點:“IO端口引腳作為輸入使用時,必須先將端口鎖存器置1,才能正確讀取外部引腳狀態”,通過理論講解,再結合仿真演示,就能理解和掌握。

圖1 IO端口和外部中斷的仿真電路
教師講解中斷內容時,使用圖1電路進行中斷功能仿真。軟件設計時先對P3.2進行中斷的初始化,并編寫外部中斷INT0的中斷服務程序,控制P1.7外接LED亮或滅,來觀察外部中斷的工作狀態。
在學習數碼管顯示相關內容時,使用圖2所示的電路進行仿真測試。通過軟件控制P2或P0端口,逐個點亮數碼管的每個筆畫,以了解其對應關系;在講解段碼表時,可以演示段碼值與顯示字符的對應關系。

圖2 定時器/計數器和數碼管顯示的仿真電路
在講解定時器模塊時,定時器內部邏輯比較抽象,但通過仿真可以把定時器的定時狀態用數碼管顯示出來。對于定時時間為ms或us級別的,則在電路中添加虛擬示波器來觀察定時時間。把抽象的定時功能通過示波器直觀的顯示出來。在仿真計數器功能時,P3.4作為外部計數脈沖的輸入信號控制端,每按一次P3.4外接按鍵,內部計數器加1,通過數碼管直接顯示出來,原來枯燥的內容可變得形象生動。
在學習A/D轉換和SPI總線接口這兩部分內容時,使用圖3的電路來進行仿真測試。51單片機沒有集成硬件SPI,只能通過IO端口軟件模塊SPI總線。圖中,U2的ADC0832的SPI信號與單片機的P3口部分引腳相連接,編程時,將P3.2、P3.4、P3.5和P3.6等IO端口軟件模擬SPI接口。仿真時,對SPI信號設置電壓探測點,通過虛擬邏輯分析儀捕捉SPI接口通信時序信號。圖4所示為ADC0832仿真時的總線時序信號。

圖3 A/D轉換和SPI總線接口的仿真電路

圖4 ADC0832時序信號
在圖3中P2口外接LCD顯示模塊數據總線,P1.3~P1.5分別連接顯示模塊的RS、RW和E控制線,實現A/D轉換結果的實時顯示,調節RV1改變ADC0832的CH0輸入電壓,通過LCD顯示模塊觀察A/D轉換測量結果。
虛擬仿真平臺可應用到實驗教學中。具體方法為:實驗課前,學生先閱讀和理解實驗內容與要求,然后參考實驗講義上的原理圖,利用Proteus設計該實驗的仿真電路,接著編寫程序,并進行仿真調試。到實驗課時,學生已經熟悉電路結構,軟件也基本編寫好,此時在實驗板上進行實驗就順利得多,即使是基礎比較差的學生,在老師的指導下,也有足夠的時間完成實驗。單片機實驗項目與學時如表1所示。

表1 單片機實驗項目與學時
2020學年開始將Proteus虛擬仿真軟件應用于單片機課程的教學,為觀察課程教學改革的成效,我們將2019學年和2020學年教學班的卷面成績、學生完成實驗用時、提前完成實驗的人數等數據進行統計分析,結果如表2~表5所示。

表2 2019學年教學班卷面成績統計

表3 2020學年教學班卷面成績統計

表4 學生完成實驗平均用時統計

表5 學生提前完成實驗人數統計
從統計結果看,與2019學年相比,2020學年教學班的卷面不及格人數減少1人,良好和優秀的人數增加6人,卷面平均分增加3.28分,學生完成各個實驗平均用時明顯減少,提前完成實驗的人數明顯增加。
實踐表明,通過將Proteus虛擬仿真軟件應用于“微機原理與單片機應用”的理論教學和實驗教學環節,能有效的解決理論與實驗相脫節的問題,避免因實驗學時較少而造成學生動手能力不足問題,提高了學生的學習興趣,教學效果得到明顯改善。