工程設(shè)計(jì)家用溫濕度測(cè)量報(bào)警系統(tǒng)的設(shè)計(jì)_第1頁
工程設(shè)計(jì)家用溫濕度測(cè)量報(bào)警系統(tǒng)的設(shè)計(jì)_第2頁
工程設(shè)計(jì)家用溫濕度測(cè)量報(bào)警系統(tǒng)的設(shè)計(jì)_第3頁
工程設(shè)計(jì)家用溫濕度測(cè)量報(bào)警系統(tǒng)的設(shè)計(jì)_第4頁
工程設(shè)計(jì)家用溫濕度測(cè)量報(bào)警系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、工程設(shè)計(jì)論文 題 目 家用溫濕度測(cè)量報(bào)警系統(tǒng)的設(shè)計(jì) 學(xué) 院 電子工程學(xué)院 專 業(yè) 電子信息工程 學(xué)生姓名 薄濤(02101192) 陳剛(02101193) 劉月(02101260) 導(dǎo)師姓名 郭萬有 目錄概要.1abstract.11.緒論.21.1課題背景、目的和意義.21.2課題主要任務(wù)及要求.22.設(shè)計(jì)思路.32.1系統(tǒng)分析.32.2器件介紹.32.2.1溫濕度傳感器.32.2.2 單片機(jī).82.2.3 lcd.103.系統(tǒng)設(shè)計(jì).143.1硬件系統(tǒng).143.1.1總電路與原理圖.143.1.2主要模塊的電路.153.2 軟件系統(tǒng).174.結(jié)論.185.致謝.19參考文獻(xiàn).19附錄. 2

2、0 摘要本次設(shè)計(jì)是采用stc系列單片機(jī)中的89c52和dht11的低成本的溫濕度的檢測(cè)系統(tǒng)。本設(shè)計(jì)主要包括硬件電路的設(shè)計(jì)和系統(tǒng)軟件的設(shè)計(jì)。硬件電路主要包括單片機(jī)、溫濕度傳感器、顯示模塊、報(bào)警模塊以及鍵盤等5部分,由dht11溫濕度傳感器及1602字符型液晶模塊構(gòu)成系統(tǒng)顯示模塊,該系統(tǒng)電路簡(jiǎn)單、工作穩(wěn)定、集成度高,調(diào)試方便,測(cè)試精度高,具有一定的實(shí)用價(jià)值。其中測(cè)溫濕度控制電路由溫濕度傳感器和預(yù)設(shè)溫度值比較報(bào)警電路組成,可根據(jù)需要預(yù)先輸入預(yù)設(shè)值,當(dāng)實(shí)際測(cè)量的溫濕度大于預(yù)設(shè)的溫濕度數(shù)值時(shí),發(fā)出報(bào)警信號(hào)。軟件部分包括了主程序、顯示子程序、測(cè)溫濕度子程序。 本次設(shè)計(jì)采用的dht11溫濕度傳感器是一款含有

3、已校準(zhǔn)數(shù)字輸出的溫濕度復(fù)合傳感器,傳感器包括一個(gè)電阻式感濕原件和一個(gè)ntc測(cè)溫元件,并與一個(gè)高性能的8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)?!娟P(guān)鍵詞】 溫度測(cè)量 濕度測(cè)量 stc89c52 dht11abstractthis design is the use of stc series mcu 89c52 and dht11 in the low-cost temperature and humidity detection system. this design includes the design of hardware and system

4、 software design. hardware circuit includes a microcontroller, temperature and humidity sensors, display module, the alarm and the keyboard 5, the dht11 temperature and humidity sensor and 1602 constitute a system of character lcd module display module, the system circuit is simple, stable, high int

5、egration, commissioning convenient, high precision, has some practical value. temperature and humidity control circuit in which the temperature and humidity sensors and compare the value of the preset temperature alarm circuit, the user input required pre-default value, when the actual temperature a

6、nd humidity measurements of temperature and humidity is greater than the preset value, an alarm signal (bee buzzer beep). software part includes the main program, display routines, subroutines side temperature and humiditythe design uses the dht11 temperature and humidity sensors is a digital output

7、 with a calibrated temperature and humidity combined sensor, the sensor includes a resistance and a sense of the original wet ntc temperature measurement devices, and with a high-performance 8-bit microcontroller connected. therefore, the product has excellent quality, fast response, anti-interferen

