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

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

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

圖3 A/D轉(zhuǎn)換和SPI總線接口的仿真電路

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

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

表2 2019學(xué)年教學(xué)班卷面成績統(tǒng)計

表3 2020學(xué)年教學(xué)班卷面成績統(tǒng)計

表4 學(xué)生完成實驗平均用時統(tǒng)計

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