趙群禮
關(guān)鍵詞:Proteus;Keil;單片機;仿真技術(shù);實驗課程
中圖分類號:TP391.9 文獻標(biāo)識碼:A
文章編號:1009-3044(2023)12-0057-03
0 引言
在計算機和電子信息類專業(yè)中,單片機原理及應(yīng)用課程是一門實踐性很強的專業(yè)課程。學(xué)生要想學(xué)好這門課程,必須自己動手去完成一定數(shù)量的實驗,通過在實驗過程中對所學(xué)單片機理論知識的驗證、比較、探索和總結(jié),使自己能夠?qū)λ鶎W(xué)知識有更深刻的理解和掌握,因此,單片機實驗教學(xué)環(huán)節(jié)在整個課程的教學(xué)中占有很重要的位置[1,2]。在傳統(tǒng)的單片機實驗教學(xué)方式中,多數(shù)高校都采用單片機實驗箱來開展實驗教學(xué),這種方式的優(yōu)點是學(xué)生可以通過動手操作實際硬件,增加對單片機等電子元器件的直觀認(rèn)識,但這種方式也有很明顯的不足之處。對于廠家生產(chǎn)的某種型號的單片機實驗箱來說,它所具有的硬件配置一般是固定不變的,能夠完成的實驗項目數(shù)量也是很有限的,而且很難自主開發(fā)新的實驗項目。但是科學(xué)技術(shù)的發(fā)展日新月異,為了與單片機技術(shù)的應(yīng)用和發(fā)展保持基本同步,在單片機實驗教學(xué)中,實驗項目常常需要更新和修改,有時也需要設(shè)計開發(fā)新的實驗項目,然而單片機實驗箱中固定有限的實驗項目難以滿足教學(xué)革新的需要,已不能與實際教學(xué)發(fā)展相適應(yīng)[3]。解決這個問題的一種方案是高校繼續(xù)增加實驗設(shè)備投入,購買新的配置更高的單片機實驗箱和配件,但需要大量的資金,這對很多高校來說都是一項沉重的負(fù)擔(dān)。另一種解決方案是采用軟件仿真技術(shù),利用成熟穩(wěn)定、功能強大的仿真軟件,模擬單片機及各種電子元器件的功能,完成實驗教學(xué)中的各種實驗項目。該方案不僅能大量減少實驗室建設(shè)的投入,而且也能使單片機的實驗教學(xué)更加靈活,在讓學(xué)生自己動手繪制實驗電路圖的同時,更能加深學(xué)生對所做實驗項目的理解,從而提高學(xué)生的學(xué)習(xí)興趣和實際動手能力。本文在介紹軟件仿真技術(shù)的基礎(chǔ)上,著重闡述軟件仿真技術(shù)在單片機實驗課程中的應(yīng)用方式。
1 軟件仿真技術(shù)
軟件仿真技術(shù)就是采用相關(guān)專業(yè)軟件來仿真硬件的相應(yīng)功能,以實現(xiàn)對目標(biāo)硬件的相關(guān)電路、指令和性能指標(biāo)進行驗證和測試[3-6]。相對于采用硬件實驗箱的方式,采用軟件仿真技術(shù)有多項優(yōu)點:
1) 電路設(shè)計和修改方便
在仿真軟件里面,隨時可以根據(jù)實驗項目的需要修改電路設(shè)計,刪除、增加連線很方便,沒有硬件實驗箱中因沒有連接端子而無法接線的限制。
2) 易于代碼編寫和調(diào)試
在仿真軟件里面,通過簡單的選擇文件操作,就可以將運行代碼裝載到單片機仿真芯片里,然后即可運行和調(diào)試,整個過程既簡單又快捷。而在硬件實驗箱中需要先進行交叉編譯,再通過專用的下載接口將代碼寫入到單片機的程序ROM中,最后再運行和調(diào)試,整個過程相對較慢,而且需要連接相應(yīng)線路進行數(shù)據(jù)傳輸,可能會存在因接口和線路問題引起的故障。
3) 節(jié)約實驗測試成本
在軟件仿真技術(shù)中,所有的電路、電子元件和芯片都是用相應(yīng)軟件模塊模擬的,學(xué)生在實驗過程不會造成電子元器件的損耗,因此節(jié)約了實驗成本。若采用硬件實驗箱進行實驗,學(xué)生在實驗過程中由于要進行接線和更換相應(yīng)實驗?zāi)K,有可能會造成電子元器件的損壞,從而導(dǎo)致實驗箱的部分模塊不能使用,甚至整個實驗箱報廢。
4) 便于實驗項目的更新和開發(fā)
在軟件仿真技術(shù)中,可以根據(jù)實際需要隨時修改和更新實驗項目,也可以隨時開發(fā)新的實驗項目。而在硬件實驗箱中,其所能完成的實驗項目在出廠前就已設(shè)計好,后期要更新和開發(fā)新的實驗項目會受到硬件上的限制,有的實驗箱甚至無法開發(fā)新的實驗項目,這使得實驗項目的更新和開發(fā)很難實施。
基于軟件仿真技術(shù)的上述優(yōu)點,在單片機實驗課程教學(xué)中,我們提倡多使用仿真軟件,以提高開展實驗的效率,減少單片機相關(guān)實驗室的建設(shè)和運行維護支出。
目前可用于電路仿真的軟件有多款,其中較為常用的有Proteus、Virtual BreadBoard、Multisim、AltiumDesigner等,而在單片機仿真方面,Proteus是功能最全、最好用的一款軟件。該軟件是由Labcenter Elec?tronic公司設(shè)計開發(fā)的,目前已經(jīng)更新到8.15版。它不僅可以用來仿真多種型號的單片機,也可以仿真多種型號的ARM,其自身包含的元器件庫十分豐富,即使所需的元件沒有包含在庫中,也可以從第三方下載元件庫導(dǎo)入,使得該仿真軟件具有較好的可擴展性,基本能夠滿足大多數(shù)應(yīng)用的仿真需要。本文主要以Proteus 8為例,闡述軟件仿真技術(shù)在單片機實驗教學(xué)中如何運用,Proteus 8的運行界面如圖1所示。
2 軟件仿真技術(shù)在單片機實驗教學(xué)中的應(yīng)用方式
實驗教學(xué)環(huán)節(jié)是單片機原理及應(yīng)用課程教學(xué)的重要組成部分,將軟件仿真技術(shù)融合到實驗教學(xué)環(huán)節(jié)的方式有兩種:1) 采用純軟件仿真的方式;2) 采用軟件仿真和硬件實驗箱相結(jié)合的方式。在第一種方式中僅需購買電腦設(shè)備,不需要購買硬件實驗箱和配套設(shè)備,也不需要建設(shè)專門的單片機實驗室,可以和軟件類的實驗室合并到一起,節(jié)約了實驗室建設(shè)的投入。在第二種方式中需要購買電腦設(shè)備、硬件實驗箱、示波器、耗材等,而且需要建設(shè)專門的實驗室,投入相對較大。這兩種方式都可以開展單片機實驗課程的教學(xué),但從全面培養(yǎng)學(xué)生的實際動手能力的角度看,第二種方式更有利于提高學(xué)生的實際動手能力。在實際的實驗過程中,先讓學(xué)生在仿真軟件中完成電路的繪制、代碼的編寫和測試,在測試通過以后,再將代碼寫入實驗箱的單片機中進行測試運行,減少了實驗過程中對耗材和實驗箱的損耗。這種方式不僅能鍛煉學(xué)生的動手能力,也能增加學(xué)生對各種元器件的認(rèn)識和使用體會,因此,本文建議在經(jīng)費充足的高校應(yīng)采用這種方式開展單片機實驗,該方式下實驗的過程如圖2所示。
1) 在做實驗前首先要選擇好實驗項目,確定用到的知識點和相關(guān)的電子元器件參數(shù),以及它們之間的連接方式。
2) 根據(jù)實驗項目要完成的內(nèi)容,在仿真軟件中繪制電路圖,將各個元器件合理地進行排布,并組合到一起,形成一個完整的電路。
3) 電路設(shè)計好以后,可以用C51語言編寫代碼,完成實驗要求的功能。為了提高編碼效率,通常是在專用的集成開發(fā)環(huán)境中進行程序設(shè)計,并編譯生成可以在單片機中運行的可執(zhí)行代碼。
4) 將編譯后生成的可執(zhí)行代碼文件和仿真軟件中的單片機芯片進行關(guān)聯(lián),并設(shè)置好相關(guān)參數(shù),然后調(diào)試運行,如果在這個過程中發(fā)現(xiàn)問題可以返回修改電路和代碼。
5) 在仿真軟件中調(diào)試通過以后,再通過實驗箱的硬件接口將代碼寫入單片機的ROM中,然后在實驗箱中運行測試。
在以上實驗過程中,先應(yīng)用仿真軟件設(shè)計電路,然后再用仿真軟件對代碼進行調(diào)試,這樣可以快速找出電路和代碼中可能存在的問題,節(jié)約了調(diào)試時間,提高了做實驗的效率。
3 應(yīng)用案例
為了進一步說明仿真軟件在單片機實驗課程中的應(yīng)用過程,本文在這部分結(jié)合一個簡單的實驗案例進行闡述。
1) 流水燈顯示實驗:用AT89C51的P3口控制8個LED流水點亮。
實驗分析:在該示例中使用AT89C51 單片機的P3接口連接8個LED,通過改變P3接口各引腳的電平信號,使相連接的LED導(dǎo)通或截止,即使得LED點亮或熄滅。要實現(xiàn)流水點亮效果,可以通過控制P3口各引腳的電平使各LED按次序輪流點亮,即在某個時刻只有一個LED點亮,其他LED熄滅,然后依次點亮下一個LED,并在兩個LED點亮的間隙加上延時,從而實現(xiàn)流水點亮效果。
2) 設(shè)計電路
根據(jù)實驗的要求,在Proteus8仿真軟件中選擇相應(yīng)的電子元器件,并按照實驗的要求進行連線。由于P3口的驅(qū)動能力有限,這里將LED采用共陽極的接法,將8個LED的正極通過限流電阻接到+5V電源上。限流電阻值的大小會影響LED的明暗程度,為了看到較明顯的實驗效果,在此實驗中選擇了較小的電阻值,電路連接如圖3所示。
3) 編寫代碼
在電路設(shè)計好以后,用C51語言在Keil uVision集成開發(fā)環(huán)境中編寫流水燈顯示實驗代碼,如圖4所示。代碼編寫好以后,再進行編譯,最終需要生成可以寫入單片機的Hex文件。
4) 仿真調(diào)試
將編譯生成的Hex文件關(guān)聯(lián)到AT89C51仿真模塊中,這相當(dāng)于將代碼寫入單片機硬件中,然后運行仿真電路,測試代碼的運行結(jié)果是否正確,如圖5 所示。
5) 硬件調(diào)試
在軟件仿真調(diào)試通過以后,可以連接單片機硬件實驗箱,將代碼寫入實驗箱的51單片機中,其在實驗箱中的調(diào)試運行結(jié)果如圖6所示。實驗箱中的8個LED 分別為D11、D12、D13、D14、D15、D16、D17 和D18,對應(yīng)軟件仿真電路中的D1~D8。在用硬件實驗箱進行調(diào)試時要注意各部件的實際接線,如果實際接線和仿真電路不一致,需要對代碼進行調(diào)整,使其與實際電路保持一致。
通過以上的案例可以看出,將軟件仿真技術(shù)應(yīng)用到實驗過程中,學(xué)生在實驗前必須熟悉實驗內(nèi)容,并掌握一定的電路和電子元器件知識。在自己動手設(shè)計實驗電路、編寫和調(diào)試實驗代碼的同時,也加深了學(xué)生對所學(xué)單片機理論知識的理解,進一步提高了學(xué)生將單片機知識應(yīng)用到實踐中的能力。
4 總結(jié)
軟件仿真技術(shù)在單片機實驗課程教學(xué)中的應(yīng)用,節(jié)約了實驗教學(xué)的成本,增加了實驗教學(xué)的靈活性,使實驗教學(xué)的效果得到改善和提高。學(xué)生在仿真軟件中設(shè)計電路和編寫代碼的過程中培養(yǎng)了實驗技能,提高了解決實際問題的能力。然而,隨著實驗教學(xué)的改革和發(fā)展,在單片機實驗教學(xué)中應(yīng)用軟件仿真技術(shù)的方式還需要繼續(xù)深入研究和實踐,力爭將軟件仿真技術(shù)融入實踐教學(xué)的各個環(huán)節(jié)中,使學(xué)生的應(yīng)用能力和社會適應(yīng)能力得到鍛煉和培養(yǎng),并真正成長為對社會有用的人才,這樣也就達到了課程教學(xué)的最終目標(biāo)。