小型氣象站 一、實(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)用專(zhuān)用的數(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 - #include <config.h>
- #include <dht11.h>
- #include <PCF8591.h>
- #include <I2C.h>
- #include <1602.h>
- #include <led.h>
- float value;
- u8 print1[20];
- u8 DATA[3];
- u8 RHum=0,Temp=0;
- u8 print[20];
- void delay_us(u8 n)//微秒延時(shí)
- {
- while(--n);
- }
-
- void delay_ms(u16 x)//毫秒延時(shí)函數(shù)
- {u16 i,j;
- for(i=0;i<x;i++)
- for(j=0;j<115;j++);
- }
-
- void main()
- {
- u8 i;
- TMOD=TMOD&0x0F;//清除定時(shí)器T1原有工作方式,T0工作方式不變
- TMOD=TMOD|0xA0;//設(shè)置定時(shí)器T1為工作方式2,硬啟動(dòng);T0工作方式不變
-
- TL1=0x48;//晶振11.0592MHz,定時(shí)200us對(duì)應(yīng)計(jì)數(shù)值184,計(jì)數(shù)初值72
- TH1=0x48;//自動(dòng)重裝初值
-
- EA=1 ; //總中斷允許
- ET1=1 ; //T1中斷允許
- TR1=1;
- LCD1602_Init(); //1602初始化
- while(1)
- {
- DATA[0]=Pcf8591_AD(0);//通道0:光敏
- DATA[1]=Pcf8591_AD(1);//通道1:熱敏
- DATA[2]=Pcf8591_AD(3);//通道3:可調(diào)電阻
- value=(float)DATA[1]*5/256;
- value=100/value;
- sprintf(print1,"light:%.1f",value);
- LCD1602_disstr(print1,1,0);//輸出到1602液晶顯示屏
-
- }
- }
- void ET1_INT() interrupt 3 // T1中斷服務(wù)程序
- //
- {
- u16 c;
- c++;
- //中斷次數(shù)加1,每200us中斷一次,中斷5000次即為1秒
- if(c==750){
- DHT11_receive(&RHum,&Temp); //讀取傳感器傳送過(guò)來(lái)的溫濕度數(shù)據(jù)
-
- sprintf(print,"Temp:%bd;RHum:%bd%%",Temp,RHum);
- LCD1602_disstr(print,0,0);//輸出到1602液晶顯示屏
- }
- }
復(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ù)。
|