随着生活水平的提高,罐装煤气和煤气管道已经进入千家万户。在人们享受它带来的方便的同时,也受到了由于设备使用不当或者设备老化而导致的煤气泄漏的巨大威胁。煤气泄漏可以使人煤气中毒,煤气在和空气混合到一定比例形成的混合物还会发生爆炸,严重威胁到了人们的生命财产安全。针对这种情况设计了一种煤气泄漏监控系统,该系统可以很好的在家用煤气发生泄漏的时候发出警报,使危急情况得到处理。
本系统以AT89C51单片机为核心,由MQ-2传感器、单片机AT89C51、模数转换芯片ADC0809、LCD1602液晶显示屏、DS18B20构成,它的用途是测量空气中煤气的浓度及温度,在煤气浓度或者温度大于或者等于预设值定将发出声、光报警。该系统有硬件与软件设计两部分。硬件部分的设计包括煤气浓度采集电路的设计、温度采集电路的设计、模/数转换电路的设计、单片机最小系统电路和按键电路的设计、显示电路的设计、报警电路的设计。软件部分由KEILC51编程PROTEUS仿真。该设计主要完成了系统原理图的绘制,软件仿真,并利用单片机开发板实现了具体的功能,经验证该系统工作稳定可靠。
#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include "intrins.h"
#define u8 unsigned char
#define u16 unsigned int
#define uchar unsigned char
#define uint unsigned int
uchar yushe_wendu=50; //温度预设值
uchar yushe_yanwu=100; //烟雾预设值
uint wendu; //温度值全局变量
uchar yanwu; //用于读取ADC数据
//运行模式
uchar Mode=0; //=1是设置温度阀值 =2是设置烟雾阀值 =0是正常监控模式
//管脚声明
sbit Led_Reg =P2^2; //红灯
sbit Led_Yellow =P2^4; //黄灯
sbit Buzzer =P2^0; //蜂鸣器
sbit Fan =P3^3; //
/********************************************************************
* 名称 : delay_1ms()
* 功能 : 延时1ms函数
* 输入 : q
* 输出 : 无
***********************************************************************/
void delay_ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<110;j++);
}
/***********************************************************************************************************
LCD1602相关函数
***********************************************************************************************************/
//LCD管脚声明 (RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平)
sbit LCDRS = P2^7;
sbit LCDEN = P2^6;
sbit D0 = P0^0;
sbit D1 = P0^1;
sbit D2 = P0^2;
sbit D3 = P0^3;
sbit D4 = P0^4;