徐 陽 (長江大學工程技術學院,湖北 荊州434020)
徐愛鈞 (長江大學電子信息學院,湖北 荊州434023)
目前,單片機已成為電子系統設計中最為普遍的手段,廣泛應用于家用電器、儀器儀表、醫用設備、航空航天、以及工業測量與過程控制等領域[1]。為此,國內許多高等院校都將單片機列為電子信息類專業學生的一門重要專業課程。在傳統單片機課程教學中,教師在課堂上以純理論方式講解單片機片的硬件結構和軟件編程,這些知識往往比較枯燥,學生難以理解消化,導致學習積極性不高。另外,教師在講授時,通常將軟件與硬件相對獨立地呈現給學生,使學生無法從整個系統的角度去理解單片機軟、硬件結合技術,尤其涉及硬件的一些操作,譬如I/O口控制、定時器/計數器控制等,如果只進行理論分析,很難獲得好的教學效果[2]。為此,筆者對Proteus虛擬仿真在單片機課程教學中的應用進行了探討。

圖1 單片機匯編指令功能的虛擬仿真圖
由于8051單片機總共有111條匯編指令,因而熟練掌握匯編指令對于提高學生的編程能力具有十分重要的作用[3]。傳統教學模式是對匯編語言程序逐條進行原理講解,但學生難以理解指令的執行過程及其功能,尤其是講解匯編語言程序時,如果學生對其中一條指令沒有弄清楚,則對整個程序都不能理解。為此,利用Proteus的虛擬仿真功能來解決上述問題。首先繪出單片機系統硬件原理電路圖,然后裝入編譯好的匯編語言程序hex文件,啟動虛擬仿真,單擊Debug下拉菜單打開源代碼窗口和CPU寄存器窗口,從源代碼窗口可以清楚地看到指令地址、指令代碼以及指令助記符等,以單步、斷點、全速等方式逐條執行匯編指令,從CPU寄存器窗口可以看到每執行一條指令對CPU狀態和工作寄存器的影響,這樣學生可以形象直觀地理解指令的執行過程及其功能 (見圖1)。
Proteus軟件中提供了示波器、信號發生器、電壓/電流表、SPI調試器、I2C調試器、虛擬終端、邏輯分析儀等多種虛擬儀表,啟動仿真后可以直接從虛擬儀表觀察輸出狀態,若對輸出結果不滿意可以隨時修改元器件參數,或者根據設計要求選用不同元器件,重新啟動仿真,直到滿意為止[4]。例如,采用單片機片內定時器和輸入輸出端口產生周期為4μs的方波,應用Proteus虛擬示波器觀察結果,通過調整示波器上幅度和時間旋鈕,可以清楚地看到輸出波形的周期能夠滿足要求 (見圖2)。由于在PC機上修改軟件程序比修改實際硬件電路板要容易得多,因此應用虛擬仿真進行單片機硬件系統實驗十分方便,而且教師在授課過程中可以通過大屏幕直接進行演示,相比采用實驗箱進行教學,可以獲得事半功倍的效果。

圖2 利用Proteus虛擬儀表觀察仿真結果圖
以一個單片機應用系統的虛擬仿真為例 (見圖3),其采用8051單片機和日歷時鐘芯片DS1302設計一種電子萬年歷,通過按鍵進行日歷時間設置;顯示器采用點陣圖形液晶模塊,能夠用漢字同時顯示公歷、農歷、屬相和星期。軟件程序采用C語言分模塊編寫,包括主模塊main.c、日歷時鐘模塊ds1302.c、年歷轉換模塊lunar.c,液晶顯示模塊12864.h和字模模塊model.h。在8051單片機片內RAM中開辟80H~8CH單元作為萬年歷的秒、分、時、日、月、星期和年計時單元,并設定初始時間和初始日期。從仿真結果來看,液晶顯示器的輸出能夠滿足設計要求。
Proteus還提供對器件工作波形時序的圖文仿真。圖4所示為DS1302與8051之間以同步方式進行單字節串行數據傳送的波形時序。SCLK為串行通信的位同步時鐘,一個SCLK脈沖傳送一位數據,每次數據傳送都以字節為單位,低位在前,高位在后,傳送一個字節需要8個SCLK脈沖。在RST=1期間,8051單片機先向DS1302發送一個命令字節,緊接著發送一個字節的數據,DS1302在接收到命令字節后自動將數據寫入指定的片內地址或從該地址讀取數據。整個數據傳輸過程通過Proteus圖文仿真清楚地顯示出來。
采用Proteus進行單片機教學,學生可以直接在基于原理圖的虛擬模型上進行編程,實現源碼級的仿真調試,配合各種虛擬儀表來展現整個單片機系統的運行過程,很好地解決了單片機課堂教學中軟件和硬件無法很好結合的難題。與傳統教學模式相比,利用Proteus虛擬仿真進行單片機教學,不僅能使學生更好地掌握相關原理知識,還能從工程應用角度直接觀察整個單片機系統的工作情況,從而使單片機課程教學過程變得形象生動,這樣可以激發學生的學習熱情,從而獲得良好的教學效果。

圖3 單片機應用系統的虛擬仿真圖

圖4 DS1302單字節數據傳送波形時序的圖文仿真圖
[1]徐愛鈞 .單片機原理實用教程——基于Proteus虛擬仿真 [M].北京:電子工業出版社,2011.
[2]王普 .基于Proteus的單片機課程教學改革 [J].景德鎮高專學報,2011(12):4-5.
[3]喬建華,李臨生,田啟川.Proteus在單片機教學中的應用分析 [J].電氣電子教學學報,2008(3):70-73.
[4]高強,倪維晨,谷海青 .基于Proteus設計電子臺歷的單片機教學 [J].實驗技術與管理,2011(7):88-90.