基于Proteus的溫控報(bào)警器設(shè)計(jì)
摘要:利用仿Proteus真軟件實(shí)現(xiàn)了基于AT89C51單片機(jī)的溫控報(bào)警器仿真設(shè)計(jì)。詳細(xì)分析溫控報(bào)警器的硬件設(shè)計(jì)原理,并在Keil開(kāi)發(fā)環(huán)境下設(shè)計(jì)了對(duì)應(yīng)的驅(qū)動(dòng)程序,在Proteus中完成了軟、硬件的聯(lián)合仿真調(diào)試,最后給出了仿真運(yùn)行結(jié)果。通過(guò)Proteus軟件和Kell軟件的聯(lián)合調(diào)試,大大縮短了開(kāi)發(fā)周期,降低開(kāi)發(fā)成本。該設(shè)計(jì)的電路及驅(qū)動(dòng)程序?qū)ο鄳?yīng)的實(shí)際應(yīng)用系統(tǒng)具有一定的借鑒作用。
關(guān)鍵詞:Proteus;Keil;溫控報(bào)警器;仿真;程序
Proteus軟件是由英國(guó)Lab Center Elec—tronics公司開(kāi)發(fā)的最新版本EDA工具軟件,它集電路設(shè)計(jì)、制版及仿真等多種功能于一身,是目前世界上最先進(jìn)、最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺(tái)。它是一種可視化的支持多種型號(hào)單片機(jī)(如51、PIC、AVR、Motorola hcll等),并且支持與當(dāng)前流行的單片機(jī)開(kāi)發(fā)環(huán)境(Keil、MPLAB、LAR)連接調(diào)試的軟硬件仿真系統(tǒng)。針對(duì)微控制系統(tǒng)與外設(shè)的混合電路的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真,做到了一體化和互動(dòng)效果。
Proteus包含以下應(yīng)用軟件:
ISIS——智能原理圖輸入系統(tǒng),系統(tǒng)設(shè)計(jì)與仿真的基本平臺(tái)。
IARES——高級(jí)PCB布線編輯軟件。
在Proteus中,從原理圖設(shè)計(jì)、單片機(jī)編程、系統(tǒng)仿真到PCB設(shè)計(jì)一氣呵成。真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。使用Proteus可以直觀的看到設(shè)計(jì)效果,可以縮短開(kāi)發(fā)周期。
KeilμVision3是單片機(jī)源程序設(shè)計(jì)與編譯軟件,它支持匯編與C語(yǔ)言,能夠?qū)Τ绦蜻M(jìn)行調(diào)試并轉(zhuǎn)換成其他形式的文件。
本文在Proteus ISIS平臺(tái)上設(shè)計(jì)一個(gè)能夠檢測(cè)溫度變化并顯示實(shí)時(shí)顯示溫度,在規(guī)定的溫度范圍內(nèi)報(bào)警的溫控報(bào)警器,可廣泛應(yīng)用于生產(chǎn)生活中需要溫度控制的場(chǎng)合。溫度報(bào)警的范圍可通過(guò)程序修改。
1 系統(tǒng)硬件電路設(shè)計(jì)
溫控報(bào)警器硬件電路主要由AT89C51單片機(jī)最小系統(tǒng)、ADC0808模數(shù)轉(zhuǎn)換器組成的溫度采集模塊、四位LED顯示單元構(gòu)成的顯示電路、報(bào)警電路構(gòu)成。硬件電路的組成如圖1所示。
下面具體分析各部分電路的設(shè)計(jì)原理:
1)單片機(jī)最小系統(tǒng)包括AT89C51單片機(jī)一塊,時(shí)鐘電路(12 MHz晶振)、復(fù)位電路(上電復(fù)位)。
2)溫度采集模塊 包括ADC0808模數(shù)轉(zhuǎn)換器芯片一塊,用可變電阻模擬電壓變化,在實(shí)際應(yīng)用中可采用溫度傳感器來(lái)替代。通過(guò)模數(shù)轉(zhuǎn)換器將采集到電壓信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),使用通道0輸入電壓信號(hào),轉(zhuǎn)換后的數(shù)字信號(hào)通過(guò)P1口輸入到單片機(jī)內(nèi)部。
3)顯示電路包括四位共陰LED數(shù)碼顯示管,采用動(dòng)態(tài)顯示方式,由P0口輸出段碼,P2口的P2.0-P2.3輸出位碼。該部分電路主要用于實(shí)時(shí)顯示環(huán)境溫度。
4)報(bào)警電路包括揚(yáng)聲器和兩個(gè)發(fā)光二極管,揚(yáng)聲器在溫度超出范圍時(shí)發(fā)出聲音報(bào)警,發(fā)光二極管隨之發(fā)光報(bào)警。兩個(gè)發(fā)光二極管分別用于溫度高出范圍和低于范圍時(shí)報(bào)警,揚(yáng)聲器也會(huì)發(fā)出兩種不同音調(diào)的聲音。
硬件電路在Proteus軟件環(huán)境下完成原理圖的設(shè)計(jì),主要元器件清單如下:四位共陰LED數(shù)碼管7SEG-M PX4-CC-BLUE,模數(shù)轉(zhuǎn)換器ADC08 08,單片機(jī)AT89C51,電容CAP,極性電容CAP-ELEC,晶振CRYSTAL,黃色發(fā)光二極管LED-YELLOW,可變電阻POT-HG,電阻RES,排阻RESPACK-8,揚(yáng)聲器SOUNDER。在環(huán)境溫度小于60度和高于160度時(shí)報(bào)警。
2 軟件程序設(shè)計(jì)
溫控報(bào)警器的主要功能由程序控制,本設(shè)計(jì)采用C語(yǔ)言完成程序的設(shè)計(jì),在KeilttVision3軟件中完成調(diào)試。程序主要包含主程序、顯示子程序、定時(shí)器中斷程序等3部分。
2.1 主程序設(shè)計(jì)
主程序完成的主要內(nèi)容有:定時(shí)器/計(jì)數(shù)器參數(shù)設(shè)置、啟動(dòng)模數(shù)轉(zhuǎn)換、讀取模數(shù)轉(zhuǎn)換結(jié)果、根據(jù)讀取內(nèi)容判斷是否報(bào)警等。主程序流程圖如圖2所示。
2.2 顯示子程序
顯示子程序主要用于顯示溫度,可以直觀的察看溫度。采用動(dòng)態(tài)顯示方式,P0口輸出段碼,P2口輸出位碼。下面給出部分代碼:
2.3 定時(shí)器/計(jì)數(shù)器中斷程序
該部分包含兩部分,T0定時(shí)器/計(jì)數(shù)器中斷主要用于為ADC0808提供時(shí)鐘信號(hào),T1定時(shí)器/計(jì)數(shù)器定時(shí)實(shí)現(xiàn)不同頻率脈沖信號(hào)的輸出,驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。該部分代碼不再給出。
3 調(diào)試與運(yùn)行
在Proteus和Keil中進(jìn)行相關(guān)的設(shè)置,可以讓兩者進(jìn)行聯(lián)調(diào),聯(lián)調(diào)可以在同一臺(tái)計(jì)算機(jī)上進(jìn)行,也可以在不同的計(jì)算機(jī)之間進(jìn)行。通過(guò)Proteus與Keil的聯(lián)調(diào)可以輕易做到在不使用硬件的前提下直接在仿真平臺(tái)上進(jìn)行實(shí)時(shí)仿真,對(duì)于系統(tǒng)的調(diào)試具有很大意義。
在硬件電路檢查無(wú)誤和程序編譯無(wú)誤之后,系統(tǒng)即可運(yùn)行.運(yùn)行時(shí)初始狀態(tài)為顯示器顯示溫度為145,調(diào)可變電阻使電阻值發(fā)生變化,使顯示溫度低于60℃,可以觀察到低發(fā)光二極管發(fā)光,揚(yáng)聲器報(bào)警;繼續(xù)調(diào)可變電阻使顯示溫度高于160℃,可以觀察到高發(fā)光二極管發(fā)光,揚(yáng)聲器以另外一種頻率聲音報(bào)警。如果需要調(diào)整報(bào)警溫度范圍,可以通過(guò)修改主程序中的溫度上限和下限值來(lái)實(shí)現(xiàn)。
4 結(jié)束語(yǔ)
文中給出了基于單片機(jī)的簡(jiǎn)易溫控報(bào)警器的設(shè)計(jì)過(guò)程。在該設(shè)計(jì)中采用可變電阻代替溫度傳感器,可添加DS18B20溫度傳感器來(lái)檢測(cè)實(shí)際溫度,利用ADC0808和單片機(jī)完成數(shù)據(jù)分析,實(shí)時(shí)顯示,報(bào)警,實(shí)現(xiàn)溫度高于上限和低于下限時(shí)報(bào)警的基本功能,還可通過(guò)修改程序改變報(bào)警現(xiàn)象。
設(shè)計(jì)過(guò)程中利用Proteus與Keil軟件的完美結(jié)合,使本設(shè)計(jì)的設(shè)計(jì)和調(diào)試過(guò)程更加方便快捷,提高了設(shè)計(jì)的一次成功率,節(jié)約了設(shè)計(jì)成本,縮小了設(shè)計(jì)周期。該設(shè)計(jì)的電路及驅(qū)動(dòng)程序?qū)ο鄳?yīng)的實(shí)際應(yīng)用系統(tǒng)具有一定的借鑒作用。