8、ce ability, high cost and other advantages. 【key words】temperature measurement humidity measurement stc89c52 dht111.緒論1.1課題背景、目的和意義溫度和濕度與人們的生活息息相關(guān),在工農(nóng)業(yè)生產(chǎn),氣象,環(huán)保,國(guó)防,科研等部門,經(jīng)常需要對(duì)環(huán)境溫度及濕度進(jìn)行測(cè)量,準(zhǔn)確測(cè)量溫濕度在生物制藥,食品加工,造紙等行業(yè)更是至關(guān)重要的,傳統(tǒng)的溫度計(jì)是用水銀顯示的,雖然結(jié)構(gòu)簡(jiǎn)單,價(jià)格便宜,但是精度不高,而且不易計(jì)數(shù),但是采用單片機(jī)進(jìn)行控制,不僅具有控制方便,簡(jiǎn)單靈活等優(yōu)點(diǎn),而且可以大幅度提高溫度控制的

9、技術(shù)指標(biāo),用lcd顯示起來會(huì)更加的直觀方便。采用dht11數(shù)字溫濕度傳感器作為檢測(cè)元件,能夠同時(shí)檢測(cè)溫度和濕度,它不僅僅易于焊接,而且只有四個(gè)管角,減少了外圍電路的設(shè)計(jì)。dht11傳感器包括一個(gè)電容式聚合體測(cè)濕原件和一個(gè)能隙式測(cè)溫元件。dht11能夠直接獨(dú)處被測(cè)溫濕度值,同時(shí)單片機(jī)可以把測(cè)量的數(shù)據(jù)通過串口傳到計(jì)算機(jī),來完成控制。帶來了極大的方便,用單片機(jī)控制的溫濕度不僅硬件電路相對(duì)簡(jiǎn)單,而且測(cè)量精度高。隨著人們生活水平的提高,對(duì)生活環(huán)境的要求也越來越高。目前家用智能溫濕度測(cè)量顯示與報(bào)警系統(tǒng)的需求日益增高,因此設(shè)計(jì)一款實(shí)惠又實(shí)用的家庭溫濕度測(cè)量報(bào)警器具有很好的實(shí)際意義。1.2課題主要任務(wù)及要求任

10、務(wù):(1) 了解家用溫濕度測(cè)量報(bào)警系統(tǒng)的原理。 (2) 根據(jù)家用溫濕度測(cè)量報(bào)警系統(tǒng)的原理,設(shè)計(jì)家用溫濕度測(cè)量報(bào)警系統(tǒng)的硬件結(jié)構(gòu)電路。要求:(1)設(shè)計(jì)出家用溫濕度測(cè)量報(bào)警系統(tǒng)的硬件結(jié)構(gòu)電路。 (2) 對(duì)設(shè)計(jì)的電路進(jìn)行分析。(3) 顯示測(cè)量結(jié)果并且可以實(shí)現(xiàn)報(bào)警設(shè)置與顯示。2.設(shè)計(jì)思路2.1系統(tǒng)分析分析系統(tǒng)可知,根據(jù)需要設(shè)計(jì)的功能模塊包括數(shù)據(jù)采集、控制、鍵盤輸入、液晶顯示、數(shù)據(jù)存儲(chǔ)等.在設(shè)計(jì)本系統(tǒng)時(shí),主要有以下電路模塊:l 系統(tǒng)單片機(jī)采用stc89c52單片機(jī);l 溫濕度采集選用dht11數(shù)字式溫濕度傳感器;l 按鍵電路模塊;l 數(shù)碼管顯示電路模塊。2.2器件介紹2.2.1溫濕度傳感器dht11數(shù)字

11、溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的溫濕度傳感和數(shù)字模塊采集技術(shù),具有很高的穩(wěn)定性和可靠性,dht11傳感器內(nèi)含一個(gè)ntc測(cè)溫和一個(gè)電阻式感濕元件,并與一個(gè)8位的高性能單片機(jī)相連接,在精確的濕度校驗(yàn)室中dht11傳感器進(jìn)行過校準(zhǔn),以程序的形式校準(zhǔn)系數(shù)儲(chǔ)存在0tp內(nèi)存中,檢測(cè)信號(hào)的時(shí)候,在處理過程中傳感器內(nèi)部要調(diào)用這些校準(zhǔn)系數(shù),采用單線制的串行接口,使系統(tǒng)集成可以有較低的功耗,而且更加簡(jiǎn)單快速,信號(hào)傳輸距離超過20米,作為一個(gè)數(shù)字溫濕度傳感器dht11具有響應(yīng)快速、抗干擾強(qiáng)、性價(jià)比高等優(yōu)點(diǎn),它的性能指標(biāo)如下:濕度測(cè)量范圍為2090rh;濕度測(cè)量精度為±

