找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2147|回复: 0
收起左侧

单片机智能环境检测仪设计文档

[复制链接]
ID:753405 发表于 2020-5-18 15:19 | 显示全部楼层 |阅读模式
图片2.png 图片1.png 本次设计主要分五个个功能,分别为测温湿度,烟雾感应和报警,显示信息和报警信息。将这几个个功能巧妙的与家居结合,我们已经知道五个单独功能如何实现,现在要将五个功能通过单片机系统化反馈,以达到能实现综合五种功能的智能家居。
设计涉及主硬件为: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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表