廣西大學(xué) 聶 雄
針對(duì)電子信息類專業(yè)單片機(jī)課程的教學(xué)現(xiàn)狀,將Proteus仿真軟件引入“微機(jī)原理與單片機(jī)應(yīng)用”課程教學(xué)環(huán)節(jié),改革現(xiàn)有教學(xué)方法和手段,改善課程的教學(xué)效果。實(shí)踐表明,采用仿真軟件輔助教學(xué),能提高學(xué)生的學(xué)習(xí)興趣,鍛煉和提升學(xué)生的單片機(jī)編程設(shè)計(jì)能力。
微機(jī)原理與單片機(jī)應(yīng)用課程是電子通信類專業(yè)的基礎(chǔ)核心課程,該課程與已經(jīng)開(kāi)設(shè)的電路分析、模擬電路和數(shù)字電路等單純硬件系統(tǒng)的課程不同,它是硬件電路與軟件設(shè)計(jì)相結(jié)合的,兩者缺一不可,課堂上單純的介紹理論知識(shí),學(xué)生感覺(jué)抽象難懂,且較為枯燥。雖然安排有實(shí)驗(yàn)環(huán)節(jié),但受課時(shí)安排和設(shè)備數(shù)量等因素的限制,理論課和實(shí)驗(yàn)課還是存脫節(jié)現(xiàn)象。因此,將實(shí)踐教學(xué)和理論教學(xué)相結(jié)合是必然的選擇。然而,傳統(tǒng)的教學(xué)存在以下問(wèn)題:
1)課時(shí)分配不合理,理論課時(shí)相對(duì)較多,實(shí)驗(yàn)課時(shí)較少,學(xué)生動(dòng)手能力難于提高。以我校為例,課程總學(xué)時(shí)56,理論學(xué)時(shí)44,實(shí)驗(yàn)學(xué)時(shí)12,通常每個(gè)實(shí)驗(yàn)至少2個(gè)學(xué)時(shí),最多能安排6個(gè)實(shí)驗(yàn)。對(duì)于單片機(jī)這種實(shí)踐性很強(qiáng)的課程來(lái)而言,12個(gè)實(shí)驗(yàn)學(xué)時(shí)遠(yuǎn)遠(yuǎn)不夠,但由于該課程理論課教學(xué)內(nèi)容也很多,又不能通過(guò)減少理論課時(shí)來(lái)增加實(shí)驗(yàn)課時(shí)。
2)教學(xué)手段單一,沒(méi)有充分利用仿真軟件等進(jìn)行動(dòng)態(tài)教學(xué)演示和實(shí)例分析。老師課堂上僅使用PPT投影方式進(jìn)行教學(xué),難于激發(fā)學(xué)生的學(xué)習(xí)興趣。
3)理論教學(xué)和實(shí)驗(yàn)教學(xué)較為脫節(jié),不夠連貫。由于實(shí)驗(yàn)設(shè)備數(shù)量有限,為了做到一人一臺(tái)設(shè)備,一個(gè)班學(xué)生通過(guò)要分成幾批安排實(shí)驗(yàn),時(shí)間上要拉長(zhǎng),無(wú)法做到理論課講完一個(gè)內(nèi)容,接著安排對(duì)應(yīng)的實(shí)驗(yàn)。而且實(shí)驗(yàn)課時(shí)較少,無(wú)法做到每個(gè)教學(xué)內(nèi)容都安排實(shí)驗(yàn)。
4)實(shí)驗(yàn)場(chǎng)所較為固定,開(kāi)放時(shí)間也都是有限制,因而學(xué)生參與實(shí)驗(yàn)受到時(shí)間和空間的限制,不能靈活安排。
針對(duì)上述存在的問(wèn)題,我們?cè)诮虒W(xué)上引入了Proteus仿真軟件平臺(tái)。課堂教學(xué)中,在IO端口、數(shù)碼管顯示、定時(shí)器/計(jì)數(shù)器、中斷和外設(shè)總線等教學(xué)內(nèi)容中增加Proteus虛擬仿真環(huán)節(jié),使學(xué)生在學(xué)習(xí)單片機(jī)理論知識(shí)時(shí),也能生動(dòng)形象地了解單片機(jī)的動(dòng)態(tài)工作過(guò)程和運(yùn)行結(jié)果,克服傳統(tǒng)方式下教學(xué)手段單一、理論和實(shí)踐脫節(jié)等問(wèn)題,同時(shí)提高了學(xué)生學(xué)習(xí)的興趣。在實(shí)驗(yàn)教學(xué)中,引入Proteus虛擬仿真平臺(tái)后,學(xué)生可在自己個(gè)人計(jì)算機(jī)上安裝了Proteus軟件,在到實(shí)驗(yàn)室上實(shí)驗(yàn)課之前,可以自己先用Proteus軟件對(duì)實(shí)驗(yàn)內(nèi)容進(jìn)得仿真,實(shí)驗(yàn)課時(shí)再通過(guò)實(shí)際的單片機(jī)實(shí)驗(yàn)設(shè)備進(jìn)一步驗(yàn)證仿真結(jié)果,仿真過(guò)程不受實(shí)驗(yàn)室開(kāi)放時(shí)間和實(shí)驗(yàn)設(shè)備數(shù)量的限制,有效的打破傳統(tǒng)教學(xué)方式下實(shí)踐環(huán)節(jié)受時(shí)間和空間限制的問(wèn)題。引入Proteus虛擬仿真平臺(tái)后,學(xué)生可以在學(xué)習(xí)理論課內(nèi)容后,課余時(shí)間自主完成該內(nèi)容對(duì)應(yīng)的仿真實(shí)驗(yàn),能有效彌補(bǔ)實(shí)驗(yàn)課時(shí)不足問(wèn)題,能效避免理論教學(xué)與實(shí)踐教學(xué)的脫節(jié)問(wèn)題。
Proteus是英國(guó)Labcenter Electronics公司開(kāi)發(fā)的一款EDA工具軟件,它支持眾多的模擬和數(shù)字元器件仿真,特別是支持8051、ARM7和MSP430等多種處理器,可實(shí)現(xiàn)代碼調(diào)試到處理器與外圍電路的協(xié)同仿真。同時(shí)支持字符型LCD模塊、圖形LCD模塊、LED點(diǎn)陣、數(shù)碼管、電機(jī)和鍵盤(pán)等外部設(shè)備仿真。支持IAR、Keil和ICCAVR等多種編譯生成的機(jī)器碼文件的調(diào)試。Proteus內(nèi)置的仿真儀表資源眾多,包括示波器、信號(hào)發(fā)生器、邏輯分析儀、虛擬終端和SPI調(diào)試器等。在此平臺(tái)上可開(kāi)展模擬電路、數(shù)字電路、單片機(jī)等多種課程的教學(xué)和實(shí)驗(yàn),可有效解決單片機(jī)教學(xué)中前述提到的相關(guān)問(wèn)題。
微機(jī)原理與單片機(jī)應(yīng)用課程以51單片機(jī)為基礎(chǔ)進(jìn)行教學(xué),教學(xué)內(nèi)容豐富,我們從中選取了IO端口、外部中斷、定時(shí)器、數(shù)碼管顯示及SPI總線等幾個(gè)比較基礎(chǔ)的、較為抽象的內(nèi)容,在課堂教學(xué)時(shí),使用對(duì)應(yīng)的仿真電路,進(jìn)行虛擬仿真演示,這種方式比使用開(kāi)發(fā)板實(shí)物進(jìn)行演示更為直觀。
IO端口和外部中斷的仿真使用圖1所示電路,單片機(jī)為AT89S52,圖中P1.7外接LED發(fā)光二極管,可用IO端口輸出測(cè)試,電路中P3.2外接按鍵開(kāi)關(guān),可作為IO端口輸入測(cè)試,同時(shí)P3.2第二功能為外部中斷輸入引腳,可用作外部中斷功能測(cè)試。內(nèi)部IO端口是學(xué)生接觸到的第一個(gè)功能模塊,雖然編程很簡(jiǎn)單,但對(duì)于首次接觸單片機(jī)這類硬件軟件相結(jié)合器件的學(xué)生,還是較為抽象的,特別是當(dāng)IO端口作為輸入時(shí),有個(gè)關(guān)鍵的知識(shí)點(diǎn):“IO端口引腳作為輸入使用時(shí),必須先將端口鎖存器置1,才能正確讀取外部引腳狀態(tài)”,通過(guò)理論講解,再結(jié)合仿真演示,就能理解和掌握。
圖1 IO端口和外部中斷的仿真電路
教師講解中斷內(nèi)容時(shí),使用圖1電路進(jìn)行中斷功能仿真。軟件設(shè)計(jì)時(shí)先對(duì)P3.2進(jìn)行中斷的初始化,并編寫(xiě)外部中斷INT0的中斷服務(wù)程序,控制P1.7外接LED亮或滅,來(lái)觀察外部中斷的工作狀態(tài)。
在學(xué)習(xí)數(shù)碼管顯示相關(guān)內(nèi)容時(shí),使用圖2所示的電路進(jìn)行仿真測(cè)試。通過(guò)軟件控制P2或P0端口,逐個(gè)點(diǎn)亮數(shù)碼管的每個(gè)筆畫(huà),以了解其對(duì)應(yīng)關(guān)系;在講解段碼表時(shí),可以演示段碼值與顯示字符的對(duì)應(yīng)關(guān)系。
圖2 定時(shí)器/計(jì)數(shù)器和數(shù)碼管顯示的仿真電路
在講解定時(shí)器模塊時(shí),定時(shí)器內(nèi)部邏輯比較抽象,但通過(guò)仿真可以把定時(shí)器的定時(shí)狀態(tài)用數(shù)碼管顯示出來(lái)。對(duì)于定時(shí)時(shí)間為ms或us級(jí)別的,則在電路中添加虛擬示波器來(lái)觀察定時(shí)時(shí)間。把抽象的定時(shí)功能通過(guò)示波器直觀的顯示出來(lái)。在仿真計(jì)數(shù)器功能時(shí),P3.4作為外部計(jì)數(shù)脈沖的輸入信號(hào)控制端,每按一次P3.4外接按鍵,內(nèi)部計(jì)數(shù)器加1,通過(guò)數(shù)碼管直接顯示出來(lái),原來(lái)枯燥的內(nèi)容可變得形象生動(dòng)。
在學(xué)習(xí)A/D轉(zhuǎn)換和SPI總線接口這兩部分內(nèi)容時(shí),使用圖3的電路來(lái)進(jìn)行仿真測(cè)試。51單片機(jī)沒(méi)有集成硬件SPI,只能通過(guò)IO端口軟件模塊SPI總線。圖中,U2的ADC0832的SPI信號(hào)與單片機(jī)的P3口部分引腳相連接,編程時(shí),將P3.2、P3.4、P3.5和P3.6等IO端口軟件模擬SPI接口。仿真時(shí),對(duì)SPI信號(hào)設(shè)置電壓探測(cè)點(diǎn),通過(guò)虛擬邏輯分析儀捕捉SPI接口通信時(shí)序信號(hào)。圖4所示為ADC0832仿真時(shí)的總線時(shí)序信號(hào)。
圖3 A/D轉(zhuǎn)換和SPI總線接口的仿真電路
圖4 ADC0832時(shí)序信號(hào)
在圖3中P2口外接LCD顯示模塊數(shù)據(jù)總線,P1.3~P1.5分別連接顯示模塊的RS、RW和E控制線,實(shí)現(xiàn)A/D轉(zhuǎn)換結(jié)果的實(shí)時(shí)顯示,調(diào)節(jié)RV1改變ADC0832的CH0輸入電壓,通過(guò)LCD顯示模塊觀察A/D轉(zhuǎn)換測(cè)量結(jié)果。
虛擬仿真平臺(tái)可應(yīng)用到實(shí)驗(yàn)教學(xué)中。具體方法為:實(shí)驗(yàn)課前,學(xué)生先閱讀和理解實(shí)驗(yàn)內(nèi)容與要求,然后參考實(shí)驗(yàn)講義上的原理圖,利用Proteus設(shè)計(jì)該實(shí)驗(yàn)的仿真電路,接著編寫(xiě)程序,并進(jìn)行仿真調(diào)試。到實(shí)驗(yàn)課時(shí),學(xué)生已經(jīng)熟悉電路結(jié)構(gòu),軟件也基本編寫(xiě)好,此時(shí)在實(shí)驗(yàn)板上進(jìn)行實(shí)驗(yàn)就順利得多,即使是基礎(chǔ)比較差的學(xué)生,在老師的指導(dǎo)下,也有足夠的時(shí)間完成實(shí)驗(yàn)。單片機(jī)實(shí)驗(yàn)項(xiàng)目與學(xué)時(shí)如表1所示。
表1 單片機(jī)實(shí)驗(yàn)項(xiàng)目與學(xué)時(shí)
2020學(xué)年開(kāi)始將Proteus虛擬仿真軟件應(yīng)用于單片機(jī)課程的教學(xué),為觀察課程教學(xué)改革的成效,我們將2019學(xué)年和2020學(xué)年教學(xué)班的卷面成績(jī)、學(xué)生完成實(shí)驗(yàn)用時(shí)、提前完成實(shí)驗(yàn)的人數(shù)等數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表2~表5所示。
表2 2019學(xué)年教學(xué)班卷面成績(jī)統(tǒng)計(jì)
表3 2020學(xué)年教學(xué)班卷面成績(jī)統(tǒng)計(jì)
表4 學(xué)生完成實(shí)驗(yàn)平均用時(shí)統(tǒng)計(jì)
表5 學(xué)生提前完成實(shí)驗(yàn)人數(shù)統(tǒng)計(jì)
從統(tǒng)計(jì)結(jié)果看,與2019學(xué)年相比,2020學(xué)年教學(xué)班的卷面不及格人數(shù)減少1人,良好和優(yōu)秀的人數(shù)增加6人,卷面平均分增加3.28分,學(xué)生完成各個(gè)實(shí)驗(yàn)平均用時(shí)明顯減少,提前完成實(shí)驗(yàn)的人數(shù)明顯增加。
實(shí)踐表明,通過(guò)將Proteus虛擬仿真軟件應(yīng)用于“微機(jī)原理與單片機(jī)應(yīng)用”的理論教學(xué)和實(shí)驗(yàn)教學(xué)環(huán)節(jié),能有效的解決理論與實(shí)驗(yàn)相脫節(jié)的問(wèn)題,避免因?qū)嶒?yàn)學(xué)時(shí)較少而造成學(xué)生動(dòng)手能力不足問(wèn)題,提高了學(xué)生的學(xué)習(xí)興趣,教學(xué)效果得到明顯改善。