12、;5rh;溫度測(cè)量范圍為050 ,溫度測(cè)量精度為±2,工作電壓3055 v,相應(yīng)時(shí)間<5s,dht1l采用4針單排引腳封裝, 傳感器通電后,需要等待1s,這是因?yàn)橐竭^不穩(wěn)定的狀態(tài),在此期間不需發(fā)送指令,電源引腳(vdd,gnd)之間可增加一個(gè)100nf 的電容,用以去耦濾波。典型的應(yīng)用電路如圖2.1:圖2.1典型的應(yīng)用電路 dht11實(shí)物圖如下圖2.2:圖2.2 dht11實(shí)物圖v 串行接口(單線雙向)采用單總線數(shù)據(jù)格式,data 用于微處理器與dht11之間的通訊和同步,一次通訊時(shí)間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分。通訊過程如圖2.3所示圖2.3 通訊過程總線空閑狀態(tài)為

13、高電平的時(shí)候主機(jī)把總線拉低等待dht11響應(yīng), dht11能檢測(cè)到起始信號(hào),主機(jī)必須把總線拉低,至少大于18ms。dht11一旦接收到主機(jī)的開始信號(hào),接著就等待開始信號(hào)的結(jié)束,然后發(fā)送80us的低電平響應(yīng)信號(hào),要讀取dht11的響應(yīng)信號(hào),必須等待開始信號(hào)的結(jié)束,并延時(shí)等待20-40us后才能夠接受,主機(jī)發(fā)送開始信號(hào)后,這時(shí)候就可輸出高電平或切換到輸入模式,接著總線由上拉電阻拉高。dht11發(fā)送響應(yīng)信號(hào)的時(shí)候總線為低電平 ,dht11把總線拉高80us之前,必須等到響應(yīng)信號(hào)發(fā)送,準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),每一bit數(shù)據(jù)都以50us低電平時(shí)隙開始,數(shù)據(jù)位是0或1是由高電平的長(zhǎng)或短來決定。假如響應(yīng)信號(hào)的讀取為

14、高電平,但是dht11無響應(yīng)響應(yīng),這時(shí)候說明路線可能連接不正常,當(dāng)最后一bit數(shù)據(jù)傳送結(jié)束后,dht11把總線拉低50us,接著總線由上拉電阻拉高進(jìn)入空閑狀態(tài)。數(shù)字0信號(hào)表示方法如圖2.4所示圖2.4 數(shù)字0信號(hào)表示方法數(shù)字1信號(hào)表示方法.如圖2.5所示:圖2.5 信號(hào)1 表示方法v 電氣特性vdd=5v,t = 25,除非特殊標(biāo)注,其中主要的電氣特征如表2.1所示:表2.1電氣特征參數(shù)條件mintypmax單位供電dc355.5v供電電流測(cè)量0.52.5ma平均0.21ma待機(jī)100150ua采樣周期秒1次 注:采樣周期間隔不得低于1秒鐘v 性能說明 如表2.2所示:表2.2 性能說明參數(shù)條

15、件mintypmax單位分辨率8±bit111%rh精度25±4%rh重復(fù)性±1%rh溫度0-50±5%rh溫度量程范圍03090%rh502080%rh252090%rh長(zhǎng)期穩(wěn)定性典型值±1%rh/yr遲滯±1互換性可完全互換分辨率888bit111重復(fù)性±1響應(yīng)時(shí)間1/e(63%)630s量程范圍050精度±1±2v dht11引腳說明 如表2.3所示:表2.3 dht11引腳說明pin名稱注釋1vdd供電35.5v2data串行數(shù)據(jù),單總線3nc空腳,懸空4gnd接地,電源負(fù)極v 應(yīng)用信息電阻式濕度

