張東輝 劉春東 鄒義龍 陳 龍
(河北建筑工程學(xué)院,河北張家口075000)
隨著電子技術(shù)的發(fā)展以及單片機(jī)應(yīng)用技術(shù)的普及,涌現(xiàn)出各種單片機(jī)開(kāi)發(fā)工具,設(shè)計(jì)工程師一直在努力縮短新產(chǎn)品的開(kāi)發(fā)周期,而軟、硬件并行開(kāi)發(fā)就是一種比較好的方法.并行開(kāi)發(fā)方法需要多個(gè)獨(dú)立的軟、硬件開(kāi)發(fā)小組同時(shí)進(jìn)行軟件、硬件設(shè)計(jì).當(dāng)原型硬件和嵌入式代碼的主要部分實(shí)現(xiàn)后,就可以在系統(tǒng)整合階段將硬件與軟件合并起來(lái)并開(kāi)始測(cè)試工作.在系統(tǒng)整合時(shí)經(jīng)常會(huì)發(fā)生嚴(yán)重的問(wèn)題,有些問(wèn)題甚至?xí)?dǎo)致軟件或硬件的重新設(shè)計(jì).所以,人們需要找到更好的方法來(lái)解決這些問(wèn)題.采用Proteus進(jìn)行虛擬仿真是解決這類(lèi)問(wèn)題的一個(gè)絕好的辦法.
Proteus軟件已有20多年的歷史,是英國(guó)Labcenter electronics公司開(kāi)發(fā)的目前世界上最先進(jìn)、最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺(tái)軟件[1].它運(yùn)行于Windows操作系統(tǒng)上,是一種低投資的電子設(shè)計(jì)自動(dòng)化軟件,提供Schematic Drawing、SPICE仿真與PCB設(shè)計(jì)功能,是目前最好的模擬單片機(jī)及其外圍器件的工具,可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如RAM,ROM,鍵盤(pán),馬達(dá),LED,LCD,A/D、D/A器件、示波器等),這些都可以直接用于虛擬仿真,極大地提高了應(yīng)用系統(tǒng)的設(shè)計(jì)效率[2].
Keil是德國(guó)開(kāi)發(fā)的一個(gè)51單片機(jī)開(kāi)發(fā)軟件平臺(tái),支持匯編語(yǔ)言和C語(yǔ)言等高級(jí)語(yǔ)言[2].Keil集成開(kāi)發(fā)環(huán)境是基于32位的windows環(huán)境,它是以高效率的C語(yǔ)言或匯編語(yǔ)言為基礎(chǔ)的開(kāi)發(fā)平臺(tái),具備強(qiáng)大的軟件仿真功能[3].目前,Keil公司推出的C51編譯器已被完全集成到一個(gè)功能強(qiáng)大的全新集成開(kāi)發(fā)環(huán)境Vision 3中,包括項(xiàng)目管理、程序編譯和連接定位等,并且可以與Proteus原理圖進(jìn)行聯(lián)機(jī)仿真,為單片機(jī)的開(kāi)發(fā)帶來(lái)極大的方便.
Proteus與Keil軟件的聯(lián)合仿真研究就是建立一個(gè)軟硬件聯(lián)合仿真系統(tǒng)的過(guò)程.硬件系統(tǒng)仿真部分由Proteus ISIS軟件實(shí)現(xiàn),利用ISIS繪制電路原理圖,選擇好所需要的電路元器件并進(jìn)行聯(lián)接,軟件仿真是由Keil軟件實(shí)現(xiàn)的.程序在Keil仿真平臺(tái)運(yùn)行無(wú)誤并生成測(cè)試程序(以hex為后綴的程序文件).軟件環(huán)境和硬件環(huán)境都有自己的糾錯(cuò)和控制界面,在Proteus設(shè)計(jì)的電路原理圖界面,調(diào)入已經(jīng)生成的測(cè)試文件,從而可以實(shí)現(xiàn)系統(tǒng)的總調(diào),并可以直觀的觀察到仿真結(jié)果.
現(xiàn)在很多文娛活動(dòng)中都會(huì)有搶答這一項(xiàng),需要用到搶答器.在目前的市場(chǎng)上,普通搶答器都需要幾百塊,價(jià)格比較昂貴.本項(xiàng)目設(shè)計(jì)的搶答器電路簡(jiǎn)單、成本較低、操作方便、靈敏可靠,具有較高的推廣價(jià)值.本文以八路搶答器為例,介紹了基于Proteus的硬件電路設(shè)計(jì)、基于Keil的軟件設(shè)計(jì)以及軟硬件的聯(lián)合仿真.通過(guò)仿真,得到了滿意的效果.
利用Proteus的ISIS繪制原理圖.八路搶答器由單片機(jī)、復(fù)位電路、電源電路、選手按鍵、主持人按鍵、聲音提示和數(shù)碼顯示等部分組成,單片機(jī)采用內(nèi)部時(shí)鐘方式,P1口接8個(gè)選手按鍵,并進(jìn)行標(biāo)號(hào)區(qū)別,P3口接LED數(shù)碼管,采用共陰極數(shù)碼管,P2口接蜂鳴器電路和主持人按鍵.原理圖設(shè)計(jì)如圖1所示.
搶答器的功能比較簡(jiǎn)單,故采用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì).利用Keil進(jìn)行程序設(shè)計(jì)并進(jìn)行仿真,生成hex測(cè)試文件,如圖2所示.編譯信息顯示,程序沒(méi)有錯(cuò)誤.可以將生成的hex文件導(dǎo)入Proteus,進(jìn)行聯(lián)合調(diào)試.
軟硬件聯(lián)合仿真調(diào)試,也就是將Keil生成的測(cè)試文件導(dǎo)入到單片機(jī)中去,觀察單片機(jī)的外圍器件在單片機(jī)控制下的動(dòng)作結(jié)果.
首先,在Proteus ISIS原理圖界面,雙擊單片機(jī),將所需文件導(dǎo)入單片機(jī),如圖3所示.
其次,運(yùn)行程序,開(kāi)始仿真.當(dāng)沒(méi)有開(kāi)始搶答的時(shí)候,數(shù)碼管顯示為F,為初始狀態(tài),如圖4所示.當(dāng)主持人按下按鍵后,開(kāi)始搶答,若有選手按搶答按鈕,編號(hào)立即鎖存,并在數(shù)碼管上顯示選手的編號(hào),同時(shí)伴隨聲音提示.此外,要封鎖輸入電路,禁止其他選手搶答,最先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)復(fù)位.圖5為搶答開(kāi)始后,8號(hào)選手先按下按鍵,數(shù)碼管顯示相應(yīng)的選手編號(hào).圖6為下一輪搶答開(kāi)始后2號(hào)選手搶答的結(jié)果顯示.
通過(guò)以上仿真過(guò)程,可以看出,利用Proteus進(jìn)行單片機(jī)設(shè)計(jì),可以直觀地觀察到系統(tǒng)仿真控制效果,為單片機(jī)的開(kāi)發(fā)帶來(lái)極大的方便.Proteus ISIS以其特有的虛擬仿真技術(shù)很好的解決了單片機(jī)及其外圍電路的設(shè)計(jì)和協(xié)同仿真問(wèn)題,可以在沒(méi)有單片機(jī)實(shí)際硬件的條件下,利用PC進(jìn)行虛擬仿真實(shí)現(xiàn)單片機(jī)的軟、硬件協(xié)同設(shè)計(jì),仿真結(jié)果可以直接用于真實(shí)設(shè)計(jì),極大的提高了單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)效率.采用Proteus虛擬仿真技術(shù),可以在原理圖設(shè)計(jì)階段對(duì)系統(tǒng)性能進(jìn)行評(píng)估,驗(yàn)證所設(shè)計(jì)電路是否達(dá)到技術(shù)指標(biāo)要求,使設(shè)計(jì)過(guò)程變得簡(jiǎn)單容易,降低了解決問(wèn)題的成本.
[1]朱清慧,張鳳蕊,翟天嵩,等.Proteus教程——電子線路設(shè)計(jì)、制版與仿真[M].北京:清華大學(xué)出版社,2008:1~2
[2]孫凌燕,黃允千.Proteus與Keil軟件的整合在單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2008,27(4)
[3]范磊,張祖立,崔玉潔.基于Proteus與Keil的采摘機(jī)械手控制系統(tǒng)仿真[J].農(nóng)機(jī)化研究2007,12