鐘娟+鄭旋+劉琦

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