16、傳感器暴露在化學(xué)物質(zhì)中會(huì)受到干擾,導(dǎo)致靈敏度下降,當(dāng)處于極限狀態(tài)時(shí),傳感器可以通過程序處理,回復(fù)到初試的校準(zhǔn)狀態(tài),在不符合規(guī)范的范圍內(nèi)使用傳感器,不僅會(huì)導(dǎo)致幾乎3%的臨時(shí)漂移信號(hào),而且會(huì)加速產(chǎn)品的老化,轉(zhuǎn)為正常的使用范圍后,會(huì)漸漸恢復(fù)校準(zhǔn)狀態(tài);溫度是影響氣體相對(duì)濕度的關(guān)鍵,因此測(cè)量時(shí)最好讓濕度傳感器工作溫度相同。v 封裝信息 如圖2.6: 圖2.6 dht11的封裝信息2.2.2 單片機(jī)v stc89c52 單片機(jī)概述stc89c52系列單片機(jī)是宏晶科技生產(chǎn)的單時(shí)鐘/機(jī)器周期(1t)的單片機(jī),是高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍,內(nèi)

17、部集成max810專用復(fù)位電路。v stc89c52 單片機(jī)特點(diǎn)l 增強(qiáng)型 8051 cpu,1t,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)8051;l 工作電壓: 5.5v - 3.5v(5v單片機(jī));l 工作頻率范圍:040mhz,相當(dāng)于普通8051的 080mhz;l 用戶應(yīng)用程序空間 4k/8k/16k/32k/64k字節(jié);l 片上集成1280字節(jié) ram;l 通用i/o口(32/36個(gè)),復(fù)位后為準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)i/o口);l isp(在系統(tǒng)可編程)/iap(在應(yīng)用可編程),無需專用編程器/仿真器。l 每個(gè)i/o口驅(qū)動(dòng)能力均可達(dá)到20ma,但整個(gè)芯片最大不要超過120

18、ma;l 可通過串口(p3.0/p3.1)直接下載用戶程序,數(shù)秒即可完成一片;l 有eeprom功能;l 看門狗;l 內(nèi)部集成max810專用復(fù)位電路(外部晶體12m以下時(shí),復(fù)位腳可直接1k電阻到地);l 時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部r/c振蕩器;l 用戶在下載用戶程序時(shí),可選擇是使用內(nèi)部r/c 振蕩器還是外部晶體/ 時(shí)鐘;l 常溫下內(nèi)部r/c 振蕩器頻率為:5.0v 單片機(jī)為: 11mhz 17mhz;l 共4個(gè)16位定時(shí)器,兩個(gè)與傳統(tǒng)8051兼容的定時(shí)器/計(jì)數(shù)器,16位定時(shí)器t0和t1,沒有定時(shí)器2,但有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路pca模塊可再實(shí)現(xiàn)2個(gè)16位

19、定時(shí)器;l 外部中斷i/o口4路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的pca模塊,power down模式可由外部中斷喚醒;l 通用全雙工異步串行口(uart) ;l 工作溫度范圍:-40 +85(工業(yè)級(jí)) / 0 75(商業(yè)級(jí)) ;l 封裝:pdip-40, plcc-44。v stc89c52 單片機(jī)管腳及封裝 stc89c52 單片機(jī)有多種封裝形式,本設(shè)計(jì)中選用40dip封裝,其管腳定義如圖2.7所示。其最小應(yīng)用系統(tǒng)如圖2.8所示。圖2.7 stc89c52 管腳圖 圖2.8 單片機(jī)最小系統(tǒng)2.2.3 lcdv 字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)

20、陣式lcd,目前常用16*1,16*2,20*2和40*2行等的模塊v lcd1602主要技術(shù)參數(shù) 如圖表2.4所示表2.4 1602的主要技術(shù)參數(shù)工作電壓:4.55.5v容量16×2個(gè)字符最佳工作電壓 5.0v工作電流2.0ma字符尺寸2.95×4.35(w×h)mmv 引腳功能說明 如下圖表2.5所示:表2.5引腳接口說明表1602lcd采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表 編號(hào)符號(hào)引腳說明1vdd正極2vss地3vl液晶顯示偏壓4rs數(shù)據(jù)/命令選擇5r/w讀/寫選擇6e使能信號(hào)7d0數(shù)據(jù)8d1數(shù)據(jù)9d2數(shù)據(jù)10d3數(shù)據(jù)11d4

