鐘娟+鄭旋+劉琦

【摘要】單片機實驗教學的內容較多,傳統的實驗手段存在實驗內容更新慢、與工程實際應用脫節、硬件設備昂貴和設備維護工作量大等不足,實際教學效果也不理想。文中詳細闡述采用Proteus軟件仿真的特點,解決了實驗教學中硬件條件不足的問題。
【關鍵詞】proteus軟件;仿真;單片機
隨著嵌入式系統技術的迅速發展,單片機系統作為一種典型的嵌入式系統在汽車、通信、工業控制、家用電器等領域得到了廣泛的應用。同時單片機課程是電子技術應用、機電、數控、自動化等專業的一門重要專業課程,實踐性環節比重較大,要求理論與實際緊密結合,應著力于培養學生利用已學知識解決實際問題的能力。因此,在實踐教學過程中,要求軟件與硬件相結合、理論與實踐相結合,但傳統的單片機教學實驗中,采用硬件仿真器、實驗箱或實驗板,需采購大量的、昂貴的硬件設備,而且設備維護工作量也非常大。
本文在簡要介紹了Proteus仿真軟件的基礎上,對該軟件在MCS-51系列單片機實驗教學中的應用進行了詳細分析,利用它既可以可調試單片機程序,也可仿真單片機外圍器件的工作情況;既能充分利用學校計算機房現有計算機,減少硬件設備的維護工作量,還可為學生提供豐富的實驗教學內容,激發學生學習單片機的興趣,提高教學效果,進一步縮短教學與工程實際的距離。
一、Proteus仿真軟件介紹
Proteus是英國Labcenter公司開發的電路分析與實物仿真軟件。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:實現了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機以及外圍電路組成的系統的仿真、RS232動態仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;提供了多種虛擬儀器,如示波器、邏輯分析儀、信號發生器等,便于調試;支持主流單片機系統的仿真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列以及各種外圍芯片;提供軟件調試功能,同時支持第三方的軟件編譯和調試環境,如Keil等軟件;具有強大的原理圖繪制功能。Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因此在仿真和程序調試時,關心的不再是某些語句執行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。同時,當硬件調試成功后,利用Proteus ARES軟件,很容易獲得其PCB圖,為今后的制造提供了方便。
二、實驗教學內容組織
在單片機的課程教學中,所涉及到的內容主要包括了四方面,即單片機系統資源、軟件技術、硬件接口電路、軟件和硬件結合的應用電路。結合這四方面內容,教師來組織單片機的實驗教學內容。
1、系統資源部分實驗。任何一款單片機均提供了一定的系統資源。對于MCS-51系列單片機來講,其所提供的系統資源是以寄存器和存儲器的方式體現出來的。對于寄存器內容的查看,可以執行Debug菜單下51CPU下的register項打開相應的窗口。對于系統內部存儲器的查看,可以執行Debug菜單下51CPU下的internal memory項打開相應的窗口。對應這部分內容,教師在實驗設置時應充分考慮到學生初次學習單片機、Proteus仿真軟件和相應的第三方軟件如Keil,實驗內容應盡量簡單主要目的是讓學生了解MCS-51系列單片機的系統資源、Proteus仿真軟件的基本操作和相應的第三方軟件的使用,實驗內容可以設計成簡單的內存塊清零程序在Proteus環境下的仿真與調試,學生學會用Proteus和第三方軟件查看系統資源。
2、軟件技術部分實驗。在軟件技術的仿真中所涉及到的內容主要包括對語言中具體語句的執行效果驗證、算法的具體實現、程序中語法錯誤的檢查和邏輯錯誤的驗證等。對于純軟件的實驗教學內容,教師在實驗設置時應充分考慮到學生的能力循序漸進的安排實驗內容,實驗前要求學生根據實驗內容自行編制好調試程序以提高實驗效率,已達到預期的教學目的。具體實驗內容可以設計為二進制BCD碼轉換、二進制ASCII碼轉換、程序跳轉表、內存塊移動、數據排序和多字節BCD碼加減法取補等程序實驗。
3、硬件接口部分實驗。單片機的接口電路所涉及到的知識涵蓋了電子電路設計的相關領域,也涉及到單片機應用系統具體的工作需要。接口電路部分涉及到線路的連接、元器件的選擇、工作方式的設置、電路工作的穩定性和可靠性、電路的空間需求等等許多方面的知識和內容;但就課程教學來講,所涉及到的并不需要這么全面。Proteus所模擬的元件真實工作情況和單片機應用系統的實際工作環境還是有一定的差別。因此只能根據教學的需要,讓學生自行設計電路并設置其工作方式。可以通過兩種方式組織實施:一是根據具體的要求,讓學生設計接口電路并編寫相應的程序;一是根據程序的要求,設計單片機接口電路。
4、軟件與硬件結合部分實驗。軟件和硬件的結合,就是一個單片機的應用系統。這一部分的實驗可以在課程設計中以課題的方式提出來處理,也可以將其分解成不同的接口部分在接口電路的多次實驗中分次完成。在這一階段,硬件電路的設計已經不是最為關鍵的了,而是軟件系統的設計、調試和運行才是實驗的主要內容。因此可以以建議性的意見給出具體的硬件電路,并提出該電路所需要完成的具體工作,由學生進行軟件的設計和調試。
三、實驗的設計實例
以單片機電子時鐘系統為例,介紹使用Proteus6 Demo版本進行單片機電子日歷時鐘系統設計與仿真的過程。
1、硬件電路設計
該電子日歷時鐘系統硬件主要由AT89C55單片機、日歷時鐘芯片DS1302、LCD顯示器LM016L、74LS373等元器件組成。
2、軟件設計
部分程序清單如下:
SCLK equ P1.6
IO equ P1.7
RST equ P1.5
TIME DATA 60H
DATE DATA 63H
LCD_SETVISIBLE equ 8
LCD_SETCGADDR equ 64
LCD_SETDDADDR equ 128
Start:mov A,#038h; ?LM016L初始化為8位接口,16×2 行顯示,5×7 點陣
call wrcmd; ? 寫命令
mov A,#LCD_SETVISIBLE+6; 不顯示光標
call wrcmd
loop:mov DPTR,#TIME; ?取時間(時、分、秒)
call bcd2asc; ?BCD碼轉換ASCII 碼
call wrtime; ? 時間送LCD 顯示
mov DPTR,#200; ?延時200 ms
call wtms
mov A,#LCD_SETDDADDR+64; ?顯示數據RAM 第二行地址
call wrcmd
mov DPTR,#DATE; ?取日期(年、月、日)
call bcd2asc
call wrdate; ?日期送LCD 顯示
mov DPTR,#200
call wtms
mov A,#LCD_CLS; ? 清屏
call wrcmd
jmp loop
3、系統仿真分析
電路原理圖在ISIS里設計完成,并將系統軟件編譯成.HEX文件后,下面就可以進行電子時鐘的系統虛擬仿真了。
在ISIS的原理圖中,右鍵單擊AT89C55將其選中,然后單擊左鍵打開AT89C55的Edit Component對話框,在Program File選項中選擇文件CLOCK.HEX,單擊OK按鈕完成仿真設置。
點擊ISIS下方仿真按鈕的運行按鈕,系統開始運行,實時顯示當前時間。圖1是系統運行時捕捉的瞬間畫面。
圖1 系統硬件運行狀態
四、結束語
通過單片機電子日歷時鐘系統的實際開發發現,采用該方法可以大大簡化硬件電路測試和系統調試過程中電路板制作、元器件安裝、焊接等過程。很明顯,使用該方法進行系統虛擬開發成功之后再進行實際制作,無疑可以提高開發效率、降低開發成本、提升開發速度,對單片機系統開發具有實用意義。
【參考文獻】
[1] 代啟化. 基于Proteus的電路設計與仿真[J]. 現代電子技術, 2006, 9(19): 84-86.
[2] 林志琦, 郎建軍. 基于Proteus的單片機可視化軟硬件仿真[M]. 北京: 航空航天大學出版社, 2006.