廣東 賀維
單片機(jī)流水燈的proteus仿真
廣東 賀維
學(xué)習(xí)單片機(jī)首先要建立一個(gè)開發(fā)環(huán)境,本文總結(jié)了傳統(tǒng)開發(fā)方法的缺點(diǎn)和不足,整合了proteus和keil,提出了基于proteus和keil軟件的新的單片機(jī)仿真調(diào)試方法,給出了利用proteus和keil軟件搭建仿真系統(tǒng)的步驟,以流水燈為實(shí)例,展示了用proteus結(jié)合keil建立單片機(jī)開發(fā)環(huán)境的優(yōu)越性。
proteus;keil;單片機(jī);仿真軟件
單片機(jī)自問世以來,以其極高的性能價(jià)格比,越來越受到人們的重視和關(guān)注。目前,單片機(jī)被廣泛應(yīng)用于智能儀表、機(jī)電設(shè)備、過程控制、數(shù)據(jù)處理、自動(dòng)檢測(cè)和家用電器等方面。
然而傳統(tǒng)的單片機(jī)系統(tǒng)開發(fā)除了需要購置諸如仿真器、編程器、示波器等價(jià)格不菲的電子設(shè)備外,開發(fā)過程也較繁瑣。
Proteus支持51、PIC、AVR、ARM7等多個(gè)系列的單片機(jī)芯片,集編輯、編譯、仿真調(diào)試于一體。它的界面簡(jiǎn)潔友好,可利用該軟件提供的數(shù)千種數(shù)字/模擬仿真元器件以及豐富的仿真設(shè)備,使得在程序調(diào)試、系統(tǒng)仿真時(shí)不僅能觀察到程序執(zhí)行過程中單片機(jī)寄存器和存儲(chǔ)器等內(nèi)容變化,還可從工程的角度直觀地看到外圍電路工作情況,非常接近工程應(yīng)用。
下面以基于AT89C51單片機(jī)的LED(發(fā)光二極管)流水燈電路為例,說明使用Proteus和Keil C51軟件進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)和仿真的過程。首先,用Proteus ISIS畫好電路圖,并用Keil C51軟件編寫相應(yīng)程序,編譯無誤后生成.hex文件;其次,將生成的.hex文件下載到AT89C51單片機(jī)芯片中。
AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量?jī)杉?jí)中斷結(jié)構(gòu)、2個(gè)全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機(jī)時(shí)無須外擴(kuò)存儲(chǔ)器。因此,本流水燈實(shí)際上就是一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個(gè)單片機(jī)。其具體硬件組成如下圖所示。
從原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變?yōu)楦唠娖?同理,接在P1.1~P1.7口的其他7個(gè)LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1~LED8依次點(diǎn)亮、熄滅,8只LED燈便會(huì)一亮一暗的做流水燈了。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們?cè)诳刂贫O管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了。
Keil公司的Keil μVision3,是目前使用最為廣泛的開發(fā)環(huán)境之一。單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要告訴單片機(jī)怎么來進(jìn)行工作,即編寫程序控制單片機(jī)管腳電平的高低變化,來實(shí)現(xiàn)發(fā)光二極管的一亮一滅。通過Keil軟件編寫相應(yīng)程序,編譯無誤后生成.hex文件。
電路原理圖在ISIS中設(shè)計(jì)完成,并將系統(tǒng)軟件編譯成.hex文件后,就可以進(jìn)行LED流水燈電路的虛擬仿真了。在ISIS的原理圖中,右鍵單擊AT89C51將其選中,然后單擊左鍵打開AT89C51的Edit Component對(duì)話框,如下圖示。在ProgramF ile選項(xiàng)中選擇文件FLED.hex,單擊OK按鈕完成仿真設(shè)置。
點(diǎn)擊ISIS下方仿真按鈕的運(yùn)行按鈕,系統(tǒng)開始運(yùn)行實(shí)現(xiàn)流水燈功能。
由上述例子可以看出,Proteus可以很方便地與Keil C51集成開發(fā)環(huán)境連接,程序編譯好后,立即可以進(jìn)行軟、硬件結(jié)合的系統(tǒng)仿真。利用Proteus仿真只需很少設(shè)備,就可以完成小到LED流水燈、電子時(shí)鐘,大到電機(jī)控制系統(tǒng)等單片機(jī)系統(tǒng)設(shè)計(jì),具有明顯的經(jīng)濟(jì)優(yōu)勢(shì)。對(duì)于學(xué)生來說,由于使用方便,可以提高學(xué)習(xí)興趣。當(dāng)然,它有一些不足,比如仿真模型器件庫中沒有一些元器件模型,或有的模型由于缺少仿真文件,不能進(jìn)行仿真等。
使用Proteus軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì),是虛擬仿真技術(shù)與計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;我們使用Proteus開發(fā)環(huán)境對(duì)學(xué)生進(jìn)行培訓(xùn),在不需要硬件投入的條件下,學(xué)生普遍反映,對(duì)單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書本知識(shí)更容易接受,更容易提高。實(shí)踐證明,在使用Proteus進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大地提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。因此,用Proteus結(jié)合keil建立仿真環(huán)境具有較高的推廣利用價(jià)值。
(作者單位:中山市技師學(xué)院)
(編輯 王旸)