圖片2.png (134.77 KB, 下載次數: 26)
下載附件
2020-5-18 15:35 上傳
圖片1.png (94.33 KB, 下載次數: 36)
下載附件
2020-5-18 15:35 上傳
本次設計主要分五個個功能,分別為測溫濕度,煙霧感應和報警,顯示信息和報警信息。將這幾個個功能巧妙的與家居結合,我們已經知道五個單獨功能如何實現,現在要將五個功能通過單片機系統化反饋,以達到能實現綜合五種功能的智能家居。 設計涉及主硬件為:STC89C52RC單片機,DHT11溫濕度傳感器,MQ-2煙霧傳感器,按鍵設置與LCD1602液晶顯示模塊,蜂鳴器報警電路,以及超標指示顯示模塊組成。 1.2.2 功能介紹 1. 采用DHT11溫濕度傳感器檢測溫濕度,夏普的GP2Y1010AUOF粉塵傳感器檢測空氣質量給ADC0832模數轉換芯片,0832將模擬量裝換成數字量給單片機。 2.采用LCD1602液晶屏顯示溫度、濕度和pm2.5粉塵數據以及各個指標的閥值。 3.三個按鍵:按鍵1設置、按鍵2加、按鍵3減。按鍵可以設置溫濕度的上下限值和粉塵的上限值,設置的值可以存儲到單片機(STC系列)內部的EEPROM中,實現掉電存儲,設置的值掉電不丟失。 4. 當溫濕度值低于下限或高于上限時,或粉塵數據超過上限值時,相應的led指示燈亮,同時蜂鳴器響,實現聲光報警。 #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數據/命令選擇引腳 sbit RW=P2^6; sbit K1=P1^3;//設置鍵 sbit K2=P1^4;//加 sbit K3=P1^5;//減 //sbit K5=P1^6; //布防撤防按鍵 sbit LED1=P3^1; //煙霧報警 sbit LED2=P3^2; //溫度上限 sbit LED3=P3^3;//溫度下限 sbit LED4=P3^4; //濕度上限 sbit LED5=P3^5; //濕度下限 //sbit LED6=P3^6; //紅外報警 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 ;//記錄當前設置狀態 uint count;
//定時器0初始化 void Timer0_Init() { ET0 = 1; //允許定時器0中斷 TMOD = 0x11; //定時器工作方式選擇 TL0 = 0xb0; TH0 = 0x3c; //定時器賦予初值 TR0 = 1; //啟動定時器 TH1=0xdc; TL1=0x00; ET1=1; EA=1; }
//定時器0中斷 void Timer0_ISR (void) interrupt 1 { uchar RHCounter; TL0 = 0xb0; TH0 = 0x3c; //定時器賦予初值 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) {
因篇幅原因,其他內容請查看附件(只有設計思路,不包含程序和仿真圖哦,可以作為有限的參考)
智能環境檢測儀(文檔).docx
(498.85 KB, 下載次數: 22)
2020-5-18 15:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|