21、數(shù)據(jù)12d5數(shù)據(jù)13d6數(shù)據(jù) 續(xù)表2.51602lcd采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表 編號(hào)符號(hào)引腳說明14d7數(shù)據(jù)15bla背光源正極16blk背光源負(fù)極1602液晶模塊的讀寫操作,屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。v 管腳圖 如圖2.9所示:圖2.9 lcd1602的管腳圖其中實(shí)物圖如圖2.10所示 圖2.10 1602字符型液晶顯示器實(shí)物圖lcd1602主要有兩種,主要區(qū)別在于是否背光,它的控制器主要為hd44780,帶背光的比不帶背光的厚,在應(yīng)用中是否帶背光并不影響使用,兩者尺寸差別如下圖2.11所示:圖2.11 1602lcd尺寸圖1602

22、lcd的ram地址映射及標(biāo)準(zhǔn)字庫表液晶顯示模塊是一個(gè)比較慢的顯示器件,因此在執(zhí)行指令之前要首先確認(rèn)模塊的忙標(biāo)志處于低電平,表示空閑,不然此指令失效,輸入顯示字符地址后會(huì)顯示字符,圖2.12是1602的內(nèi)部顯示地址。圖2.12 1602lcd內(nèi)部顯示地址3.系統(tǒng)設(shè)計(jì)3.1硬件系統(tǒng)3.1.1總電路與原理圖單片機(jī)是整個(gè)系統(tǒng)的控制中樞,它指揮外圍器件協(xié)調(diào)工作,從而完成特定的功能,硬件實(shí)現(xiàn)上采用模塊化設(shè)計(jì),每一模塊只實(shí)現(xiàn)一個(gè)特定功能,最后再將各個(gè)模塊搭接在一起,這種設(shè)計(jì)方法可以降低系統(tǒng)設(shè)計(jì)的復(fù)雜性,本系統(tǒng)主要硬件設(shè)計(jì)包括電源電路、報(bào)警電路、晶振電路,lcd顯示電路以及溫濕度傳感器電路。本設(shè)計(jì)的溫濕度控制

23、器框圖如圖3.1所示。圖3.1 溫濕度控制器方框圖 具體的原理圖如圖3.2:圖3.2 系統(tǒng)電路原理圖3.1.2主要模塊的電路v 溫濕度采集電路圖3.3 溫濕度采集電路v 單片機(jī)電路由stc89c52組成的溫濕度控制器單片機(jī)系統(tǒng)原理圖如圖3.4所示。圖中data引腳為溫濕度傳感器單總線引腳,單片機(jī)通過該引腳和傳感器通信,讀取溫濕度數(shù)據(jù)。k1、k2、k3、k4為四只調(diào)節(jié)按鍵,分別為設(shè)置鍵、上調(diào)鍵、下調(diào)鍵和保存鍵,用以調(diào)整溫濕度上下限值并保存數(shù)據(jù)。l2、l3、l4、l5為四只報(bào)警燈,其中l(wèi)2為低溫報(bào)警,l3為高溫報(bào)警,l4為低濕報(bào)警,l5為高濕報(bào)警。 圖3.4單片機(jī)系統(tǒng)原理v 顯示電路 顯示部分采用

24、smc 1602液晶屏進(jìn)行數(shù)據(jù)顯示,與單片機(jī)接口電路如圖3.5所示。圖3.5 lcd與單片機(jī)接口電路v 溫濕度上限存儲(chǔ)溫濕度閾值存儲(chǔ)在eeprom芯片at24c04中,并可以通過k1k4按鍵調(diào)節(jié)并保存,其中k1、k2、k3、k4分別為設(shè)置鍵、上調(diào)鍵、下調(diào)鍵和保存鍵。at24c04是iic芯片,其電路如圖3.6所示。圖3.6 eeprom存儲(chǔ)電路v 繼電器驅(qū)動(dòng)電路當(dāng)溫濕度數(shù)據(jù)超過正常范圍時(shí),單片機(jī)發(fā)出繼電器動(dòng)作信號(hào)。該低電平信號(hào)通過三極管方法,驅(qū)動(dòng)繼電器線圈得電,繼電器結(jié)點(diǎn)動(dòng)作。該結(jié)點(diǎn)可以控制空調(diào)、加熱器、抽風(fēng)機(jī)等電器,以控制溫濕度范圍。具體電路如圖3.7所示。圖3.7 繼電器電路3.2 軟件系

