找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2527|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)智能環(huán)境檢測(cè)儀設(shè)計(jì)文檔

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本次設(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)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表