標(biāo)題: 單片機(jī)DHT11溫濕度傳感器實(shí)戰(zhàn) 小型氣象站源程序 [打印本頁(yè)]

作者: fvsaegawgarg    時(shí)間: 2021-1-5 10:56
標(biāo)題: 單片機(jī)DHT11溫濕度傳感器實(shí)戰(zhàn) 小型氣象站源程序
小型氣象站

一、實(shí)驗(yàn)?zāi)康?/strong>

1. 了解溫濕度傳感器工作原理

2. 了解光強(qiáng)大氣壓力傳感器工作原理

3. 學(xué)會(huì)使用DHT11溫濕度傳感器檢測(cè)環(huán)境溫濕度

4. 學(xué)會(huì)使用光敏電阻檢測(cè)環(huán)境光強(qiáng)度

5. 會(huì)使用1602液晶顯示模塊顯示氣象參數(shù)

二、實(shí)驗(yàn)設(shè)備

1. 51單片機(jī)實(shí)驗(yàn)板,以及電源線、下載線、杜邦線等

2. DHT11溫濕度傳感器、光敏電阻、PCF8591數(shù)模轉(zhuǎn)換模塊、1602液晶顯示模塊

三、實(shí)驗(yàn)項(xiàng)目要求

請(qǐng)?jiān)O(shè)計(jì)一個(gè)小型的氣象監(jiān)測(cè)站,檢測(cè)溫濕度、光強(qiáng)等參數(shù),并顯示在1602液晶顯示屏上。

1602液晶顯示示例:

請(qǐng)按要求設(shè)計(jì)一個(gè)可行方案,包括設(shè)備選型、系統(tǒng)連接圖等,并編寫(xiě)程序?qū)崿F(xiàn)上述功能。

四、實(shí)驗(yàn)步驟

1. 設(shè)計(jì)方案

①方案:采用dht11溫濕度傳感器來(lái)采集溫濕度,光敏電阻來(lái)采集光強(qiáng)情況,然后把檢測(cè)到的信息送給單片機(jī)處理,并在1602液晶顯示屏上顯示。

②設(shè)備選型:

1、DHT11溫濕度傳感器

DHT11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感

器。它應(yīng)用專用的數(shù) 字模塊采集技術(shù)和溫濕度傳感技術(shù),

確保產(chǎn)品具有枀高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器

包括一個(gè)電阻式感濕元件和一個(gè) NTC 測(cè)溫元件,并與一個(gè)高性能 8 位單片機(jī)相連接                                      

接線說(shuō)明

1 VCC      外接3.3V-5V

2 GND      外接GND               

3 DATA     小板開(kāi)關(guān)數(shù)字量輸出接口接單片機(jī)IO 口

PCF8591是一個(gè)單獨(dú)供電、低功耗、

具有I2C總線接口的8位A/D及D/A 轉(zhuǎn)

換器。它有4路A/D轉(zhuǎn)換輸入(A/D轉(zhuǎn)

換為逐次比較型),1路D/A 模擬輸

出,電源電壓典型值為5V。采用8位的DAC時(shí),分辨率為5V/256=19.5mV。

3、TX51單片機(jī)實(shí)驗(yàn)板(帶LCD1602、蜂鳴器)

③系統(tǒng)連接圖:

2. 編寫(xiě)源程序,編譯,生成hex文件

源程序:

//本工程基于普中單片機(jī)開(kāi)發(fā)板,晶振12MHz
  1. #include <config.h>
  2. #include <dht11.h>
  3. #include <PCF8591.h>
  4. #include <I2C.h>
  5. #include <1602.h>
  6. #include <led.h>
  7.               float value;
  8.               u8 print1[20];              
  9.               u8 DATA[3];
  10.                             u8 RHum=0,Temp=0;
  11.               u8 print[20];
  12. void delay_us(u8 n)//微秒延時(shí)
  13. {
  14.     while(--n);
  15. }

  16. void delay_ms(u16 x)//毫秒延時(shí)函數(shù)
  17. {u16 i,j;
  18. for(i=0;i<x;i++)
  19.     for(j=0;j<115;j++);
  20. }

  21. void main()
  22. {
  23.               u8 i;
  24.               TMOD=TMOD&0x0F;//清除定時(shí)器T1原有工作方式,T0工作方式不變
  25.               TMOD=TMOD|0xA0;//設(shè)置定時(shí)器T1為工作方式2,硬啟動(dòng);T0工作方式不變

  26.               TL1=0x48;//晶振11.0592MHz,定時(shí)200us對(duì)應(yīng)計(jì)數(shù)值184,計(jì)數(shù)初值72
  27.               TH1=0x48;//自動(dòng)重裝初值
  28.             
  29.               EA=1 ;              //總中斷允許
  30.               ET1=1 ;  //T1中斷允許
  31.               TR1=1;
  32.               LCD1602_Init();              //1602初始化
  33.               while(1)
  34.               {
  35.                             DATA[0]=Pcf8591_AD(0);//通道0:光敏
  36.                             DATA[1]=Pcf8591_AD(1);//通道1:熱敏
  37.                             DATA[2]=Pcf8591_AD(3);//通道3:可調(diào)電阻
  38.                             value=(float)DATA[1]*5/256;
  39.                             value=100/value;
  40.                             sprintf(print1,"light:%.1f",value);
  41.                             LCD1602_disstr(print1,1,0);//輸出到1602液晶顯示屏
  42.                                                                                       
  43.               }
  44. }
  45. void ET1_INT() interrupt 3              //              T1中斷服務(wù)程序
  46. //
  47. {
  48.                             u16 c;
  49.                             c++;
  50.               //中斷次數(shù)加1,每200us中斷一次,中斷5000次即為1秒
  51. if(c==750){
  52.                             DHT11_receive(&RHum,&Temp); //讀取傳感器傳送過(guò)來(lái)的溫濕度數(shù)據(jù)
  53.                            
  54.                             sprintf(print,"Temp:%bd;RHum:%bd%%",Temp,RHum);
  55.                             LCD1602_disstr(print,0,0);//輸出到1602液晶顯示屏
  56. }
  57. }
復(fù)制代碼

3. 將hex文件下載到實(shí)驗(yàn)板運(yùn)行,描述實(shí)驗(yàn)現(xiàn)象

實(shí)驗(yàn)現(xiàn)象:

DHT11溫濕度,光照強(qiáng)度等情況分別顯示在單片機(jī)的1602液晶顯示屏上。


實(shí)驗(yàn)總結(jié)
通過(guò)本次實(shí)驗(yàn)知道了如何使用DHT11溫濕度傳感器,學(xué)會(huì)使用光敏電阻檢測(cè)環(huán)境光強(qiáng)度,也學(xué)會(huì)使用1602液晶顯示模塊顯示氣象參數(shù)。



作者: 新昌小徐    時(shí)間: 2022-6-24 18:01
#include <config.h>
#include <dht11.h>
#include <PCF8591.h>
#include <I2C.h>
#include <1602.h>
#include <led.h>
以上的文件呢?
作者: tplin    時(shí)間: 2022-11-30 10:07
要是有完整文件就好啦!
作者: sdlyyy    時(shí)間: 2023-3-14 22:55
思路全面完整,好好學(xué)習(xí)。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1