25、統(tǒng)本系統(tǒng)的功能決定了系統(tǒng)軟件設(shè)計(jì)思路。設(shè)計(jì)思路如下:(1) 實(shí)現(xiàn)模塊中的具體子模塊;(2) 設(shè)計(jì)模塊間的借口,從而構(gòu)成整個(gè)系統(tǒng)軟件。 本設(shè)計(jì)軟件主程序流程圖如圖3.8所示。圖3.8 主程序流程圖4.結(jié)論本文介紹了一種基于單片機(jī)的家用溫濕度測(cè)量報(bào)警系統(tǒng)的原理和設(shè)計(jì)。給出了硬件和軟件的設(shè)計(jì)方案,并且做出了實(shí)物??梢詫?shí)現(xiàn)以下功能:1、 實(shí)時(shí)測(cè)量當(dāng)前溫度值和濕度值,在液晶屏動(dòng)態(tài)顯示。2、 可以顯示當(dāng)前允許溫度范圍,在液晶屏顯示,如“20-45”表示允許溫度范圍為20攝氏度至45攝氏度。3、 可以顯示當(dāng)前允許濕度范圍,在液晶屏顯示,如“15-60”表示允許濕度范圍為15%至60%。4、 當(dāng)溫度低于溫度下

26、限時(shí),低溫報(bào)警燈亮,控制繼電器動(dòng)作。5、 當(dāng)溫度高于溫度上限時(shí),高溫報(bào)警燈亮,控制繼電器動(dòng)作。6、 當(dāng)濕度低于濕度下限時(shí),低濕報(bào)警燈亮,控制繼電器動(dòng)作。7、 當(dāng)濕度高于濕度上限時(shí),高濕報(bào)警燈亮,控制繼電器動(dòng)作。8、 可以通過鍵盤調(diào)整溫度上下限和濕度上下限,具體方法是連續(xù)按設(shè)置鍵直至溫度下限、溫度上限、濕度下限、濕度上限相應(yīng)的位置閃爍,再通過up鍵和down鍵調(diào)整數(shù)值,調(diào)整完畢繼續(xù)按設(shè)置鍵進(jìn)入正常狀態(tài)。9、 可以保存設(shè)置參數(shù)至eeprom中,具體方法是按保存鍵,此時(shí)當(dāng)前設(shè)置參數(shù)存盤,重新上電顯示新的設(shè)置值。如果不按保存鍵,所調(diào)整的設(shè)置參數(shù)只在此次運(yùn)行有效,關(guān)電后恢復(fù)原先設(shè)定值。但由于經(jīng)驗(yàn)不足與時(shí)

27、間倉(cāng)促,電路軟件、硬件部分都存在不夠完善的地方,在今后的學(xué)習(xí)中會(huì)進(jìn)一步改進(jìn)。總體來說,最重要的是在本次工程設(shè)計(jì)中我們學(xué)到了很多知識(shí),了解了家用溫濕度測(cè)量報(bào)警系統(tǒng)原理,掌握了單片機(jī)的開發(fā)過程和利用單片機(jī)設(shè)計(jì)電路的方法,同時(shí)也熟悉了keil,等軟件的使用,這些對(duì)我們以后的學(xué)習(xí)和工作都將會(huì)有很大的幫助。5 .致謝工程設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核,也是對(duì)我們進(jìn)行科學(xué)研究基本功的訓(xùn)練,培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)獨(dú)立的分析問題和解決問題的能力,為以后撰寫專業(yè)學(xué)術(shù)論文和工作打下良好的基礎(chǔ)。本次工程設(shè)計(jì)能夠順利完成,首先要感謝我們的指導(dǎo)老師給我們提供的輔導(dǎo)以及幫助,在老師的指導(dǎo)下,我們順利完成了任務(wù)

28、。同時(shí),此次任務(wù)的順利完成,也與各個(gè)組員之間的齊心協(xié)力密不可分,在此過程中,也增強(qiáng)了我們的團(tuán)隊(duì)合作精神。參考文獻(xiàn)151單片機(jī)入門與視頻演練··························電子工業(yè)出版社251單片機(jī)基礎(chǔ)與實(shí)例進(jìn)階·········&

