于明軍
(赤峰學院 物理與電子信息工程學院,內蒙古 赤峰 024000)
單片機系統虛擬仿真方法
于明軍
(赤峰學院 物理與電子信息工程學院,內蒙古 赤峰 024000)
在缺乏單片機實驗設備的情況下,利用軟件構建單片機系統,并對程序和電路的進行聯合調試,是一種方便可行的方法.本文以數字時鐘系統的搭建和仿真調試為例,介紹了仿真軟件Proteus在單片機系統仿真中的使用,并詳細闡述了KeilC51軟件和Proteus軟件的聯合調試方法,為單片機系統的開發與調試提供了一種純軟件的方法.
單片機;虛擬仿真;聯合調試
單片機系統的開發包含硬件電路設計、軟件設計和系統調試三個部分.通常的開發步驟是首先搭建實物電路或制作PCB實驗板,然后編寫軟件程序,最后利用仿真器進行軟硬件聯合調試,直至系統完成.在缺乏實驗設備和條件的情況下,利用軟件構建單片機系統并調試是一種很好的選擇.
Labcenter electronics公司的EDA工具軟件Proteus是目前最好的模擬單片機外圍器件的工具,它可以仿真51系列、AVR、PIC等常用的MCU及其外圍電路,如LCD、RAM、ROM、鍵盤、馬達、LED、A/D、D/A,部分 SPI、IIC器件等.它包含幾十個元件庫和大量虛擬儀器,集電路設計、仿真調試、電路板制作于一體,但該軟件并不仿真MCU本身,而是將編譯好的程序解析成單片機引腳電平信號從而控制其外圍器件.
Kei l軟件公司開發的KeilC51 uVision3是國內流行的單片機軟件開發平臺,其仿真方法有純軟件仿真(simulator)和基于驅動文件和硬件仿真平臺的硬件仿真(emulator)兩種.前者可以利用軟件模擬程序運行過程,通過單步、連續、斷點等方式對程序進行調試,缺點是不能看到實驗現象,只能通過對內部存儲器和寄存器進行觀察而判斷程序正確與否.后者將計算機與硬件仿真器連接,也可進行單步、連續、斷點等方式調試,利用仿真器模擬單片機驅動目標系統,可實時觀察現象,直觀真實并可以調試硬件目標系統.
該電子時鐘系統由AT89C52單片機、LCD1602液晶顯示模塊、日歷時鐘芯片DS1302、10K上拉電阻、晶振、電池和若干電阻電容構成,電路如圖1所示.

在該軟件中繪制原理圖與其他軟件相似,主要有以下兩步:
2.1 將所需元件從庫中裝進器件欄(DEVICES):左鍵單擊窗口左側的元器件工具欄的component按鈕,接著再點擊窗口左側的元器件選擇區的Pick Divices按鈕,彈出 Pick Devices窗口(圖 2),搜索關鍵字如“AT89C52”找到器件,雙擊該器件即可加載到左側的器件欄中,加載其它元器件和以上過程一樣.

圖2
2.2 在繪圖區繪制原理圖;將已經找到的器件放到繪圖區,布置好各個元器件相對位置,用鼠標左鍵點擊器件引腳連線即可.

圖3
硬件電路設計完成后,在KeilC51軟件中編寫軟件程序,調試通過后生成HEX文件,對Proteus中硬件電路的調試有兩種方法,一種是利用Proteus單獨調試,只需將HEX文件加載到電路圖中的單片機中,運行Proteus程序觀察實驗現象,如與設計不符,通過分析現象修改KeilC51中的程序重新編譯生成HEX文件,再運行仿真,如此往復直到軟硬件調試正確.此方法類似于單片機實驗板的在線下載,沒有仿真器的調試情況;另一種方式是KeilC51軟件和Proteus軟件的聯合調試,類似于帶仿真器的實驗板調試的情況.
任何仿真器與KeilC51軟件聯調都需要由一個驅動文件,并將其信息寫入Keil的配置文件,Keil軟件才能識別.在此我們詳細說明其設置方法:
(1)Keil與Proteus聯調,首先必須將proteus安裝目錄下VDM51.dll文件復制到Keil安裝目錄的C51BIN目錄中.
(2)修改keil安裝目錄下Tools.ini文件.用記事本(其它的編輯軟件也可以,如Ultra Edit)打開Keil根目錄下的TOOLS.INI文件,在[C51]欄目下加入TDRV3=BINVDM51.DLL ("ProteusVSM Monitor-51 Driver"),其中“TDRV3”中的“3”要根據實際情況寫,不要和原來的重復,括號中的文字為提示文字,可隨意改寫.
(3)在proteus的debug菜單中選中use remote debug monitor.在keil中編寫MCU的程序.進入KEIL的 project菜單 option for target'工程名 '.在DEBUG選項中右欄上部的下拉菜選中Proteus VSM Monitor-51 Driver.
(4)在進入seting,如果同一臺機IP名為127.0.0.1,如不是同一臺機則填另一臺的IP地址端口號一定為8000.
軟件設置好后,運行Keil與Proteus軟件,可以在Keil軟件中使用單步、連續、斷點等方式調試,于此同時Proteus軟件中將相應的顯示程序執行效果,達到軟硬件聯合調試的效果.如圖4所示.

圖4
本文介紹了利用KeilC51軟件和Proteus軟件對單片機系統進行虛擬仿真的方法,可以實現部分硬件仿真的功能.大大簡化了實際單片機系統開發過程中硬件電路制作、測試的過程,是一種便捷、低成本的開發方法.而在缺少實驗條件的情況下,也是一種很好的單片機系統開發手段.
〔1〕許超,吳新杰,張丹.基于 Proteus和 Keil的單片機課程教學改革[J].遼寧大學學報(自然科學版),2011(1).
〔2〕吳凌燕.基于Proteus的單片機仿真設計[J].儀表技術,2011(7).
〔3〕陳龍,張亞君.Proteus仿真軟件在單片機實驗教學中的應用[J].實驗技術與管理,2009(8).
〔4〕陳昶.電子仿真軟件在單片機電路仿真中的應用[J].山西科技,2009(2).
〔5〕王瑋,曹會寧.Proteus仿真軟件在單片機一體化教學中的應用[J].機電產品開發與創新,2009(5).
TP273
A
1673-260X(2012)04-0032-02