1 系统架构
图1.1为基于单片机的可燃气体检测系统架构框图,系统以STC89C52单片机作为中央处理器。系统工作频率由外部晶振提供,开关按键可以来对系统内的判决门限进行调整;由MQ-2传感器来对当前环境的气体浓度值进行不断检测,经过AD转换后,数据将会送交给单片机;单片机对该数据进行处理,与外部输入的门限值进行比较,当出现大于门限的情况,则输出相应的信号控制报警系统:蜂鸣器响、电机转动;整个工作过程的结果将会由LCD1602进行显示。

图1.1 基于单片机的可燃气体检测系统架构
2 系统硬件设计
结合第一章的系统需求分析,我们首先需要结合对基于单片机的可燃气体检测系统中的各个模块的硬件电路完成设计。
2.1 绘制电路板概述
本次对基于单片机的可燃气体检测系统设计中使用的是Altium Designer软件完成电路板的绘制,包含以下一些步骤:
(1)新建空的原理图与PCB图;
(2)依据基于单片机的可燃气体检测系统所需要实现的功能选择器件,绘制原理图;
(3)绘制元器件库,如果现有库文件没有相关器件,我们需要自己进行补充,也可以方便下次设计;
(4)PCB封装;
(5)生成PCB;
(6)进行合理的元器件布局,需要充分考虑走线是否方便、散热等问题;
(7)布线,要充分考虑系统电流大小,过孔,焊盘大小等等;
(8)送去加工,找厂家进行板子的制作
2.2 单片机电路设计
本次设计选用主控制器型号是STC89C52的单片机。它的内部ROM存储器:8K;RAM:256K;定时器:2个(ROM:是程序存放指令代码和一些固定数值,程序运行后不可改动;RAM:用于程序运行中数据的随机存取,掉电后数据消失。)单片机对各种传感器和外设进行控制,对外部输入的数据和信号进行收集计算,并进行相应的操作,是工业生产中的大脑。 我们首先需要完成对单片机外围系统的设计。
2.2.1 STC89C52单片机介绍
STC89C52有 32个I/O口可以连接更多的外设和传感器,8K字节的FLASH存储器可以进行更多的计算缓存,521字节的RAM大大提高的反应速度。STC89C52单片机的烧录也非常简单,通过TX和RX口,采用对应的编译器就可以将程序烧录进去。是一款便宜、简单和高性能的单片机。

图2.1 STC89C52单片机封装引脚
3 系统软件流程设计
结合系统需求分析,在完成了系统电路的设计以后,系统的主要功能还需要通过软件实现,需要进行相关软件流程设计,实现基于单片机的可燃气体检测系统预定的相关功能。
软件流程设计采用模块化设计的方法,即在程序编写之前,首先结合基于单片机的可燃气体检测系统硬件电路以及系统需求对程序进行功能模块化,再编写各个模块的程序,使程序易于编写、调试和修改。程序设计过程中的软件开发环境选用Keil软件。
3.1 程序架构
基于单片机的可燃气体检测系统程序架构如图3.1所示,当整个系统运行时,首先是各个部分的初始化,由于系统要实现对开关是否按下的检测,还需要完成包括单片机的中断设置等。

图3.1程序架构
4 系统验证
4.1 焊接与调试
在完成基于单片机的可燃气体检测系统的电路设计以后,生成PCB,而后进行封装,布线等一系列流程以后,将样板送交给厂家进行绘制。并完成系统中所需要元器件的采购。
当电路板原理图绘制完成后,确认各个模块功能没有错误,根据文章附件中的相关器件,进行采购和测试。在确定原理图没有出现错误的情况下我们开始进行焊接,使用市场上比较常用的万能板进行焊接。
最终得到的实物图如图4.1所示。

图4.1 系统实物图
4.2 程序烧录与调试
当单片机焊接好之后,将STC89C52单片机和各个模块都插上去,给系统12V供电。
按下启动键以后,电源灯会常亮,屏幕的初始值:上面一行显示当前浓度值:"NOW GAS:数值 PPM",下面一行显示设定的报警门限:"Warning:数值 PPM"。
为了对系统进行测试,我们在传感器旁边用打火机模拟,可以发现,在点燃火机的时候,探测到的浓度值迅速提高,依据LCD显示,可以发现在瞬间达到一千多,同时蜂鸣器响,电机转动。
我们按下开关K2,可以发现设定的浓度值每按一下会加1,在长按的时候,设定的浓度值持续加1;按下开关K3,可以发现设定的浓度值每按一下会减1,在长按的时候,设定的浓度值持续减1。
经过调试与验证,基于单片机的可燃气体检测系统已经实现了初始的应用需求,可以对系统所在环境的浓度值进行判断,并通过按键对浓度值进行调整,在超过门限值的时候,能够实现蜂鸣器响、电机转动等报警功能,有着很强的可靠性与实用性。