29、#183;················清華大學(xué)出版社351單片機(jī)實(shí)例實(shí)講······························&#

30、183;···于永、戴佳等附錄程序清單【main.c】#include <reg52.h>#include "1602.h"#include "dht.h"#include "2402.h" /定義三個(gè)led燈sbit l2=p13;sbit l3=p14;sbit l4=p15;sbit l5=p16;sbit key_set = p32;/設(shè)置鍵sbit key_up= p33;/加 鍵sbit key_down = p34;/減 鍵sbit key_save = p35;/保存鍵sbit

31、 relay = p20;/定義標(biāo)識(shí)volatile bit flagstartrh = 0; /開始溫濕度轉(zhuǎn)換標(biāo)志volatile bit flagkeypress = 0; /有鍵按下/定義溫濕度傳感器用外部變量extern u8 u8flag,k;extern u8 u8count,u8temp;extern u8 u8t_data_h,u8t_data_l,u8rh_data_h,u8rh_data_l,u8checkdata;extern u8 u8t_data_h_temp,u8t_data_l_temp,u8rh_data_h_temp,u8rh_data_l_temp,u8ch

32、eckdata_temp;extern u8 u8comdata;extern u8 count, count_r;u16 temp;s16 temperature, humidity;s16 idata th, tl, hh, hl; /溫度上限和濕度上限char * psave;u8 keyvalue, keyset, keysave, keyup, keydown;/定義變量u16 rhcounter;u8 flagset,hide;/數(shù)據(jù)初始化void data_init() rhcounter=0; l2=1; l3=1; l4=1; th=40; tl=20; hh=70; hl=

33、20; keyvalue=0; keyset=1; keysave=1; keyup=1; keydown=1; flagset=0; hide=0;/定時(shí)器0初始化void timer0_init()et0=1; /允許定時(shí)器0中斷tmod=1; /定時(shí)器工作方式選擇tl0=0x06; th0=0xf8; /定時(shí)器賦予初值tr0=1; /啟動(dòng)定時(shí)器/定時(shí)器0中斷void timer0_isr (void) interrupt 1 using 0tl0=0x06;th0=0xf8; /定時(shí)器賦予初值 rhcounter+;/設(shè)閃爍標(biāo)志if (rhcounter>400) hide=0;e

34、lse hide=1;/每2秒鐘啟動(dòng)一次溫濕度轉(zhuǎn)換 if (rhcounter>=800) flagstartrh=1; rhcounter=0; /存入設(shè)定值、void save_setting() psave=(char *)&tl; /地址低位對(duì)應(yīng)低8位,高位對(duì)應(yīng)高8位 wrteeprom(0,*psave); /存溫度上限值th低8位 delay(500); psave+; wrteeprom(1,*psave); /存溫度上限值th高8位 delay(500); psave=(char *)&th; wrteeprom(2,*psave); /存溫度下限值tl低

35、8位 delay(500); psave+; wrteeprom(3,*psave); /存溫度下限值tl高8位 delay(500); psave=(char *)&hl; /地址低位對(duì)應(yīng)低8位,高位對(duì)應(yīng)高8位 wrteeprom(4,*psave); /存濕度上限值hl低8位 delay(500); psave+; wrteeprom(5,*psave); /存濕度上限值hl高8位 delay(500); psave=(char *)&hh; wrteeprom(6,*psave); /存濕度下限值hh低8位 delay(500); psave+; wrteeprom(7,

36、*psave); /存濕度下限值hh高8位 delay(500);/載入設(shè)定值、void load_setting() psave=(char *)&tl; *psave+=rdeeprom(0); *psave=rdeeprom(1); psave=(char *)&th; *psave+=rdeeprom(2); *psave=rdeeprom(3); psave=(char *)&hl; *psave+=rdeeprom(4); *psave=rdeeprom(5); psave=(char *)&hh; *psave+=rdeeprom(6); *psa

37、ve=rdeeprom(7); if (tl>99)|(tl<0) tl=20; if (th>99)|(th<0) th=40; if (hl>99)|(hl<0) hl=20; if (hh>99)|(hh<0) hh=70;void keyprocess(uint num) /鍵盤設(shè)置功能:通過設(shè)置鍵和加、減鍵修改當(dāng)前設(shè)置,只有按下保存鍵才存盤,否則掉電不保存。 switch (num) case 1:/設(shè)置鍵按下,依次設(shè)定tlthhlhh退出 flagset +; if (flagset>4) flagset = 0; l1602_

