王慶剛 張晉
(1.西南石油大學(xué)網(wǎng)絡(luò)與信息化中心,四川成都 610500;2.西南石油大學(xué)電氣信息學(xué)院,四川成都 610500)
隨著社會(huì)和科技高速發(fā)展,人們工作的環(huán)境條件也在不斷提高,環(huán)境的多變導(dǎo)致人們對(duì)工作環(huán)境的安全更為重視,尤其是一些存放重要設(shè)備的機(jī)房?jī)?nèi),更是需要嚴(yán)加看護(hù),而眾多隱患中,火災(zāi)高溫隱患對(duì)儀器設(shè)備的危害性最高,因此本文設(shè)計(jì)了一種基于單片機(jī)的機(jī)房溫度預(yù)警系統(tǒng),本系統(tǒng)應(yīng)用Proteus進(jìn)行仿真,易操作、實(shí)用性高,能夠及時(shí)發(fā)現(xiàn)機(jī)房高溫隱患,從而有效減少設(shè)備的損失。
本設(shè)計(jì)主要由52單片機(jī),DS18B20溫度傳感器,數(shù)碼管顯示屏,蜂鳴器等組件構(gòu)成:DS18B20用于采集溫度數(shù)據(jù)并反饋,數(shù)碼管顯示屏用于顯示溫度數(shù)值,蜂鳴器用于產(chǎn)生報(bào)警信號(hào),而控制操作這一切流程的程序,則被寫入于52單片機(jī)內(nèi)部芯片內(nèi)。系統(tǒng)的總體流程圖如圖1。
52單片機(jī)對(duì)比于51類,不僅有51單片機(jī)的特性,更甚于說(shuō)比51更為強(qiáng)大,單片機(jī)系統(tǒng)采用C語(yǔ)言編寫,開(kāi)發(fā)環(huán)境為Keiluvision4,AT89C52是擁有低電壓高性能特點(diǎn)的CMOS 8位單片機(jī),片內(nèi)有8kb的反復(fù)可擦寫只讀程序存儲(chǔ)器(ROM)以及256B的隨機(jī)存儲(chǔ)數(shù)據(jù)器(RAM),適用MCS-51指令以及51系列引腳,片內(nèi)配8位中央處理器,FLASH存儲(chǔ)單元也是一大亮點(diǎn)與特點(diǎn)。而實(shí)際進(jìn)行設(shè)計(jì)組裝時(shí),選擇了功能較為完整的52單片機(jī)開(kāi)發(fā)板,易獲得,易操作是其特點(diǎn)之一。開(kāi)發(fā)板采用RC復(fù)位方式,總體程序?qū)懭牒筮\(yùn)行,如果出現(xiàn)程序跑飛,利用RESET按鍵即可復(fù)位。
對(duì)于溫度信號(hào)的采集,本設(shè)計(jì)利用DS18B20溫度傳感器采集,其擁有體積小,功耗低,抗干擾的優(yōu)點(diǎn),其溫度的測(cè)量范圍為-55°C-+125°C,足以靈敏地對(duì)高溫信號(hào)作出反應(yīng),DS18B20的三個(gè)引腳,一個(gè)接電源,一個(gè)接地,一個(gè)接數(shù)字輸出/輸入引腳。DS18B20擁有掉電保護(hù)的功能,后接JK觸發(fā)器,與ADC0808 A/D轉(zhuǎn)換芯片相連。ADC0808是含8位A/D 轉(zhuǎn)換器、8路多路開(kāi)關(guān),以及與微型計(jì)算機(jī)兼容的控制邏輯的CMOS組件,利用逐次逼近型的轉(zhuǎn)換方法。ADC0808的精度為1/2LSB。8 路的模擬開(kāi)關(guān)的通斷由地址鎖存器和譯碼器控制,可以在8 個(gè)通道中任意訪問(wèn)一個(gè)單邊的模擬信號(hào)。經(jīng)過(guò)ADC0808的信號(hào)交由單片機(jī)處理判斷是否達(dá)到報(bào)警溫度值。
圖1 系統(tǒng)總體流程
圖2 總體設(shè)計(jì)原理
對(duì)于溫度顯示,可以采用多位LED數(shù)碼管動(dòng)態(tài)顯示或多位LED數(shù)碼管靜態(tài)顯示,對(duì)于位數(shù)不多,溫度要求不是特別精確的本題來(lái)說(shuō),可以采用多位LED數(shù)碼管靜態(tài)顯示,采用這種方法時(shí),有一優(yōu)點(diǎn)就是LED顯示器由接口芯片直接來(lái)驅(qū)動(dòng),利用串行輸出的方式節(jié)約單片機(jī)的內(nèi)部資源,小電流亦能提供高顯示亮度,減少損耗與浪費(fèi)。另外,74LS164用來(lái)實(shí)現(xiàn)串并轉(zhuǎn)換,不需要其他的驅(qū)動(dòng)電路,LED具有易控制,電路簡(jiǎn)單,高亮度,占CPU少等特點(diǎn),無(wú)需太多接口資源,即可滿足設(shè)計(jì)要求。
一般而言,報(bào)警裝置選用蜂鳴器或者揚(yáng)聲器來(lái)使用,我們采用揚(yáng)聲器組件來(lái)作為報(bào)警裝置,即由一個(gè)三極管,一片模擬四聲訊響器,一片音頻功率放大器LM386并配備一個(gè)揚(yáng)聲器(2w喇叭)。產(chǎn)生報(bào)警信號(hào)時(shí),由單片機(jī)首先導(dǎo)通三極管然后驅(qū)動(dòng)訊響器,由于輸出信號(hào)功電流不夠大,功率弱,所以通過(guò)功率放大器,通過(guò)12V下的大電流驅(qū)動(dòng)揚(yáng)聲器,從而產(chǎn)生較大分貝的報(bào)警鳴響。如果需要更大的報(bào)警聲響,可以接入外接設(shè)備來(lái)進(jìn)行增益。
本設(shè)計(jì)中采用的單片機(jī)芯片,LED數(shù)碼管顯示以及報(bào)警用蜂鳴器等裝置,需要電壓不是很高,所以外置電源5V即可,可以利用可充電式電池做一個(gè)簡(jiǎn)易供電設(shè)備??傮w設(shè)計(jì)原理圖2。
圖3 系統(tǒng)實(shí)現(xiàn)效果
軟件設(shè)計(jì)部分主要是利用Keiluvision4環(huán)境進(jìn)行編程,實(shí)現(xiàn)日常溫度顯示,高溫產(chǎn)生信號(hào)反饋至芯片,判斷是否達(dá)到預(yù)設(shè)危險(xiǎn)高溫值,再驅(qū)動(dòng)蜂鳴器進(jìn)行報(bào)警。系統(tǒng)的核心功能代碼如下:
....
void main()
{
LcdInit(); //初始化LCD1602
LcdWriteCom(0x88); //寫地址 80表示初始地址
LcdWriteData('C');
while(1)
{
LcdDisplay(Ds18b20ReadTemp());
// Delay1ms(1000);//1s鐘刷一次
}
}
....
void LcdDisplay(int temp) //
{
unsigned char datas[] = {0, 0, 0, 0, 0};
float tp;
if(temp< 0)
{
LcdWriteCom(0x80);
LcdWriteData('-');
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
}
....
設(shè)計(jì)本身正常情況下,數(shù)碼管顯示的是正常室溫,以便可以對(duì)照是否溫度標(biāo)準(zhǔn)是否出現(xiàn)偏差,及時(shí)矯正。在設(shè)計(jì)過(guò)程中,經(jīng)考慮儀器的高溫承受程度,所以在程序內(nèi)預(yù)設(shè)50度為報(bào)警溫度,若在溫度傳感器接收到高于50度的溫度信號(hào),就會(huì)反饋至設(shè)備內(nèi)部,迅速報(bào)警。在進(jìn)行試驗(yàn)?zāi)M高溫情景時(shí),利用多種熱源進(jìn)行試驗(yàn),均可以引發(fā)溫度報(bào)警且靈敏度沒(méi)有受高溫的影響,同時(shí)由于日常設(shè)備開(kāi)啟狀態(tài)時(shí)不需要太多負(fù)載,所以設(shè)備本身的溫度影響可以做到忽略不計(jì)。系統(tǒng)實(shí)現(xiàn)效果圖如圖3。
本文中基于52單片機(jī)系統(tǒng)設(shè)計(jì)的室內(nèi)高溫報(bào)警系統(tǒng),成本較低廉,易于操作,由于實(shí)驗(yàn)室條件限制,所以暫時(shí)只能對(duì)溫度進(jìn)行報(bào)警而不能進(jìn)行實(shí)時(shí)測(cè)量以及溫度數(shù)據(jù)反饋,但是若對(duì)于一些要求偏低的室內(nèi),簡(jiǎn)單與快捷也就成了優(yōu)點(diǎn)與特色。另外,以該系統(tǒng)為基礎(chǔ)模板,可以根據(jù)實(shí)際應(yīng)用需求直接進(jìn)行相關(guān)方面的升級(jí),可塑性比較大。在推進(jìn)全社會(huì)工業(yè)自動(dòng)化的今天,必將為我們的工作和生活提供便利。
[1]潘新民.微型計(jì)算機(jī)控制技術(shù)[M].電子工業(yè)出版社,2013.
[2]李大為.WINDOWS CE工程實(shí)踐解析[M].中國(guó)電力出版社,2008.
[3]張毅剛,彭喜元,等.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)[M].哈爾濱工業(yè)大學(xué)出版社,2003.
[4]楊恢先,黃輝先,等.單片機(jī)原理及應(yīng)用[M].人民郵電出版社,2006.