基于51单片机的天然气监测报警系统设计
基于51单片机的天然气监测报警系统设计
视频
基于51单片机的MQ-5天然气监测报警系统设计
1 开发环境
仿真图:proteus8.9以上
程序代码:KEIL4/KEIL5
原理图:AD
设计编号:A0008
2 功能说明介绍
结合实际情况,基于51单片机设计一个天然气监测报警统设计。该系统应满足的功能要求为:
实物功能:
本设计由51单片机+MQ-5传感器模块电路+3个LED指示灯电路+蜂鸣器报警电路+PCF8591AD模块+风扇控制电路+继电器电路+电源电路组成。
1、MQ-5实时检测煤气浓度,浓度分为低中高3档,并分别用绿灯、黄灯和红灯指示,浓度到达相应的档位,则相应的灯亮,指示灯指示安全状态。
2、当浓度达到高档的时候,蜂鸣器报警,风扇启动,疏散煤气,继电器工作驱动负载断开煤气阀;
3、当浓度达到中档时,继电器工作,驱动负载断开煤气阀。
仿真功能:
本设计由51单片机+MQ-5传感器模块电路+LED指示灯电路+蜂鸣器报警电路+ADC0832模块+风扇控制电路+继电器电路+电源电路组成。
1、MQ-5实时检测煤气浓度,浓度分为2档,并分别用绿灯红灯指示,浓度到达相应的档位,则相应的灯亮,指示灯指示安全状态。
2、当浓度达到高档的时候,蜂鸣器报警,风扇启动,疏散煤气,继电器工作驱动负载断开煤气阀;红灯闪烁。
3、当浓度达到低档时,风扇关闭,煤气阀正常工作,绿灯闪烁。
3 仿真图
AT89C51可以替换为AT89C52,实物可以换做STC89C51,STC89C52
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS16位单片机,片内含4k bytes的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器,期间采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用16位中央处理器和Flash存储单元,功能强大的AT89C51单片机可灵活应用于各种控制领域。
AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个1 6位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
本系统中央控制器采用的AT89C51单片机,复位电路采用上电复位电路。外接的晶振为12MHz晶振。
4 程序
工程文件使用Keil4/keil5打开。编译产生hex加载到对应的单片机中。实物代码和仿真代码略有不同。分别的工程文件。
代码
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#include "i2c.h"
#include "delay.h"
sbit fengshan = P1^0; //接口定义
sbit buzzer = P1^1;
sbit relay = P1^2;
sbit LED_GRE = P1^3;
sbit LED_YEL = P1^4;
sbit LED_RED = P1^5;
unsigned long time_20ms=0; //定时变量
unsigned char dis0[16]; //数组暂存
unsigned char midVolt ; //ad采集电压
unsigned char i;
void Init_Timer0(void);//函数声明