標題: 單片機智能環(huán)境檢測儀設計文檔 [打印本頁]
作者: zyf@0721 時間: 2020-5-18 15:19
標題: 單片機智能環(huán)境檢測儀設計文檔
圖片2.png (134.77 KB, 下載次數: 26)
下載附件
2020-5-18 15:35 上傳
圖片1.png (94.33 KB, 下載次數: 36)
下載附件
2020-5-18 15:35 上傳
本次設計主要分五個個功能,分別為測溫濕度,煙霧感應和報警,顯示信息和報警信息。將這幾個個功能巧妙的與家居結合,我們已經知道五個單獨功能如何實現,現在要將五個功能通過單片機系統(tǒng)化反饋,以達到能實現綜合五種功能的智能家居。 設計涉及主硬件為: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 ;//記錄當前設置狀態(tài)
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)
{
因篇幅原因,其他內容請查看附件(只有設計思路,不包含程序和仿真圖哦,可以作為有限的參考)
智能環(huán)境檢測儀(文檔).docx
(498.85 KB, 下載次數: 22)
2020-5-18 15:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |