摘 要:在電路實(shí)時(shí)仿真、調(diào)試、測(cè)試的實(shí)驗(yàn)中,運(yùn)用Proteus對(duì)電路進(jìn)行仿真性分析。該文介紹了運(yùn)用Proteus的ISIS軟件進(jìn)行基本電子線路的仿真分析方法,同時(shí)通過(guò)比較分析了Proteus在電子線路仿真實(shí)驗(yàn)中具有的優(yōu)勢(shì)。
關(guān)鍵詞:Proteus 電路仿真實(shí)驗(yàn) 單片機(jī)
中圖分類(lèi)號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2014)05(b)-0044-03
在電子線路的設(shè)計(jì)和學(xué)習(xí)中,EDA設(shè)計(jì)和仿真是一個(gè)十分重要的環(huán)節(jié),利用虛擬的實(shí)驗(yàn)平臺(tái),不僅能夠直觀而準(zhǔn)確地對(duì)電路進(jìn)行仿真設(shè)計(jì),而且更易于被學(xué)習(xí)者接受和理解,同時(shí)減少實(shí)驗(yàn)和制作成本。Proteus以其獨(dú)特的功能優(yōu)勢(shì)各高校電子相關(guān)專(zhuān)業(yè)的電路仿真和設(shè)計(jì)中得到廣泛的應(yīng)用。
該文以Proteus為仿真平臺(tái),詳細(xì)介紹利用其直觀而強(qiáng)大的電路設(shè)計(jì)與分析工具實(shí)現(xiàn)對(duì)電子線路的實(shí)驗(yàn)仿真。
1 Proteus的功能及設(shè)計(jì)方法
Proteus是一個(gè)集成化的電路虛擬仿真軟件,其電路仿真功能強(qiáng)大,且獨(dú)特的單片機(jī)仿真功能是Multisim及其他任何仿真軟件都不具備的,同時(shí)PCB電路制版功能可以和Protel相媲美[1]。它包含ISIS和ARES應(yīng)用軟件,具體功能分布如圖1所示。ISIS應(yīng)用軟件是智能原理圖輸入系統(tǒng),系統(tǒng)設(shè)計(jì)與仿真的基本平臺(tái),可以仿真、分析各種模擬器件和基礎(chǔ)電路;ARES是高級(jí)PCB布線編輯軟件[2]。在Proteus中,從原理圖設(shè)計(jì)、單片機(jī)編程、系統(tǒng)仿真到PCB設(shè)計(jì),能真正實(shí)現(xiàn)從概念到產(chǎn)品的完整設(shè)計(jì),該文主要介紹利用ISIS應(yīng)用軟件實(shí)現(xiàn)四路彩燈的仿真測(cè)試與分析。
2 四路彩燈的純硬件分析設(shè)計(jì)與仿真
四路彩燈是數(shù)字電路設(shè)計(jì)中的一個(gè)非常有趣的課題,利用純硬件電路來(lái)實(shí)現(xiàn)四個(gè)彩燈的控制,使得彩燈按設(shè)計(jì)要求亮或者滅。雖然利用單片機(jī)在Proteus環(huán)境下能夠非常簡(jiǎn)單的實(shí)現(xiàn)此課題,但在數(shù)字電路的學(xué)習(xí)中,此純硬件電路的設(shè)計(jì)能夠很好地幫助學(xué)習(xí)者實(shí)現(xiàn)對(duì)數(shù)字邏輯關(guān)系的深層理解,同時(shí)Proteus直觀方便的界面能使枯燥的數(shù)字邏輯關(guān)系在教學(xué)的課堂上顯得豐富多彩,虛擬的仿真能使學(xué)習(xí)者有身臨其境的實(shí)踐效果。
2.1 設(shè)計(jì)要求
設(shè)計(jì)一個(gè)彩燈控制電路,利用純硬件電路使得4個(gè)彩燈實(shí)現(xiàn)如下三個(gè)過(guò)程:
(1)4個(gè)燈依次點(diǎn)亮,每燈亮1 s,共4 s;
(2)4個(gè)燈依次熄滅,先亮的燈后滅,共4 s;
(3)4個(gè)燈同時(shí)亮1下滅1下,閃4下,共4 s。
2.2 電路分析設(shè)計(jì)
此課題的設(shè)計(jì)是在一定數(shù)字電路學(xué)習(xí)基礎(chǔ)上進(jìn)行的,4個(gè)彩燈的實(shí)現(xiàn)可以用四個(gè)發(fā)光二極管表示,要實(shí)現(xiàn)彩燈在12 s內(nèi)的三個(gè)循環(huán)過(guò)程,其核心是四位雙向通用移位寄存器74LS194。4個(gè)彩燈應(yīng)連接在74LS194的Q0~Q3上,DSR穩(wěn)定接高電平,DSL穩(wěn)定接低電平,P0~P3接周期為1秒的方波信號(hào)。接下來(lái)需要考慮時(shí)鐘和方式控制的信號(hào)如何實(shí)現(xiàn)。
由課題的設(shè)計(jì)要求可知,彩燈閃爍的周期是12 s,前8 s實(shí)現(xiàn)依次點(diǎn)亮和依次熄滅(先亮后滅)的功能,每個(gè)彩燈的時(shí)鐘信號(hào)頻率為1 Hz;后4 s實(shí)現(xiàn)同時(shí)閃爍4次的功能,故后4 s的時(shí)鐘頻率應(yīng)為前8 s的2倍,即2 Hz。理論上可以用555定時(shí)器產(chǎn)生2 Hz的方波信號(hào),再用D觸發(fā)器分頻產(chǎn)生1 Hz的方波信號(hào),這樣就可以實(shí)現(xiàn)所需的時(shí)鐘信號(hào);除此之外可以采用晶振、CD4060和合適的門(mén)電路來(lái)實(shí)現(xiàn)1 Hz的時(shí)鐘信號(hào)。
彩燈三個(gè)狀態(tài)的循環(huán)可以由S1S0按01、10、11順序循環(huán)來(lái)實(shí)現(xiàn),為了幫助學(xué)習(xí)者更好理解時(shí)序邏輯電路,可以使用D觸發(fā)器設(shè)計(jì)一個(gè)同步三進(jìn)制計(jì)數(shù)器,時(shí)鐘周期為4 s,實(shí)現(xiàn)對(duì)S1S0的循環(huán)控制。
由以上設(shè)計(jì)分析后,在Proteus中繪制好電路原理圖如圖2所示,其中時(shí)鐘產(chǎn)生電路直接用脈沖信號(hào)源代替。
2.3 電路仿真驗(yàn)證
單擊Proteus ISIS界面中的“Play”開(kāi)關(guān)即可啟動(dòng)電路仿真。此時(shí)可以非常清楚地看到電路中各節(jié)點(diǎn)的電平高低情況,同時(shí)四只彩燈也會(huì)依次按要求亮滅。如果不能滿(mǎn)足設(shè)計(jì)要求,則可以根據(jù)彩燈的亮暗顯示和各節(jié)點(diǎn)的電平情況較輕松地找出問(wèn)題所在,不僅能夠解決設(shè)計(jì)問(wèn)題,而且能很好地幫助學(xué)習(xí)者理解電路及各部分功能。
Proteus還提供了很多自帶的虛擬測(cè)量工具,比如此例中可以利用示波器來(lái)實(shí)時(shí)觀測(cè)電路中重要節(jié)點(diǎn)的波形。如圖3給出的是加在4個(gè)彩燈上的信號(hào)波形。由圖中可以看出,橫軸每小格表示的時(shí)間長(zhǎng)度是0.5 s,從圖示的0時(shí)刻開(kāi)始D1~D4同時(shí)亮滅,閃爍一次的周期是1 s;隨后D1亮1 s后D2亮,依次直到D4亮1 s;下一個(gè)動(dòng)作是D4到D1依次熄滅,間隔時(shí)間是1 s,滿(mǎn)足課題的設(shè)計(jì)要求。
3 四路彩燈的單片機(jī)設(shè)計(jì)與仿真
目前,單片機(jī)的應(yīng)用越來(lái)越廣泛,在電路系統(tǒng)的學(xué)習(xí)中,如果光靠書(shū)本進(jìn)行理論學(xué)習(xí),不僅空洞乏味,而且效果很不理想;如果都利用實(shí)物進(jìn)行試驗(yàn)設(shè)計(jì),不僅成本較高,而且費(fèi)時(shí)費(fèi)力。所以,Proteus軟件為學(xué)習(xí)者和設(shè)計(jì)者提供了一個(gè)很好的虛擬實(shí)驗(yàn)平臺(tái),基于單片機(jī)的電子系統(tǒng)仿真是Proteus的特色,它完全支持MCS-51及其派生系列單片機(jī)的設(shè)計(jì)系統(tǒng),另外也能仿真基于AVR和PIC系列的單片機(jī)系統(tǒng)[2]。仍然以四路彩燈的課題為例來(lái)看看Proteus在單片機(jī)的學(xué)習(xí)和應(yīng)用中的優(yōu)勢(shì)。
3.1 電路的設(shè)計(jì)
運(yùn)行Proteus ISIS后在編輯窗口繪制電路原理圖,此設(shè)計(jì)中的電路非常簡(jiǎn)單,從元件庫(kù)中調(diào)出AT89C51單片機(jī)放入編輯窗口的合適位置,在單片機(jī)的18引腳和19引腳上接入由C1、C2和晶振X1構(gòu)成的時(shí)鐘電路,在9號(hào)引腳上接入由R1、C3構(gòu)成的上電復(fù)位電路。然后在P10~P13上接D1~D4 4個(gè)發(fā)光二極管,再在后面串上限流電阻接地就行了。完成后的電路圖如圖4所示。
3.2 軟件的編制
程序的編輯在Keil軟件中實(shí)現(xiàn),這里使用KeilC μVision4開(kāi)發(fā)環(huán)境,首先打開(kāi)軟件,單擊Project/New uVision Project新建一個(gè)工程,在保存時(shí)會(huì)彈出一個(gè)“選擇單片機(jī)型號(hào)”的對(duì)話框,這里選用Atmel的89C51。然后設(shè)置輸出需要生成“HEX”文件。現(xiàn)在可以通過(guò)File/New來(lái)編寫(xiě)程序了,注意程序若用C語(yǔ)言編寫(xiě),則保存時(shí)文件名后綴需用“.c”;程序若用匯編語(yǔ)言編寫(xiě),則保存時(shí)文件名后綴需用“.asm”。
要實(shí)現(xiàn)4個(gè)燈依次點(diǎn)亮,每燈亮1 s,然后4個(gè)燈依次熄滅,先亮的燈后滅,最后4個(gè)燈同時(shí)亮1下滅1下,共閃4下。三個(gè)過(guò)程如此循環(huán)。四路彩燈的源程序如下:
void main()
{
TMOD=0x01 ; //設(shè)置定時(shí)器0為工作方式1
TH0=(65536-45872)/256 ; //寫(xiě)入初值,定時(shí)50ms
TL0=(65536-45872)%256 ;
EA=1; //開(kāi)總中斷
ET0=1; //開(kāi)定時(shí)器0中斷
TR0=1 ; //啟動(dòng)定時(shí)器0
while(1) //程序停止在這里等待中斷發(fā)生
{
if(timer1s_flag>=10) //設(shè)置數(shù)組中每個(gè)字符的顯示時(shí)間是0.5s
{
timer1s_flag = 0;
P1 = ~col_s[count]; //設(shè)置彩燈亮滅順序,按col_s[]數(shù)組內(nèi)依次顯示
count++;
count %= 26;
}
}
}
/*************/
// 定時(shí)器0中斷服務(wù)程序.
/************/
void timer0() interrupt 1 using 2
{
TH0=(65536-45872)/256 ; //重裝初值
TL0=(65536-45872)%256 ;
timer1s_flag++;
}
運(yùn)行Project/Built target對(duì)程序進(jìn)行編譯和修改,直到?jīng)]有錯(cuò)誤出現(xiàn),此時(shí)在保存路徑中會(huì)得到一個(gè)“HEX”的目標(biāo)代碼文件。
3.3 仿真結(jié)果
在已繪制好電路圖的Proteus ISIS界面中,雙擊AT89C51元器件,在出現(xiàn)的窗口中“Program File”欄里將前面生成的“HEX”文件添加進(jìn)來(lái),然后就可以對(duì)電路進(jìn)行仿真了。圖5是仿真后的部分結(jié)果,由于與純硬件電路相比,單片機(jī)電路中發(fā)光二極管公共端接高電平,故此波形在實(shí)際基礎(chǔ)上作了反向處理。利用Proteus與Keil的聯(lián)調(diào),可以很好地實(shí)現(xiàn)單片機(jī)電路的學(xué)習(xí)仿真,并且仿真結(jié)果與工程實(shí)踐十分接近。
4 結(jié)語(yǔ)
該文結(jié)合同一實(shí)例詳解介紹了Proteus軟件在普通電路仿真和單片機(jī)學(xué)習(xí)仿真中的功能。從中可以看出,Proteus功能強(qiáng)大,使用方便,可以作為高等學(xué)校電子電路實(shí)驗(yàn)和單片機(jī)實(shí)驗(yàn)的模擬仿真工具,多門(mén)相關(guān)課程的學(xué)習(xí)仿真只需要這一種軟件即可,避免學(xué)生對(duì)專(zhuān)業(yè)軟件學(xué)習(xí)多且不深的現(xiàn)狀,可以提高學(xué)生的學(xué)習(xí)興趣,同時(shí)還克服了實(shí)驗(yàn)箱教學(xué)中固定硬件資源導(dǎo)致實(shí)驗(yàn)內(nèi)容固定的局限性。而且Proteus還可以為開(kāi)發(fā)者提供很好的仿真平臺(tái),在具體工程實(shí)踐中,降低開(kāi)發(fā)成本,縮短開(kāi)發(fā)周期。
參考文獻(xiàn)
[1]朱清慧,張鳳蕊.Proteus教程電子線路設(shè)計(jì)、制版與仿真[M].北京:清華大學(xué)出版社,2008.
[2]彭利軍,郝海峰.基于Proteus的單片機(jī)系統(tǒng)的虛擬仿真[J].電子與封裝,2006,6(7):36-38.