圖片2.png (134.77 KB, 下載次數(shù): 26)
下載附件
2020-5-18 15:35 上傳
圖片1.png (94.33 KB, 下載次數(shù): 36)
下載附件
2020-5-18 15:35 上傳
本次設(shè)計(jì)主要分五個(gè)個(gè)功能,分別為測(cè)溫濕度,煙霧感應(yīng)和報(bào)警,顯示信息和報(bào)警信息。將這幾個(gè)個(gè)功能巧妙的與家居結(jié)合,我們已經(jīng)知道五個(gè)單獨(dú)功能如何實(shí)現(xiàn),現(xiàn)在要將五個(gè)功能通過單片機(jī)系統(tǒng)化反饋,以達(dá)到能實(shí)現(xiàn)綜合五種功能的智能家居。 設(shè)計(jì)涉及主硬件為:STC89C52RC單片機(jī),DHT11溫濕度傳感器,MQ-2煙霧傳感器,按鍵設(shè)置與LCD1602液晶顯示模塊,蜂鳴器報(bào)警電路,以及超標(biāo)指示顯示模塊組成。 1.2.2 功能介紹 1. 采用DHT11溫濕度傳感器檢測(cè)溫濕度,夏普的GP2Y1010AUOF粉塵傳感器檢測(cè)空氣質(zhì)量給ADC0832模數(shù)轉(zhuǎn)換芯片,0832將模擬量裝換成數(shù)字量給單片機(jī)。 2.采用LCD1602液晶屏顯示溫度、濕度和pm2.5粉塵數(shù)據(jù)以及各個(gè)指標(biāo)的閥值。 3.三個(gè)按鍵:按鍵1設(shè)置、按鍵2加、按鍵3減。按鍵可以設(shè)置溫濕度的上下限值和粉塵的上限值,設(shè)置的值可以存儲(chǔ)到單片機(jī)(STC系列)內(nèi)部的EEPROM中,實(shí)現(xiàn)掉電存儲(chǔ),設(shè)置的值掉電不丟失。 4. 當(dāng)溫濕度值低于下限或高于上限時(shí),或粉塵數(shù)據(jù)超過上限值時(shí),相應(yīng)的led指示燈亮,同時(shí)蜂鳴器響,實(shí)現(xiàn)聲光報(bào)警。 #include <reg52.h> #include <intrins.h> #include <absacc.h> #include <math.h> #include "0832.h" #define uchar unsigned char #define uint unsigned int #include "eeprom52.h"
sbit DATA = P3^7; //溫濕度 sbit E=P2^7;//1602使能引腳 sbit RS=P2^5;//1602數(shù)據(jù)/命令選擇引腳 sbit RW=P2^6; sbit K1=P1^3;//設(shè)置鍵 sbit K2=P1^4;//加 sbit K3=P1^5;//減 //sbit K5=P1^6; //布防撤防按鍵 sbit LED1=P3^1; //煙霧報(bào)警 sbit LED2=P3^2; //溫度上限 sbit LED3=P3^3;//溫度下限 sbit LED4=P3^4; //濕度上限 sbit LED5=P3^5; //濕度下限 //sbit LED6=P3^6; //紅外報(bào)警 sbit alarm=P3^0; //蜂鳴器 uchar U8FLAG,U8temp,U8comdata,U8RH_data_H_temp,U8RH_data_L_temp,U8T_data_H_temp,U8T_data_L_temp,U8checkdata_temp; uchar U8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata; uchar Mode,humidity,temperature,smog; bit flag_BJ=0; uchar PM_Counter=0; uint sum=0; uint DA=0; bit bdata FlagStartRH; uchar flag ;//記錄當(dāng)前設(shè)置狀態(tài) uint count;
//定時(shí)器0初始化 void Timer0_Init() { ET0 = 1; //允許定時(shí)器0中斷 TMOD = 0x11; //定時(shí)器工作方式選擇 TL0 = 0xb0; TH0 = 0x3c; //定時(shí)器賦予初值 TR0 = 1; //啟動(dòng)定時(shí)器 TH1=0xdc; TL1=0x00; ET1=1; EA=1; }
//定時(shí)器0中斷 void Timer0_ISR (void) interrupt 1 { uchar RHCounter; TL0 = 0xb0; TH0 = 0x3c; //定時(shí)器賦予初值 RHCounter++; PM_Counter++; if(RHCounter%2==0&&flag_BJ==1) { alarm=!alarm; } if(RHCounter >= 20) { FlagStartRH = 1; RHCounter = 0; } if(PM_Counter%2==0) { DA=adc0832(0); sum=sum+DA; if(PM_Counter>=100) { PM_Counter=0; sum=sum/50; PM_NUM=(sum/256.0)*5000; PM_NUM=PM_NUM*0.172-0.0999; sum=0; } }
} void Delay1(uint j) { uchar i; for(;j>0;j--) { for(i=0;i<27;i++); } }
void Delay_10us(void) { uchar i; i--; i--; i--; i--; i--; i--; }
void COM(void) {
因篇幅原因,其他內(nèi)容請(qǐng)查看附件(只有設(shè)計(jì)思路,不包含程序和仿真圖哦,可以作為有限的參考)
智能環(huán)境檢測(cè)儀(文檔).docx
(498.85 KB, 下載次數(shù): 22)
2020-5-18 15:17 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|