38、char(1, 12, tl/10+48); l1602_char(1, 13, tl%10+48); l1602_char(1, 15, th/10+48); l1602_char(1, 16, th%10+48); l1602_char(2, 12, hl/10+48); l1602_char(2, 13, hl%10+48); l1602_char(2, 15, hh/10+48); l1602_char(2, 16, hh%10+48); break; case 2:/加鍵按下 if (flagset=1) /設(shè)tl if (tl<100) tl+; l1602_char(1,

39、12, tl/10+48); l1602_char(1, 13, tl%10+48); if (flagset=2) /設(shè)th if (th<100) th+; l1602_char(1, 15, th/10+48); l1602_char(1, 16, th%10+48); if (flagset=3) /設(shè)hl if (hl<100) hl+; l1602_char(2, 12, hl/10+48); l1602_char(2, 13, hl%10+48); if (flagset=4) /設(shè)hh if (hh<100) hh+; l1602_char(2, 15, hh

40、/10+48); l1602_char(2, 16, hh%10+48); break; case 3: /減鍵按下 if (flagset=1) /設(shè)tl if (tl>0) tl-; l1602_char(1, 12, tl/10+48); l1602_char(1, 13, tl%10+48); if (flagset=2) /設(shè)th if (th>0) th-; l1602_char(1, 15, th/10+48); l1602_char(1, 16, th%10+48); if (flagset=3) /設(shè)hl if (hl>0) hl-; l1602_char(

41、2, 12, hl/10+48); l1602_char(2, 13, hl%10+48); if (flagset=4) /設(shè)hh if (hh>0) hh-; l1602_char(2, 15, hh/10+48); l1602_char(2, 16, hh%10+48); break; case 4: /保存鍵按下 save_setting(); flagset = 0; break; default: break; /* 名稱 : main()* 功能 : 主函數(shù)*/void main() u16 i, j, testnum; ea = 0;timer0_init(); /定時(shí)器

42、0初始化 data_init();ea = 1;l1602_init();l1602_string(1,1," welcome ");l1602_string(2,1," start system! ");/延時(shí)for (i=500;i>0;i-) for (j=500;j>0;j-) ; /清屏l1602_string(1,1," ");l1602_string(2,1," "); l1602_string(1,1,"tem: c - ");l1602_string(2,1,&qu

43、ot;hum: % - "); /載入溫度上限和濕度上限設(shè)定值l1602_char(1, 12, tl/10+48);l1602_char(1, 13, tl%10+48);l1602_char(1, 15, th/10+48);l1602_char(1, 16, th%10+48);l1602_char(2, 12, hl/10+48);l1602_char(2, 13, hl%10+48);l1602_char(2, 15, hh/10+48);l1602_char(2, 16, hh%10+48); load_setting();while(1) /溫濕度轉(zhuǎn)換標(biāo)志檢查 if (

44、flagstartrh=1) tr0=0; testnum=rh(); flagstartrh=0; tr0=1; /讀出溫濕度,只取整數(shù)部分 humidity = u8rh_data_h; temperature = u8t_data_h; /顯示溫濕度 l1602_int(1,4,temperature); l1602_int(2,4,humidity);/閃爍顯示if (hide=1) switch (flagset) case 0: break; case 1: l1602_string(1,12," "); break; case 2: l1602_string(

45、1,15," "); break; case 3: l1602_string(2,12," "); break; case 4: l1602_string(2,15," "); break; else l1602_char(1, 12, tl/10+48); l1602_char(1, 13, tl%10+48); l1602_char(1, 15, th/10+48); l1602_char(1, 16, th%10+48); l1602_char(2, 12, hl/10+48); l1602_char(2, 13, hl%10+48); l1602_char(2, 15, hh/10+48); l1602_char(2, 16, hh%10+48);/溫濕度控制/溫度低于下限if (temperature<tl) l2 = 0; else l2=1; /溫度高于上限if (temperature>th) l3 = 0; else l3=1; /濕度低于下限if (humidity<hl) l4 = 0; else l4 = 1; /濕度高于上限if (humidity&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論