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