摘要
本設計采用STC89C52單片機的外部中斷部分以及LCD1602部分完成測量和顯示部分,利用DHT11數(shù)字溫濕度傳感器進行數(shù)據(jù)采集,這是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,它憑借專用的數(shù)字模塊采集技術和溫濕度傳感技術,單線制串行接口,無需額外部件;超長的信號傳輸距離;超低能耗;全部校準,數(shù)字輸出;確保產品具有極高的可靠性和卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,使其成為該類應用中,在苛刻應用場合的最佳選擇。
引言
現(xiàn)如今隨著科學發(fā)展,單片機在檢測系統(tǒng)中得到了廣泛的應用,而溫度濕度與我們生產生活密切相關。溫度濕度傳感器的應用范圍不僅應用于日常生活中而且也大量應用于自動化和過程檢測系統(tǒng)控制。
單片微型計算機簡稱單片機(Microcontrollers),是一種集成電路芯片,是采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊硅片上構
在日常生活中,溫濕度監(jiān)控系統(tǒng)應用很廣泛,例如:機房,檔案室,圖書館,材料加工場,大棚等場所;都必須嚴格控制環(huán)境的溫度和相對濕度,使其保持在一定的范圍內。使用DHT11可以靈活簡單的檢測環(huán)境的溫濕度,由用戶設置一定的閾值,實時監(jiān)測顯示,并且可以更具用戶的需求設計特定的報警裝置,當溫度或濕度超過用戶設置的上限值時,立即報警。因此我設計了一款基于51單片使用DHT11傳感器的溫度濕度監(jiān)控系統(tǒng),操作簡介,使用方便,很適合日常的監(jiān)測使用。
本設計實現(xiàn)的是對溫度濕度的簡易測量。通過DHT11檢測環(huán)境的溫度與濕度,傳輸40位二進制數(shù)據(jù)給89C51,單片機對40位數(shù)據(jù)進行處理,然后由LCD1602液晶顯示器顯示環(huán)境的溫度濕度與用戶所設定的溫度濕度報警值。
1.1技術指標與要求
(1)利用51單片機通過編程來控制溫度濕度的顯示。
(2)液晶要實時地準確顯示外界的溫度與濕度。
(3)溫度范圍為0-50℃,濕度范圍20%-90%。
(4)可以根據(jù)實際用途設定溫度和濕度的報警值。
1.2設計原理及思路
DHT11傳感器原理圖所示:
在我的作品中單片機的P1^1用來發(fā)收串行數(shù)據(jù),即數(shù)據(jù)口。連接傳感器的Pin2(單總線,串行數(shù)據(jù))。由于測量范圍電路小于20米,建議加一個5K的上拉電阻,因此在傳感器的Pin2口與電源之間連接一個5K電阻。而傳感器的電源端口Pin1和Pin4分別接單片機的VDD和GND端。傳感器的第三腳懸浮放置。
DHT11數(shù)據(jù)結構:
DHT11數(shù)字濕溫度傳感器采用單總線數(shù)據(jù)格式。即單個數(shù)據(jù)引腳端口完成輸入
輸出雙向傳輸。其數(shù)據(jù)包由5Byte(40Bit)組成。數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明。
② 數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)
+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù) +8bit校驗和
③ 校驗和數(shù)據(jù)為前四個字節(jié)相加。
④ 傳感器數(shù)據(jù)輸出的是未編碼的二進制數(shù)據(jù)。數(shù)據(jù)(濕度、溫度、整數(shù)、小數(shù))之
間應該分開處理。如果,某次從傳感器中讀取如下5Byte數(shù)據(jù):
byte4 byte3 byte2 byte1 byte0
00101101 00000000 00011100 00000000 01001001
整數(shù) 小數(shù) 整數(shù) 小數(shù) 校驗和
⑤ 濕度 溫度 校驗和 由以上數(shù)據(jù)就可得到濕度和溫度的值,計算方法:
Humi (濕度)= byte4 . byte3=45.0 (%RH)
Temp (溫度)= byte2 . byte1=28.0 ( ℃)
check校驗)= byte4 + byte3+ byte2 + byte1 =73(=Humi+Temp)(校驗正確)
⑥ 注意:DHT11一次通訊時間最大3ms,主機連續(xù)采樣間隔建議不小于100ms。
集成模塊555電路原理圖見圖1-2-2。
由 555 定時器構成的多諧振蕩器如圖1-2-3所示,其工作波形見圖 1-2-4。
接通電源后,電源 VDD 通過 R1 和 R2 對電容 C 充電,當 Uc<1/3VDD 時,振蕩器輸出Vo=1,放電管截止。當 Uc充電到≥2/3VDD 后,振蕩器輸出 Vo 翻轉成 0,此時放電管導通,使放電端 (DIS)接地,電容 C 通過 R2 對地放電,使 Uc 下降。當 Uc 下降到≤1/3VDD 后,振蕩器輸出Vo 又翻轉成 1,此時放電管又截止,使放電端 (DIS) 不接地,電源 VDD 通過 R1和 R2 又對電容 C 充電,又使 Uc 從 1/3VDD 上升到 2/3VDD,觸發(fā)器又發(fā)生翻轉,如此周而復始,從而在輸出端 Vo 得到連續(xù)變化的振蕩脈沖波形。脈沖寬度 TL≈0.7R2C,由電容 C放電時間決定;TH=0.7(R1+R2)C ,由電容 C 充電時間決定,脈沖周期 T≈TH+TL 。
因此使用NTC熱敏電阻代替圖1-2-3中的R2即可利用該電路所測得的溫度轉變成矩形波,通過一定的計算制出表格。
長壽命 NTC熱敏電阻=高安全+高品質。
將測溫所得的輸出的信號輸入單片機,通過STC89C52單片機的編程實現(xiàn)采集,并利用LCD1602加以顯示。
STC89C52單片機是宏基公司生產的高性能 8 位單片機,晶振采用12MHz,如圖1-2-3所示,分別接入XTAL1和XTAL2,復位電路如圖1-2-4所示。
外部中斷觸發(fā)方式:電平觸發(fā)(如IT0=0)、下降沿觸發(fā)(如IT0=1)
初始化步驟(外部中斷INT0為例):
EA=0; //開總中斷
EX0=1; //開INT0中斷
1.3理論計算
由公式可知:555多諧振蕩器電路輸出的矩形波的高低電平、脈沖周期、頻率、占空比均與外置電路的電容容值和電阻阻值有關。本設計單片機軟件部分所涉及的主要是頻率與溫度的轉換。通過查詢NTC熱敏電阻的詳細使用手冊可知下列結論。
NTC熱敏電阻的溫度特性可用下式近似表示:
式中: RT:熱敏電阻器在溫度 T時的零功率電阻值。
T:為絕對溫度值,K;
10KΩ的NTC熱敏電阻在溫度為10℃~35℃時對應的電阻值如下:
溫度(℃) | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
阻值(KΩ) | 18.231399185 | 17.481363273 | 16.767123414 | 16.086755023 | 15.438447903 | 14.820498836 | 14.231304683 |
頻率(Hz) | 384.381 | 400.414 | 416.977 | 434.081 | 451.737 | 469.958 | 488.755 |
溫度(℃) | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
阻值(KΩ) | 13.669355966 | 13.133230897 | 12.621589814 | 12.133170007 | 11.666780884 | 11.221299475 | 10.795666238 |
頻率(Hz) | 508.138 | 528.121 | 548.713 | 569.928 | 591.775 | 614.266 | 637.412 |
溫度(℃) | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
阻值(KΩ) | 10.388881138 | 10 | 9.628131096 | 9.2724319585 | 8.9321064055 | 8.6064017588 | 8.2946062436 |
頻率(Hz) | 661.224 | 685.714 | 710.891 | 736.766 | 763.350 | 790.652 | 818.683 |
溫度(℃) | 31 | 32 | 33 | 34 | 35 | ||
阻值(KΩ) | 7.9960465557 | 7.710085586 | 7.4361202907 | 7.1735796969 | 6.9219230346 | ||
頻率(Hz) | 847.452 | 876.970 | 907.244 | 938.284 | 970.098 |
得到如下計算公式 溫度=-0.00003*頻率^2+0.0817*頻率-17.707。
1.4 單片機程序設計
程序流程圖見圖1-4-1。
利用了STC89C52單片機的一個定時器和一個外部中斷實現(xiàn)功能,使用P3^2端口的外部中斷INT0的下降沿觸發(fā)方式(IT0=1),配置1602顯示所獲得溫度數(shù)據(jù)。由于定時器無法直接定時1s,故本程序采用定時50ms,進入20次中斷執(zhí)行一次的方式間接定時1s,故多了一個是否為1s的判斷。當一秒鐘結束時,外部中斷中的計數(shù)即所測得頻率,根據(jù)上表溫度和頻率的對應數(shù)據(jù),編寫程序驅動1602顯示對應的溫度值。
2 方案比較與選擇
方案一:
利用溫度傳感器DS18B20測量溫度,其余部分電路與本設計相同?傮w框圖見圖2-1-1。
優(yōu)點:主要優(yōu)點有精度較高,制作方便、結構簡單、元件體積小。
缺點:溫度傳感器DS18B20單價4.87元/個,不適合大批量生產。
方案二:
利用555多諧振蕩器加上NTC熱敏電阻測量溫度,采用STC89C52單片機的外部中斷部分以及LCD1602完成測量和顯示部分。
優(yōu)點:元器件價格低廉,性價比較高。
缺點:電路以及計算以及軟件方面復雜,精度較低,最多只能精確到1℃。
由于方案二的制作較為簡便,價格便宜,性價比高,適合用于工業(yè)生產,較有創(chuàng)新性并且存在較高的未來市場價值,有廣泛的應用前景,所以本設計采用的方案為方案二。
3 仿真電路圖及元件清單
3.1 555振蕩電路仿真電路
3.2 555振蕩電路仿真結果
仿真結果表明:隨著R2減小,溫度升高,對應的矩形波的頻率增大。
3.3 單片機程序仿真
3.4 單片機程序仿真結果
元件類型 | 元件序號 | 型號 | 主要參數(shù) | 數(shù)量 |
四角按鍵 | S2 | 1個 | ||
晶振 | Y1 | 12M | 1個 | |
排阻 | A | 10KΩ | 1個 | |
電解電容 | C1 | 10uF/50V | 1個 | |
瓷片電容 | C2、C3、 C4、C5 | 104、103、30pF、30pF | 各1個 | |
電阻 | R1 | NTC熱敏電阻 | 1個 | |
電阻 | R2、R3 | 10KΩ | 2個 | |
1602 | LCD1 | 1個 | ||
1602底座 | LCD1 | 1個 | ||
滑動變阻器 | R4 | 1kΩ | 1個 | |
單片機 | U1 | STC89C52 | 1個 | |
單片機底座 | U1 | 1個 |
4 電路圖及軟件程序
4.1原理圖
4.2 pcb電路圖
4.3 實物圖
4.4 軟件部分
(見附件)
附10K_NTC電阻隨溫度變化曲線圖
將10K的NTC電阻的各溫度對應的電阻值輸入excel表格中,選中數(shù)據(jù),建立圖表并修改橫縱坐標為R和T可得到總關系圖與不同分段的曲線如下。
圖5-1 NTC電阻在-40℃~0℃時特性曲線
-40℃~0℃曲線見圖5-1,由圖可知在該分段中,10K_NTC電阻的R-T曲線非成線性關系,隨著溫度的增加,電阻的變化趨勢越來越小(斜率越來越。。
圖5-2 NTC電阻在1℃~33℃時特性曲線
1℃~33℃曲線見圖5-2,由圖可知在該分段中,10K_NTC電阻的R-T曲線基本成線性關系,隨著溫度的增加,電阻的變化趨勢越來越小(斜率越來越。。
圖5-3 NTC電阻在34℃~100℃時特性曲線
34℃~100℃曲線見圖5-3,由圖可知在該分段中,10K_NTC電阻的R-T曲線成非線性關系,隨著溫度的增加,電阻的變化趨勢越來越。ㄐ甭试絹碓叫。。
圖5-4 NTC電阻在101℃~127℃時特性曲線
101℃~127℃曲線見圖5-4,由圖可知在該分段中,10K_NTC電阻的R-T曲線基本呈線性關系。
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |