羅 敏,劉 嵩,彭剛彬
(1.湖北民族學(xué)院理學(xué)院,湖北 恩施 445000;2.湖北民族學(xué)院信息工程學(xué)院,湖北恩施 445000)
隨著科技的發(fā)展和人們生活水平的提高,人們對于室內(nèi)環(huán)境的安全性和舒適性提出了更高的要求,需要實(shí)時(shí)的監(jiān)測室內(nèi)的溫度、濕度、空氣質(zhì)量等環(huán)境參數(shù).由于單片機(jī)具有功耗低、價(jià)格低廉、設(shè)計(jì)簡單等優(yōu)點(diǎn),本文以STC89C516單片機(jī)為核心處理器,結(jié)合溫濕度傳感器和煙霧傳感器等,設(shè)計(jì)了一個(gè)室內(nèi)環(huán)境監(jiān)測系統(tǒng).
本文系統(tǒng)選用的單片機(jī)是STC公司生產(chǎn)的89C516單片機(jī).STC 89C516是采用8051內(nèi)核的在線可編程器件,工作頻率范圍在0到35 MHz之間.芯片片內(nèi)集成了傳統(tǒng)的8位處理器ISP Flash存儲器,擁有40個(gè)引腳,其中有32個(gè)I/O口可供用戶使用,它具有5個(gè)中斷源,還可擴(kuò)展外部程序存儲器[1].
系統(tǒng)的總體結(jié)構(gòu)如圖1所示.系統(tǒng)以單片機(jī)為核心,包括溫濕度測量模塊、煙霧測量模塊、時(shí)鐘模塊、電源模塊、顯示模塊以及控制與報(bào)警模塊.其中,時(shí)鐘模塊為系統(tǒng)提供實(shí)時(shí)時(shí)間,顯示模塊顯示系統(tǒng)測量的環(huán)境狀態(tài),控制與報(bào)警模塊提供環(huán)境狀態(tài)的警戒閾值和聲光報(bào)警功能.
圖1 系統(tǒng)的總體結(jié)構(gòu)Fig.1 General block diagram of the system
時(shí)鐘電路為整個(gè)系統(tǒng)提供實(shí)時(shí)時(shí)間,本系統(tǒng)選用的時(shí)鐘芯片是DALLAS公司的DS 1302.DS1302芯片內(nèi)部擁有數(shù)據(jù)存儲器,具有主電源、后備電源的雙電源引腳,即使突然斷電,時(shí)鐘的當(dāng)前數(shù)據(jù)信息也不會丟失[2].DS1302時(shí)鐘電路設(shè)計(jì)如圖2所示,DS 1302的VCC1接后備電壓為3V的紐扣電池,VCC2接5V主電源,GND接電源負(fù)極.DS1302芯片的引腳X1和X2之間接入一個(gè)晶振,晶振大小為32.768 kHz.RST為片選端,接單片機(jī)的P2.2口.I/O為串行數(shù)據(jù)輸入輸出端,接單片機(jī)的P2.1口,SCLK為時(shí)鐘輸入端,接單片機(jī)的P2.0口.
系統(tǒng)選擇的溫濕度傳感器是DHT 11,DHT 11溫濕度傳感器是一種數(shù)字型傳感器,DHT 11內(nèi)部自帶由校準(zhǔn)系統(tǒng),與DS18B20溫度傳感器比,具有可以同時(shí)測量環(huán)境的溫度和濕度的優(yōu)勢[3-4],接線方式也較為簡單,其硬件電路如圖3所示.在設(shè)計(jì)中,DATA端口接STC 89C516的P1.0口,為了穩(wěn)定輸出信號,DATA端口接一個(gè)4.7 K上拉電阻.當(dāng)處理器向DHT 11發(fā)送啟動(dòng)信號后,溫濕度傳感器被喚醒,隨后DHT 11轉(zhuǎn)到正常運(yùn)行模式;當(dāng)啟動(dòng)信號結(jié)束后,DHT 11向處理器STC 89C516發(fā)送響應(yīng)信號,然后采集的40位的溫濕度數(shù)據(jù),用戶可根據(jù)這40位數(shù)據(jù)得到當(dāng)前的溫濕度信息.DHT 11接收到處理器發(fā)送的啟動(dòng)信號后就啟動(dòng)一次數(shù)據(jù)采集,沒有接收啟動(dòng)信號,DHT 11就會轉(zhuǎn)到低功耗模式.
系統(tǒng)采用的是MQ-2煙霧傳感器,主要監(jiān)測對象有:CO、CH4、H2、CCL3F、C2H5OH 等[5].煙霧測量模塊硬件電路如圖 4 所示,PCF 8591是一種具有I2C總線接口的逐次比較型A/D及D/A轉(zhuǎn)換芯片,AO端為煙霧傳感器的模擬電壓輸出口,其接入模數(shù)轉(zhuǎn)換器PCF8591的AIN0口.時(shí)鐘口SCL和數(shù)據(jù)口SDA分別接P3.1與P3.0,實(shí)現(xiàn)與STC89C516的信號傳輸.
圖2 時(shí)鐘電路Fig.2 The clocking circuit of the system
圖3 溫濕度測量電路Fig.3 The measuring circuits of temperature and humidity
圖4 煙霧測量電路Fig.4 The measuring circuits of smoke
系統(tǒng)的軟件流程如圖5所示,系統(tǒng)上電后,系統(tǒng)首先對LCD、定時(shí)器、端口進(jìn)行初始化,然后進(jìn)入程序循環(huán)階段.在循環(huán)階段,通過定時(shí)器延時(shí)實(shí)現(xiàn)線程的管理.在本系統(tǒng)中,由于所檢測的環(huán)境狀態(tài)變化比較緩慢,設(shè)置延時(shí)時(shí)間為120 s,而按鍵、時(shí)鐘請求實(shí)時(shí)性要求較高,設(shè)置延時(shí)時(shí)間為1 s.
DS1302實(shí)時(shí)時(shí)鐘有三個(gè)端口 RST、I/O、SCLK,其中,RST為片選端,只有當(dāng)RST為“1”時(shí),才能允許對DS1302進(jìn)行讀寫操作.DS1302時(shí)鐘寄存器的最高位決定小時(shí)制式.邏輯1為1 2小時(shí)制,邏輯0為2 4小時(shí)制,系統(tǒng)默認(rèn)為2 4小時(shí)制.控制寄存器僅最后WP位有效,WP為低電平時(shí),解除寫保護(hù);WP為高電平時(shí),開啟寫保護(hù)[6].當(dāng)通過按鍵調(diào)節(jié)時(shí)間時(shí),必須首先通過軟件打開寫保護(hù),時(shí)鐘讀取函數(shù)的部分程序如下:
圖5 軟件流程圖Fig.5 Software flow diagram of the system
在時(shí)鐘讀取函數(shù)中,add為時(shí)間變量地址,*add為相應(yīng)地址所對應(yīng)的數(shù)值.當(dāng)程序運(yùn)行add++時(shí),*add就對應(yīng)下一個(gè)地址的數(shù)值,因此通過Re_Ds 1302()函數(shù)讀出數(shù)據(jù),再經(jīng)過7次循環(huán)就可以分別讀出年、月、日、周、時(shí)、分、秒等數(shù)據(jù).
DHT11的數(shù)據(jù)傳輸?shù)臄?shù)據(jù)順序?yàn)?位濕度整數(shù)數(shù)據(jù)、8位濕度小數(shù)數(shù)據(jù) 、8位溫度整數(shù)數(shù)據(jù)、8位溫度小數(shù)數(shù)據(jù)、8位校驗(yàn)數(shù)據(jù)[7].P1.0口輸出低電平后,至少需延時(shí)18毫秒,才能保證DHT11溫濕度傳感器能檢測到單片機(jī)發(fā)送的起始信號.部分讀寫程序如下:
本系統(tǒng)實(shí)現(xiàn)了一種以STC89C516單片機(jī)為核心處理器的環(huán)境監(jiān)測系統(tǒng),可以監(jiān)控溫度、濕度及煙霧等室內(nèi)環(huán)境參數(shù),通過選擇不同的傳感器也可以監(jiān)控其它參數(shù)指標(biāo).實(shí)驗(yàn)結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,能準(zhǔn)確的測量環(huán)境信息,而且成本低廉,可擴(kuò)展性強(qiáng),有一定的應(yīng)用價(jià)值.
[1]耿濤,趙光,陶志勇.基于STC89C516單片機(jī)的數(shù)字光功率計(jì)設(shè)計(jì)[J].電子元器件應(yīng)用,2008,10(11):8-10.
[2]李偉躍.基于時(shí)鐘芯片DS1302的萬年歷的設(shè)計(jì)[J].科技創(chuàng)新導(dǎo)報(bào),2012(9):20-21.
[3]楊慶.蔬菜大棚多點(diǎn)溫度測控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].湖北民族學(xué)院學(xué)報(bào):自然科學(xué)版,2008,26(2):187-189.
[4]顏麗娜,王順忠,張鐵民.基于DHT11溫濕度測控系統(tǒng)的設(shè)計(jì)[J].海南師范大學(xué)學(xué)報(bào):自然科學(xué)版,2013,26(4):397-399.
[5]劉竹琴,白澤生.一種高精度可燃?xì)怏w檢測報(bào)警器設(shè)計(jì)[J].傳感器與微系統(tǒng),2013,32(7):71-73.
[6]李長有,王文華.基于DHT11溫濕度測控系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2013,41(13):95-97.
[7]姚德法,張洪林.串行時(shí)鐘芯片DS1302的原理與使用[J].信息技術(shù)與信息化,2006(1):92-94.