基于51單片機(jī)的溫濕度控制器設(shè)計(jì)_第1頁(yè)
基于51單片機(jī)的溫濕度控制器設(shè)計(jì)_第2頁(yè)
基于51單片機(jī)的溫濕度控制器設(shè)計(jì)_第3頁(yè)
基于51單片機(jī)的溫濕度控制器設(shè)計(jì)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

基于51單片機(jī)的溫濕度控制器設(shè)計(jì)設(shè)計(jì)思路:本文設(shè)計(jì)的溫濕度控制器主要基于51單片機(jī)和DHT11傳感器,通過(guò)測(cè)量環(huán)境中的溫度和濕度來(lái)控制空氣中的溫度和濕度,從而實(shí)現(xiàn)系統(tǒng)的自動(dòng)控制。具體實(shí)現(xiàn)過(guò)程如下:1.硬件連接將DHT11傳感器的VCC連接到單片機(jī)的VCC,GND連接到單片機(jī)的GND,DATA連接到P3.2端口。2.程序設(shè)計(jì)程序主要分為三個(gè)部分,分別為初始化程序、讀取溫濕度程序和控制程序。初始化程序:首先需要對(duì)單片機(jī)進(jìn)行初始化,我使用的是STC的51系列單片機(jī),代碼如下:voidInit()//初始化函數(shù){TMOD=0x01;//計(jì)數(shù)器016位定時(shí)器模式TH0=0xff;//定時(shí)器初值TL0=0xfe;ET0=1;//定時(shí)器0中斷允許TR0=1;//定時(shí)器0開始計(jì)數(shù)IE=0x85;//開總中斷}程序中開啟了定時(shí)器計(jì)時(shí),每隔一段時(shí)間就會(huì)觸發(fā)中斷,用于執(zhí)行讀取程序和控制程序。這里設(shè)置的計(jì)時(shí)方式是16位定時(shí)器模式。讀取程序:接下來(lái)需要讀取傳感器所測(cè)得的溫濕度數(shù)據(jù),代碼如下:voidReadDHT11(){unsignedchari,dat;TH0=0xff;//計(jì)時(shí)器0賦初值TL0=0xfe;TR0=1;//計(jì)時(shí)器0開始計(jì)數(shù)while(!DHT11_PRESENT);//等待DHT11引腳出現(xiàn)高電平delay_us(30);//延遲30usif(!DHT11_PRESENT)//如果DHT11引腳仍處于低電平return;//數(shù)據(jù)丟失,返回elsedelay_us(80);//延遲80usfor(i=0;i<5;i++)//循環(huán)5次讀取5個(gè)字節(jié)的數(shù)據(jù)Data[i]=0;for(i=0;i<8;i++)//循環(huán)8次讀取每個(gè)字節(jié)的數(shù)據(jù){while(DHT11_PRESENT==0);//等待引腳出現(xiàn)高電平delay_us(30);//延遲30usdat<<=1;//左移1位if(DHT11_PRESENT)//如果引腳仍處于高電平dat|=0x01;//加入bit“1”elsedat&=0xfe;//加入bit“0”while(DHT11_PRESENT);//等待引腳出現(xiàn)低電平Data[i>>2]|=(dat<<(((~i)&0x03)<<1));//存入數(shù)組}}在讀取程序中,使用了計(jì)時(shí)器0和延時(shí)函數(shù)。當(dāng)引腳出現(xiàn)高電平時(shí),會(huì)進(jìn)入延時(shí)函數(shù),防止讀到的數(shù)據(jù)出現(xiàn)誤差;讀取每個(gè)字節(jié)時(shí),先左移1位,然后根據(jù)當(dāng)前引腳的電平讀入0或1,最后通過(guò)按位或的方式存入數(shù)組??刂瞥绦颍鹤詈?,需要根據(jù)讀取到的溫濕度數(shù)據(jù)進(jìn)行控制,代碼如下:voidControl(){charRH_data,T_data;RH_data=Data[0];//濕度T_data=Data[2];//溫度if(T_data>27)//如果溫度大于27℃FAN_ON;//打開風(fēng)扇elseFAN_OFF;//關(guān)閉風(fēng)扇if(T_data>=26&&T_data<=28&&RH_data>=40&&RH_data<=60)//判斷是否為標(biāo)準(zhǔn)環(huán)境LED_ON;//點(diǎn)亮LED燈elseLED_OFF;//關(guān)閉LED燈}根據(jù)需求,當(dāng)溫度大于27℃時(shí)打開風(fēng)扇降溫;當(dāng)溫度在26℃至28℃之間,且濕度在40%至60%之間時(shí)認(rèn)為環(huán)境為標(biāo)準(zhǔn)環(huán)境,并點(diǎn)亮LED燈。3.測(cè)試及優(yōu)化將程序燒錄到單片機(jī)中,通過(guò)串口調(diào)試工具監(jiān)測(cè)溫濕度值和控制信號(hào)??梢钥吹娇刂破髯x取到的溫濕度值效果良好,控制信號(hào)也能正常輸出。在測(cè)試的過(guò)程中,如果控制器的控制信號(hào)有誤,可以通過(guò)修改延時(shí)時(shí)間和調(diào)整溫濕度閾值等方式來(lái)進(jìn)行優(yōu)化,從而

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論