廣東 賀維
單片機流水燈的proteus仿真
廣東 賀維
學習單片機首先要建立一個開發環境,本文總結了傳統開發方法的缺點和不足,整合了proteus和keil,提出了基于proteus和keil軟件的新的單片機仿真調試方法,給出了利用proteus和keil軟件搭建仿真系統的步驟,以流水燈為實例,展示了用proteus結合keil建立單片機開發環境的優越性。
proteus;keil;單片機;仿真軟件
單片機自問世以來,以其極高的性能價格比,越來越受到人們的重視和關注。目前,單片機被廣泛應用于智能儀表、機電設備、過程控制、數據處理、自動檢測和家用電器等方面。
然而傳統的單片機系統開發除了需要購置諸如仿真器、編程器、示波器等價格不菲的電子設備外,開發過程也較繁瑣。
Proteus支持51、PIC、AVR、ARM7等多個系列的單片機芯片,集編輯、編譯、仿真調試于一體。它的界面簡潔友好,可利用該軟件提供的數千種數字/模擬仿真元器件以及豐富的仿真設備,使得在程序調試、系統仿真時不僅能觀察到程序執行過程中單片機寄存器和存儲器等內容變化,還可從工程的角度直觀地看到外圍電路工作情況,非常接近工程應用。
下面以基于AT89C51單片機的LED(發光二極管)流水燈電路為例,說明使用Proteus和Keil C51軟件進行單片機系統設計和仿真的過程。首先,用Proteus ISIS畫好電路圖,并用Keil C51軟件編寫相應程序,編譯無誤后生成.hex文件;其次,將生成的.hex文件下載到AT89C51單片機芯片中。
AT89C51單片機是美國ATMEL公司生產的低電壓、高性能CMOS 8位單片機,具有豐富的內部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數器、5個向量兩級中斷結構、2個全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,本流水燈實際上就是一個帶有八個發光二極管的單片機最小應用系統,即為由發光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。其具體硬件組成如下圖所示。

從原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變為低電平就可以了;相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變為高電平;同理,接在P1.1~P1.7口的其他7個LED的點亮和熄滅的方法同LED1。因此,要實現流水燈功能,我們只要將發光二極管LED1~LED8依次點亮、熄滅,8只LED燈便會一亮一暗的做流水燈了。在此我們還應注意一點,由于人眼的視覺暫留效應以及單片機執行每條指令的時間很短,我們在控制二極管亮滅的時候應該延時一段時間,否則我們就看不到“流水”效果了。
Keil公司的Keil μVision3,是目前使用最為廣泛的開發環境之一。單片機的應用系統由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環點亮的現象,我們還需要告訴單片機怎么來進行工作,即編寫程序控制單片機管腳電平的高低變化,來實現發光二極管的一亮一滅。通過Keil軟件編寫相應程序,編譯無誤后生成.hex文件。
電路原理圖在ISIS中設計完成,并將系統軟件編譯成.hex文件后,就可以進行LED流水燈電路的虛擬仿真了。在ISIS的原理圖中,右鍵單擊AT89C51將其選中,然后單擊左鍵打開AT89C51的Edit Component對話框,如下圖示。在ProgramF ile選項中選擇文件FLED.hex,單擊OK按鈕完成仿真設置。

點擊ISIS下方仿真按鈕的運行按鈕,系統開始運行實現流水燈功能。
由上述例子可以看出,Proteus可以很方便地與Keil C51集成開發環境連接,程序編譯好后,立即可以進行軟、硬件結合的系統仿真。利用Proteus仿真只需很少設備,就可以完成小到LED流水燈、電子時鐘,大到電機控制系統等單片機系統設計,具有明顯的經濟優勢。對于學生來說,由于使用方便,可以提高學習興趣。當然,它有一些不足,比如仿真模型器件庫中沒有一些元器件模型,或有的模型由于缺少仿真文件,不能進行仿真等。
使用Proteus軟件進行單片機系統仿真設計,是虛擬仿真技術與計算機多媒體技術相結合的綜合運用,有利于培養學生的電路設計能力及仿真軟件的操作能力;我們使用Proteus開發環境對學生進行培訓,在不需要硬件投入的條件下,學生普遍反映,對單片機的學習比單純學習書本知識更容易接受,更容易提高。實踐證明,在使用Proteus進行系統仿真開發成功之后再進行實際制作,能極大地提高單片機系統設計效率。因此,用Proteus結合keil建立仿真環境具有較高的推廣利用價值。
(作者單位:中山市技師學院)
(編輯 王旸)