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