趙群禮



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