基于单片机塑料厂房气体检测系统设计

来源:思想汇报 发布时间:2021-01-05 点击:

  目

 录 摘

 要 .................................................................................................................... I Abstract...................................................................................................................... II 引

 言 ................................................................................................................... 3 1 系统总体架构 ....................................................................................................... 5 1.1 需求分析与方案设计 .................................................................................. 5 1.2 系统器件选择 .............................................................................................. 5 1.3 系统架构 ...................................................................................................... 6 2 系统硬件设计 ....................................................................................................... 6 2.1 绘制电路板概述 .......................................................................................... 6 2.2 单片机电路设计 .......................................................................................... 7 2.2.1 STC89C52 单片机介绍 ........................................................................ 7 2.2.2 STC89C52 单片机外围电路设计 ...................................................... 8 2.3 LCD1602 液晶显示电路设计 ...................................................................... 10 2.3.1 LCD1602 液晶显示器介绍 .............................................................. 10 2.3.2 LCD1602 液晶外围电路设计 .......................................................... 11 2.4 传感器与 AD 转换电路设计 ...................................................................... 12 2.5 电机电路设计 ............................................................................................ 13 2.6 按键系统 ................................................................................................... 14 2.7 调试电路 ................................................................................................... 15 3 系统软件流程设计 ............................................................................................. 16 3.1 程序架构 .................................................................................................... 16 3.2 LCD 显示程序设计 .................................................................................... 17 3.3 按键控制程序设计 .................................................................................... 19 4 系统验证 ............................................................................................................. 22 4.1 焊接与调试 ................................................................................................ 22 4.2 程序烧录与调试 ........................................................................................ 23 结

 论 ................................................................................................................. 25 参考文献 ................................................................................................................. 26

 附录 1 元器件清单 ................................................................................................ 27 附录 2 源程序清单 ................................................................................................ 28 致

 谢 ................................................................................................................. 44

 本科论文

  摘

 要 目前,在社会主义现代化建设中,火灾不断的增多,而在塑料厂房中大部分火灾都是因为生产塑料的机器不断的运转导致机体周围的温度不断升高,超过了可燃气的燃点,或者是生产塑料的机器昌盛的可燃气过多,从而导致了很多不安全因素的发生。

 为了对火灾进行预警,避免灾害的发生,本文设计了一款基于单片机的塑料厂房可燃气体检测系统。基于单片机的塑料厂房可燃气体检测系统通过传感器对当前环境的可燃气体浓度值进行实时检测,经过 AD 转换后送交给单片机进行处理;可以通过外部按键来对系统的判决门限即最高浓度值进行设置;单片机对数据处理后,与设定的最高浓度值进行比较,若是大于该浓度值,则输出信号控制蜂鸣器响、电机转动;整个过程中的探测值、设定值均由 LCD 液晶来进行显示。

 本文首先分析了基于单片机的可燃气体检测系统的设计需求,完成了系统架构设计。在此基础上进行了单片机外围电路设计,液晶显示外部电路设计,MQ 传感器与 AD 转换电路设计,电机外部电路设计,开关电路设计。在完成硬件电路设计的基础上,进行了软件流程设计,包括对 LCD 液晶显示控制程序,读取 AD 转换后的数据,按键控制程序。

 经过调试与验证,基于单片机的可燃气体检测系统已经实现了初始的应用需求,可以对系统所在环境的浓度值进行判断,并通过按键对浓度值进行调整,在超过门限值的时候,能够实现蜂鸣器响、电机转动等报警功能,有着很强的可靠性与实用性。

 关键词:

 单片机; LCD;声光报警;可燃气体;

 本科论文

  Abstract At present, with the continuous development of the paint market, the demand for mixing equipment is higher and higher. In order to reduce the cost of coating production, reduce a large number of human and material resources and improve the work efficiency through the design of a new type of coating agitator, an automatic mixing system based on single chip microcomputer is designed in this paper. The automatic mixing system based on single-chip microcomputer can be controlled by external keys. The internal single-chip microcomputer responds to the external keys and then controls the motor. It can adapt to the needs of mixing materials in different situations, and can carry out positive and negative rotation, speed adjustment, timing mixing and other functions. This paper first analyzes the design requirements of the automatic stirring system based on single chip microcomputer, and completes the system architecture design. The peripheral circuit design of single chip microcomputer, the external circuit design of liquid crystal display and the external circuit design of motor are completed. On the basis of hardware circuit design, the software flow is designed, including LCD display program, motor timing and speed control program, key control program. The experimental results show that the automatic mixing system based on single-chip microcomputer can adjust the working mode flexibly and realize "one set of equipment, one machine with multiple functions, one step in place".

 Keywords: MCU;LCD;Sound and light alarm;Combustible Gas ;

 本科论文

  引

 言 目前,在社会主义现代化建设中,火灾可以说是一个重大的隐患,尤其是在封闭的工业,如若发生火灾需要处理更是难上加难,所以我们需要早发现早预防,我是在一个塑料厂房参加的实习工作,塑料制品本身就属于可燃易燃难熄灭的种类,而且在一个大的密闭厂房内部,机器融化塑料需要极高的温度,所以必须控制好厂房内部可燃气体的浓度。

 姚美玲等设计了基于NB-LOT的智能火灾预警系统,主要包括以下设计,首先是进行网络上线,报警器自动上电并与 NB-LOT 连接;第二步是在出现情况的时候,实现火灾上报,指示灯闪烁,蜂鸣器响;第三个部分是关于故障上报,当报警器有问题的时候可以通过上报。该系统可以避免布局布线的复杂度,可以降低成本,但是其维护比较困难。

 安徽师范大学的研究人员设计了基于电磁导航的巡查机器人。该机器人利用电磁导航进行定位,此外该机器人还配备有红外报警,可燃气体检测,火焰报警,OLED 等,故其可以检测明火、可燃气体、是否有外来人员等,并可以通过无线传输将信息实时送交给使用者。其功能十分强大,机器人可以在设定的区域内不停的巡逻,传感器也很齐全,可以实现互补功能。但是,由于其主要传感器安置在机器人的前端,也就是说无法兼顾侧面及背后的情况,同时机器人的持久巡航能力也值得考虑。

 刘广潆设计了基于激光式的可燃气体探测器,主要是结合相关气体对特定波长的光信号有吸收作用,在结合光谱来确定当前环境的浓度。设备持续不断的向环境发射光信号,当环境中有可燃气体的时候,返回的光信号由于被气体吸收,则会强度衰弱,由此可判断当前环境是否有可燃气体。该方法只是在特定的场合即油田区域运用,激光会对人体的眼睛造成损伤。

 本次所设计的基于单片机的塑料厂房可燃气体检测系统,主要需要实现以下一些功能。基于单片机的可燃气体检测系统通过传感器对当前环境的可燃气体浓度值进行实时检测,经过 AD 转换后送交给单片机进行处理;可以通过外部按键来对系统的判决门限即最高浓度值进行设置;单片机对数据处理后,与设定的最高浓度值进行比较,若是大于该浓度值,则输出信号控制蜂鸣器响、电机转动,当低于该值的时候,电机停止转动,蜂鸣

 本科论文

 器不响;整个过程中的探测值、设定值均由 LCD 液晶来进行显示。

 本科论文

 1 系统总体架构 1.1 需求分析与方案设计 为了防止塑料厂房内火灾的发生,就需要检测厂房内部可燃气体的浓度,本文设计了一款基于单片机的塑料厂房可燃气体检测系统。基于单片机的可燃气体检测系统通过传感器对当前环境的可燃气体浓度值进行实时检测,经过 AD 转换后送交给单片机进行处理;可以通过外部按键来对系统的判决门限即最高浓度值进行设置;单片机对数据处理后,与设定的最高浓度值进行比较,若是大于该浓度值,则输出信号控制蜂鸣器响、电机转动;整个过程中的探测值、设定值来进行显示。

 为了实现上述功能,可以有两种方案:

 第一种是利用激光探测器,对光谱的吸收来判断是否有可燃气体。

 第二种方案是利用单片机作为处理器,结合外部传感器来对当前环境的可燃气体浓度值进行收集、计算,外部使用者可以通过相关操作来对系统的判决门限进行设置,当浓度值超过浓度值,则输出信号控制蜂鸣器响、电机转动。

 依据方案设计的复杂度、智能性、可操作性等原因,我们选择第二种方案,即基于单片机的可燃气体检测系统。

 1.2 系统器件选择 结合上文的系统需求分析,首先为了检测,采用 MQ-2 传感器来对塑料厂房内部可燃气体浓度值进行检测,为了便于单片机处理,利用 AD 芯片来进行转换,为了接收外部对系统工判决门限的控制与改变,在基于单片机的可燃气体检测系统中使用按键电路来实现。

 整个系统的运行都依靠单片机来进行操控,不同的单片机类型功能也不一样,经过仔细考虑和结合实际情况,采用的是 8052 内核的 STC89C52单片机。因为此程序的代码不是十分的繁多,所以为了节约成本没有采用比较复杂成本比较昂贵的STM32或者是MSP430等单片机,而去采用528kb的内存单片机。

 显示部分用 LCD1602 液晶来显示当前的信息,相比于数码管显示, LCD1602 显示的字符量更多,弥补信息量比较少,显示内容有限的缺陷,它可以显示文字、数字还可以显示特殊的符号。

 本科论文

  1.3 系统架构 图 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 单片机封装引脚

 图 2.1 为 STC89C52 单片机封装引脚,完成基于单片机的塑料厂房气体

 本科论文

 检测系统设计之前首先需要对管脚进行了解。

 VCC:供电电压。

 GND:接地。

 P0、P1、P2、P3:I/O 引脚,可以在本次设计中作为输入输出端口,用以接收 GPS 的位置信息或者向 LCD 液晶输出信息等。

 P3 口特殊功能口,具体如表 2.1 所示:

 RXD 即可在本系统中用以接收 GPS 传来的位置信息,TXD 即可在本系统中用向短信模块发送位置信息;

 表 2.1 P3 口的第二功能 引 脚 位 置

 第二功能 符 号

 功 能 P3.0 RXD 串行输入口 P3.1 TXD 串行输出口 P3.2 /INT0 外部中断 0 P3.3 /INT1 外部中断 1 P3.4 T0 记时器 0 外部输入 P3.5 T1 记时器 1 外部输入 P3.6 /WR 外部数据存储器写选通 P3.7 /RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收一些控制信号; RST:复位输入; PSEN:外部程序存储器的选通信号; XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入; XTAL2:来自反向振荡器的输出。

 2.2.2 STC89C52 单片机外围电路设计 根据第一章对基于单片机的可燃气体检测系统需求分析,结合单片机所完成的具体工作以及单片机的管脚介绍,最终总结单片机外围电路需要进行几个方面的设计。

 (1) 单片机供电及晶振部分

 本科论文

 为保证单片机正常运作,首先根据芯片数据手册中的管脚定义,完成对单片机的供电设计即对应管脚接电源和地。单片机外部晶振如图 2.2:本次设计中,单片机使用外部的 11.0592MHz 晶振,本次设计 18 管脚是外部晶振的输入端,让 19 管脚其接地。

 图 2.2 晶振电路

 (2) 报警电路:

 基于单片机的可燃气体检测系统工作时,若检测到的可燃气体浓度值超过我们所设定的门限值,那么意味着此时已经出现火灾或有爆发的危险。此时需要通过报警电路进行报警,而后电机开始转动,向外排放气体降低环境内的可燃气体浓度值。

 图 2.3 声光报警电路

 报警的时候分为两个部分来提醒使用者,第一个是 LED 灯亮,第二个是蜂鸣器响(本次设计中使其 0.5s 一次)。电路图如图 2.3 所示,将 LED 和蜂鸣器正极接在 VCC,负极并联到三极管的发射极,而三极管的基极连接到单片机的 P1.4 口。这样,在正常情况下,单片机 P1.4 口输出高电平,三极管没有导通,二级管不亮,蜂鸣器不响;在单片机判断可燃气体浓度值超过我们所设定的门限值,就由 P1.4 口输出低电平,从而二极管与蜂鸣器导通,二极管灯亮、蜂鸣器响起。二极管工作的时候电流不能太大,一般是5mA 左右,在 LED 正常导通的时候,其两端的的电压一般是 1.7V,为了保护二极管,外接了一个 1KΩ 电阻。

 本科论文

 (3) 读取内部存储器 依据芯片的数据手册,单片机的 31 管脚在接高电平时,单片机使用内部存储器。结合上一节介绍,系统中所使用的 STC89C52 单片机有内部ROM,因此在本次设计中,将该管脚一直接高电平。

 2.3 LCD1602 液晶显示电路设计 2.3.1 LCD1602 液晶显示器介绍 本着实现人机交互,方便观察气体检测结果的原则,我采用了 LCD1602的液晶显示器,LCD1602 液晶显示器可以清晰的显示出当前塑料厂房内部某点的气体浓度值以及自己设计的气体的预警值,而且 LCD1602 的显示质量高。LCD1602 液晶显示器作为输出显示器具有体积小、重量轻、低功耗等特点,数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。

 如表 2.2 所示为 LCD1602 数据手册给出的芯片接口定义。是我在进行电路设计以及后续编程实现数据显示过程中的重要依据。

 表 2.2 LCD1602 芯片接口定义

 编号

 符号

 引脚说明 1 VSS 电源地 2 VDD 电源正极 3 VL 液晶显示偏压信号 4 RS 数据/命令选择端(H/L)

 5 R/W 读/写选择端(H/L)

 6 E 使能信号 7 D0 Date I/O 8 D1 Date I/O 9 D2 Date I/O 10 D3 Date I/O 11 D4 Date I/O 12 D5 Date I/O 13 D6 Date I/O 14 D7 Date I/O

 本科论文

 15 BLA 背光源正极 16 BLK 背光源负极

 芯片的 32 到 39 管脚即 P0 口是单片机的 8 个 I/O 口,本次基于单片机的塑料厂房气体检测系统设计中,液晶需要显示的可燃气体检测系统检测到的当前气体浓度检测值、设定的告警值(及其单位)等相关数据由这个 8个端口送交给 LCD 液晶显示,由于单片机的 P0 口没有上拉电阻,是高阻状态,因此外接一个 10KΩ 的排阻;同时依据液晶显示的数据手册,对液晶显示进行操作还需要涉及三个控制管脚,因此在单片机 P2.5,P2.6 和 P2.7三个端口给出三个控制信号。

 2.3.2 LCD1602 液晶外围电路设计 液晶需要显示的可燃气体检测系统检测到的当前气体浓度检测值、设定的告警值(及其单位)等相关数据。上面一行显示当前浓度值:“NOW GAS:数值 PPM”,下面一行显示设定的报警门限:“Warning:数值 PPM”。结合对整个可燃气体检测系统检的工作设计,LCD1602 液晶显示外围电路设计分为以下几个部分。

 (1) 液晶供电部分 结合 LCD1602 液晶显示的数据手册,为了在基于单片机的可燃气体检测系统中使的液晶正常工作,需要完成供电设计。

 (2) 与单片机之间的通信 依据数据手册,7 到 14 号管脚是其数据口,在基于单片机的可燃气体检测系统中,液晶需要通过这个 8 个数据口从单片机接收信息再进行显示。

 (3)液晶显示的控制 为了保证与单片机的通讯,还有三个控制管脚。依据数据手册, 初始化气体浓度检测读取AD大于门限Y计算浓度值LCD显示蜂鸣器响、电机转动按键检测按下设定门限值Y结束液晶的 6 管脚为使能端口,在数据传输的时候,高电平有效,连接单片机的 P2.5 口;5 管脚为读写选择端,将其连接到单片机的 P2.6 口,接受单片机给出的控制信号;4管脚为数据/命令选择端,连接单片机的P2.7口。

 (3)

 液晶显示的对比度调节:

 依据数据手册,LCD1602 液晶的 3 管脚是调节显示对比度的端口,考虑到工人群体对显示屏亮度比较敏感或者有不同喜好,在电路设计中,系

 本科论文

 统的使用者可对显示对比度的调节。

  最终,图 2.4 即为基于单片机的可燃气体检测系统中 LCD 液晶显示电路。

 图 2.4 LCD1602 液晶显示电路图

 2.4 传感器与 AD 转换电路设计 MQ-2 型传感器对天然气、液化石油气等烟雾有很高的灵敏度,尤其对烷类烟雾更为敏感具有良好的抗干扰性,可准确排除有刺激性非可燃性烟雾的干扰信息。

 MQ-2 型传感器具有良好的重复性和长期的稳定性。初始稳定,响应时间短,长时间工作性能好。需要注意的是:在使用之前必须加热一段时间,否则其输出的电阻和电压不准确。其检测可燃气体与烟雾的范围是100~10000ppm。

 MQ-2 的 4 脚输出随烟雾浓度变化的直流信号,被加到比较器 U1A 的 2脚,Rp 构成比较器的门槛电压。当烟雾浓度较高输出电压高于门槛电压时,比较器输出低电平(0v),此时 LED 亮报警;当浓度降低传感器的输出电压低于门槛电压时,比较器翻转输出高电平(Vcc),LED 熄灭。调节 Rp,可以调节比较器的门槛电压,从而调节报警输出的灵敏度。R1 串入传感器的加热回路,可以保护加热丝免受冷上电时的冲击。图 2.5 为传感器与 AD转换电路图

 本科论文

  图 2.5 传感器与 AD 转换电路图

 2.5 电机电路设计 可燃气体检测系统中,当单片机判断此时检测到的可燃气体浓度大于了所设定的门限值,表明此时有风险,需要打开风扇电机,排放气体,需要设计一个由单片机控制的电机电路 电机电路如图 2.6 所示,单片机与电机之间通过一个三极管连接,单片机的 P3.6 口连接到三极管的基极,电机的正极接电源负极接在发射级,集电极接地。这样,在正常情况即没有任何风险的情况下,由单片机 P3.6 口始终输出一个高电平,三极管不能导通,电机无法转动;在系统判断有风险的时候,由单片机的 P3.6 口输出低电平,此时三极管导通,电机开始转动。所以电机电路在本设计中的作用是作为用电的动力源驱动风扇进行运转。

 图 2.6 电机电路设计

 本科论文

 2.6 按键系统

 首先需要设计一个开关 K1,用来控制整个可燃气体检测系统,对整个系统进行复位。由于单片机的复位端口 RST 高电平有效,我们将开关 K1一端接高电平一端连接到单片机的复位端口 RST,这样在开关按下的时候复位端口将会感知电平发生变化。复位电路如图 2.7 所示。

  图 2.7 复位电路 实际工程应用中,不同的环境对气体浓度的指标也会不同,为了保证可燃气体检测系统能够灵活适应各种场景,其内部的告警值也应当能够通过外部认为输入调整,避免误报等情况的出现。

 图 2.8 按键控制电路

 为了实现外部对气体检测系统运作的控制,我们选择按钮开关来进行控制,为了简化后续程序设计复杂度,每个开关负责一个功能。

 按键控制电路如图 2.8 所示,我们设计了 2 个开关 K2 与 K3,考虑到同时单片机的 I/O 口既可以做输出也可以作输入,为了对开关按键进行响

 本科论文

 应,将 K2 和 K3 分别通过一个排阻连接到单片机的 P3.4 和 P3.5 口,另一端供地,此时 I/O 口作为输入,这样在开关按下的时候,对应的单片机端口就为低电平,程序再对端口的电平进行判断及后续执行相应的处理操作,即可完成对开关的判别与响应。气体检测系统中各个开关按键的功能分配如下 K2:告警值加,按下以后设定的告警值加 1,若持续按键,则持续增加; K3:告警值减,按下以后设定的告警值减 1,若持续按键,则持续减小;(具体实现在程序设计中作详细介绍)。

 2.7 调试电路

  在完成可燃气体检测系统的电路设计以及完成后续程序设计之后,需要将程序完成烧录,进行功能的调试,因此需要设计一个调试口,调试口的收发分别接到单片机的 P3.0(RXD)和 P3.1(TXD),还有一端接地。调试口电路如图 2.9 所示

 图 2.9 调试电路 最终,图 2.10 即为基于单片机的可燃气体检测系统中 STC89C52 单片机外部电路。

 本科论文

 K1R410KC110uFVCC复位电路1 2Y111.0592MC3 30pfC5 30pf时钟电路单片机123J1电源接口GNDVCC5V电源VCC123456789PR18 位排阻GNDVCCGNDGNDVCCGND1VCC2VO3RS4RW5EN6DO7D18D29D310D411D512D613D714A1516P2LCD1602R1 3KLCD1602液晶显示电路K2GND按键K3VCCGND1234P1下载程序接口VCCGNDR74.7

  1W传感器CS1CH02CH13GND4DI5DO6CLK7VCC8U3ADC0832VCCGND104C4A1B2LS1Q18550GNDVCCR3 1K报警电路R61KA1H3B5B6H4A2RY1SW1MB1Motor1KR5VCCGND电机电路Q28550XH-2P焊接注意缺口方向GNDVCCC2470uFGNDVBAT16GND15DTR14EN13VRTC12RI11MCIP10MCIN9GND1PWK2SPKP3SPKN4RXD5TXD6VTTL7VIN8SIM800CU2SIM800CL2LED-RL1LED-GVCCR2330P101P112P123P134P145P156P167P178REST9P3010P3111P3212P3313P3414P3515P3616P3717XTAL218XTAL119GND20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/PROG30EA/VPP31P0732P0633P0534P0435P0336P0237P0138P0039VCC40U1STC89C52VCC 图 2.10 STC89C52 单片机外部电路设计

 3 系统软件流程设计 结合系统需求分析,在完成了系统电路的设计以后,系统的主要功能还需要通过软件实现,需要进行相关软件流程设计,实现基于单片机的可燃气体检测系统预定的相关功能。

 软件流程设计采用模块化设计的方法,即在程序编写之前,首先结合基于单片机的可燃气体检测系统硬件电路以及系统需求对程序进行功能模块化,再编写各个模块的程序,使程序易于编写、调试和修改。程序设计过程中的软件开发环境选用 Keil 软件。

 3.1 程序架构 基于单片机的可燃气体检测系统程序架构如图 3.1 所示,当整个系统运行时,首先是各个部分的初始化,由于系统要实现对开关是否按下的检测,还需要完成包括单片机的中断设置等。

 本科论文

  图 3.1 程序架构

 初始化完成以后,MQ-2 传感器开始工作,同时将检测到的物理量送交给 AD 转换器,单片机对 AD 转换后的数字量数据不断进行读取,而后经过计算可得到当前气体的浓度值。在此过程中,系统不断对开关按键进行检测,当检测到开关按下时,需要对设定的浓度值执行加或者减,长加或者长减。

 单片机对计算得到的浓度值与设定的浓度值进行一个比较,并将检测到的浓度值实时显示。倘若当前浓度值已经超过了设定的门限,则表明处于危险状态,单片机控制蜂鸣器响、电机转动。

 3.2 LCD 显示程序设计 在基在基于单片机的可燃气体检测系统中,为了便于使用者直观了解系统目前的工作状态,液晶需要显示的可燃气体检测系统检测到的当前气体浓度检测值、设定的告警值(及其单位)等相关数据。上面一行显示当

 本科论文

 前浓度值:“NOW GAS:数值 PPM”,下面一行显示设定的报警门限:“Warning:数值 PPM”。如图 3.2 为 LCD1602 子程序流程图。

 图 3.2 LCD1602 子程序流程图 根据 LCD1602 的数据手册,在使用 LCD1602 之前需要进行初始化,初始化需要完成 2 个工作,通过程序为 LCD1602 写入相关设置指令。

 如图 3.3 所示为 LCD1602 内部的 RAM 地址映射图。

  图 3.3 地址映射图 如图 3.4 所示为 LCD1602 写操作时序。

 本科论文

 图 3.4 LCD1602 写操作时序 写入数据需要以下几个步骤:首先需要通过 RS 信号确定是写数据还是写命令,因为写数据是指显示什么内容,写命令是写入地址这些。

 第二步:R/W 端口输入一个低电平; 第三步:将数据从单片机的 I/O 口输送给液晶的数据端口; 第四步:在 E 端口给一个持续高电平,即可完成写操作。

 3.3 按键控制程序设计 在基于单片机的可燃气体检测系统中,单片机需要控制电机持续转动的时间。持续转动的时间就由单片机内部的定时器设定,当计数记满以后产生一个中断,并产生相应的信号以控制电机的 EN 端口,控制电机停止或转动。

 本次基于单片机的可燃气体检测系统中,单片机外界 11.0592MHz 的晶振,通过计算可得单片机的一个机器周期cyT为:

 cy1T =12 1.09 s11059200   同时单片机最多可计数 65535 个,因此中断溢出一次的时间约为 65ms。而在实际使用系统的过程中,对电机的定时通常应是设定时间在分秒量级,比如 1 分 10 秒,为了程序设计中取整数倍比较方便,我们设定定时器计时时间为 10ms。如此,中断一百次以后,就是时间过去了 1 秒。同时在程序设计中,判断中断为 100 次以后,则计数参数减 1,即为电机还需要运行的时间少 1 秒。当计数参数为 0,也就是计数时间减少为 0 的时候,通知单片机的 P3.4 口输出恒为低电平的信号,控制电机的 EN 端口,使电机停止转动。

 转速控制程序设计,在基于单片机的可燃气体检测系统中,为了对电机的转速进行调节,我们需要通过与电机 PWM 相连的 P3.7 端口输出不同占空比的 PWM 波形。

 占空比是高电平持续时间占一个周期的百分比,占空比越大,也就是P3.7 口输出的高电平时间越长,电机转速越快。

 单片机输出 PWM 波的时候,通常有下列办法:

 第一个是利用软件延时,当设定的时间到,对输出的高低电平取反,。

 本科论文

 第二个是利用定时器对高低电平时间进行控制。

 第三个是 PWM 控制器。

 为了便于程序设计,基于单片机的可燃气体检测系统程序设计中,我们选用上述第二种方案,即单片机内部的定时器实现对高低电平的持续时间控制。结合方案的介绍,我们可以首先需要确定一个恒定的周期(50ms),实现方法即可通过计数器,我们为了保证步长足够小,设定中断时间为 10微秒,本次设计中,中断次数用参数 usCnt 来表示,最大计数次数为 5000次,即 usCnt 最大值为 5000,达到 5000 以后置 0。而后我们更改对计数的判决门限(用参数 rCnt 来表示)来设置不同长度的高电平。

 然后计算定时器的初值 N:

 10 1.09 10 N    根据计算得到的初值,计算装入 TH1 和 TH2 的数 1 (65536 10)/256 255.9 TH    1 (65536 10)%256 246 TL    最终装入的初值为 255(0xFF)和 246(0xF6)。

 单片机每产生中断一次,就对此时的中断计数值 usCnt 进行判断,若是大于 5000 则置 0,同时对 rCnt 和 usCnt 来作比较,若 rCnt 的值大于 usCnt的值,则控制 P3.7 口输出高电平,控制电机的 PWM 端口,否则 P3.7 口输出低电平,如此形成了一个 PWM 信号,送交给电机的 PWM 口,控制转速。

 在设计中将开关一端接在单片机的 P1.0 口,另外一端接地,这样通过对单片机的 P1.0 口的高低电平进行判断,即可知道外部开关按键是否按下。

 Key=0声明P1.0口sbit key=P1.0延时Key=0发送短信后续操作YNYNKey=1

 本科论文

 图 3.5 按键程序流程图 由于开关按键连接到单片机的 P1.0 口,为了方便操作,我们首先对 P1.0口进行声明,即将 P1.0 端口定义为 Key,后续程序中不断的对 Key 值进行检测判断即可再执行相关的指令。

 根据电路设计,理论上在 Key 值为 0 时,表明开关被按下,但由于手动按下开关再释放的这个过程有一定的抖动现象,因此我们判断 Key 值为0 以后加上一个去抖操作,通常加上一个 10ms 的延时即可,延时过后再次对 Key 值进行判断,如果 Key 值仍为 0,即表明开关按下,单片机需要进行发送短信的相关操作处理。然后判断 Key 值是否恢复到 1,如果为 1 表明按键被释放,再次回到程序入口,不断检测 Key 值是否为 0,判断开关是否按下,如果 Key 为 0 则继续等待。

 根据基于单片机的可燃气体检测系统设计,系统在开关按下的时候需要设定的浓度判决门限进行调整,分别有浓度加 1 或减 1,浓度长加或长减。

 为了实现上述功能,进行按键控制程序设计,如图 3.5 为按键检测程序流程。以下分别结合电路中的开关 K2 和 K3 进行介绍。

 K2:复位 由于开关按键连接到单片机的复位端口 P3.4 口,为了方便操作,我们首先对 P3.4 口进行声明,即将 P3.4 端口定义为 Key1,后续程序中不断的对 Key1 值进行检测判断即可再执行相关的指令。

 根据电路设计,理论上在 Key1 值为 0 时,表明开关被按下,但由于手动按下开关再释放的这个过程有一定的抖动现象,因此我们判断 Key1 值为0 以后加上一个去抖操作,通常加上一个 10ms 的延时即可,延时过后再次对 Key1 值进行判断,如果 Key1 值仍为 0,即表明开关按下,单片机进行复位,整个程序重新执行。然后判断 Key1 值是否恢复到 1,如果为 1 表明按键被释放,再次回到程序入口,不断检测 Key 值是否为 0,判断开关是否按下,如果 Key 为 0 则继续等待。

 在此过程中由于涉及到了延时以及需要判断开关是否是长按,在程序设计中要增加一个定时器中断,当中断产生一次则对开关进行判断。单片机外界 11.0592MHz 的晶振,通过计算可得单片机的一个机器周期cyT为:

 本科论文

 -6cy61T = 12=1 10 s=1 s12 10   同时单片机最多可计数 65535 个,因此中断溢出一次的时间约为 65ms。而在实际使用系统的过程中,对电机的定时通常应是设定时间在分秒量级,为了程序设计中取整数倍比较方便,我们设定定时器计时时间为 10ms。如此,中断一百次以后,就是时间过去了 1 秒。

 我们可以首先需要确定一个恒定的周期(50ms),实现方法即可通过上文的计数器,我们为了保证步长足够小,设定中断时间为 10 微秒,本次设计中,中断次数用参数 usCnt 来表示。

 然后计算定时器的初值 N:

  335 0 1 0N = = 5 1 01 s  个 根据计算得到的初值 5000,计算装入 TH0 和 TL0 的数 TH0=(65536 5000)/ 256 0X3c   TL0=(65536 5000)%256 0XB0   最终装入的初值为 0x3c 和 0xB0。

 每产生一次中断,即对 Key1 进行判断,若检测的长按时间到达 20 次中断,则对门限值持加。

 (2)K3:

 由于开关按键连接到单片机的 P3.5 口,为了方便操作,我们首先对 P3.5口进行声明,即将 P3.5 端口定义为 Key2,后续程序中不断的对 Key2 值进行检测判断即可再执行相关的指令。

 Key2 值为 0 以后加上一个去抖操作,通常加上一个 10ms 的延时即可,延时过后再次对 Key2 值进行判断,如果 Key2 值仍为 0,即表明开关按下,每产生一次中断,即对 Key2 进行判断,若检测的长按时间到达 20 次中断,则对门限值持续减。

  4 系统验证 4.1 焊接与调试 在完成基于单片机的可燃气体检测系统的电路设计以后,生成 PCB,而后进行封装,布线等一系列流程以后,将样板送交给厂家进行绘制。并

 本科论文

 完成系统中所需要元器件的采购。

 当电路板原理图绘制完成后,确认各个模块功能没有错误,根据文章附件中的相关器件,进行采购和测试。在确定原理图没有出现错误的情况下我们开始进行焊接,使用市场上比较常用的万能板进行焊接。

 最终得到的实物图如图 4.1 所示。

 图 4.1 系统实物图

 4.2 程序烧录与调试 当单片机焊接好之后,将 STC89C52 单片机和各个模块都插上去,给系统 12V 供电。

 按下启动键以后,电源灯会常亮,屏幕的初始值:上面一行显示当前浓度值:“NOW GAS:数值 PPM”,下面一行显示设定的报警门限:“Warning:数值 PPM”。

 为了对系统进行测试,我们在传感器旁边用打火机模拟,可以发现,在点燃火机的时候,探测到的浓度值迅速提高,依据 LCD 显示,可以发现在瞬间达到一千多,同时蜂鸣器响,电机转动。

 我们按下开关 K2,可以发现设定的浓度值每按一下会加 1,在长按的时候,设定的浓度值持续加 1;按下开关 K3,可以发现设定的浓度值每按一下会减 1,在长按的时候,设定的浓度值持续减 1。

 经过调试与验证,基于单片机的可燃气体检测系统已经实现了初始的

 本科论文

 应用需求,可以对系统所在环境的浓度值进行判断,并通过按键对浓度值进行调整,在超过门限值的时候,能够实现蜂鸣器响、电机转动等报警功能,有着很强的可靠性与实用性。

 本科论文

  结

 论 为了对火灾进行预警,避免灾害的发生,本文设计了一款基于单片机的可燃气体检测系统。基于单片机的可燃气体检测系统通过传感器对当前环境的可燃气体浓度值进行实时检测,经过 AD 转换后送交给单片机进行处理;可以通过外部按键来对系统的判决门限即最高浓度值进行设置;单片机对数据处理后,与设定的最高浓度值进行比较,若是大于该浓度值,则输出信号控制蜂鸣器响、电机转动;整个过程中的探测值、设定值均由LCD 液晶来进行显示。

 本文首先分析了基于单片机的可燃气体检测系统的设计需求,完成了系统架构设计。在此基础上进行了单片机外围电路设计,液晶显示外部电路设计,MQ 传感器与 AD 转换电路设计,电机外部电路设计,开关电路设计。在完成硬件电路设计的基础上,进行了软件流程设计,包括对 LCD 液晶显示控制程序,读取 AD 转换后的数据,按键控制程序。

 经过调试与验证,基于单片机的可燃气体检测系统已经实现了初始的应用需求,可以对系统所在环境的浓度值进行判断,并通过按键对浓度值进行调整,在超过门限值的时候,能够实现蜂鸣器响、电机转动等报警功能,有着很强的可靠性与实用性。

 本科论文

 参考文献

  [1] 彭伟.单片机 C 语言程序设计实训 100 例[M].北京:电子工业出版社.2009.1:108-152 [2] 林若波,李锡丰,郑烁.晴雨智能晾衣架的设计[J].电子技术,2006.1:102-109 [3] 霍孟友.单片机原理与应用[M].北京:机械工业出版社,2004.1:23-45 [4] 周润景,徐宏伟,丁莉.单片机电路设计、分析与制作[M].北京:机械工业出版社,2010.8:89-96 [5] 袁飞,卢文科,胡频. 可燃性气体探测器的设计[J]. 仪表技术, 2009,11(1) :23-24 [6] 邹方勇. 特殊区域使用的探测器[J]. 消防科学与技术, 2006,23:18 [7] 马宝珠. 家用感烟探测器[J]. 消防科学与技术, 2004,10:18 [8] 马忠梅等.单片机的 C 语言应用程序设计[M].北京航空航天大学出版社,2006.1:102-141 [9] 蒙平. 各类火灾探测器原理分析及应用探讨[J]. 企业科技与发展, 2009,5:15 [10]何立民.单片机应用系统设计[J].北京:航天航空大学出版社.2016,6:52 [11]刘亮. 可燃气体检测报警系统设计[J]. 中国仪器仪表, 2008,6:23 [12]陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2002.1:23-48 [13]贾良菊,应鹏展.气敏传感器的研究现状与发展趋势[J].煤矿机械.2005,4:56 [14]王百战. 可燃气体检测报警器的安装、使用和维护[J]. 安全.2009,9:45

 [15]徐根耀.电子元器件与电子制作[M].北京:机械工业出版社,2017.8:12 [16]胡学海.单片机原理及应用系统设计[M]. 北京: 电子工业出版社,2007:66-156.

 本科论文

  附录 1 元器件清单 标号

 型号

 数量

 标号

 B2 5V 风扇+XH-2A白底座 1 B2 C1 10uF 电解电容 1 C1 C2, C3 30p 瓷片电容 2 C2, C3 C19 104 瓷片电容 1 C19 J1 电源接口 1 J1 K1, K2, K3 轻触按键 3 K1, K2, K3 L1 3mm 红色 LED 1 L1 LS1 蜂鸣器 1 LS1 P1 LCD1602 液晶屏+16P 排座 1 P1 P4 4P 排针 1 P4 PR1 8 位 10K 排阻 1 PR1 Q7, Q9 8550 三极管 2 Q7, Q9 R1 3K 电阻 1 R1 R2 10K 电阻 1 R2

 本科论文

  附录 2 源程序清单 #include <REGX52.H> #include <intrins.h> #include "LCD1602.h" #include "ADC0832.h" #include "eeprom52.h"

 #define uint unsigned int #define uchar unsigned char

 sbit key1=P3^4;

 //按键 sbit key2=P3^5;

  sbit beep=P1^7;

 //蜂鸣器 sbit Fan=P3^6;

 //风扇 bit key1_flag=0;

 //按键标志位

 bit key2_flag=0;

  sbit LED0=P1^6;

 //指示灯 sbit LED1=P1^4;

 uchar sec=0;sec1=0;

  //长按标志位 uchar s0=0,temp,temp1,ms; //浓度值,定时时间,浓度上限 uint Value=0; uint temp_h; bit Send_flag=0; bit flag=1; //----------> GSM 相关变量 uchar phone[11]="15225939196";

 //手机号数组 //-----> Uart1 And GSM

 Definition unsigned char xdata Uart1_Buff[50];

 //串口 1 缓冲数组 unsigned char Uart1_Count=0;

  //串口 1 累加变量

 unsigned char Quest_flag=1;

 //初始化标志位 unsigned int

 GSM_Send_Time=0; //GSM 延时变量 unsigned char GSM_Num=0;

  //发送指令变量 unsigned char GSM_Send=0;

  //发送标志位 unsigned char GSM_Send_Num=0; //发送具体短信内容变量 bit memory_flag=0; void delay(uint T)

  //延时程序 {

 while(T--);

 本科论文

 } void memory()

  //掉电存储 {

  unsigned char q=0;

 if(memory_flag)

 {

  memory_flag=0;

  SectorErase(0x2000);

  byte_write(0x2000,temp_h/256);

  byte_write(0x2001,temp_h%256);

  for(q=0;q<11;q++)

  {

  byte_write(0x2100+q,phone[q]);

 }

 }

 }

 void read_memory()

 //上电读存储 {

 unsigned char q=0;

 temp_h=byte_read(0x2000)*256+byte_read(0x2001);

  for(q=0;q<11;q++)

 {

  phone[q]=byte_read(0x2100+q);

  }

 if(temp_h>255||temp_h<0)

 {

  temp_h=20;

 } }

 void timer_init()

  //定时器初始化 {

 TMOD=0x01;

 //定时器 0,方式 1

 TH0=0x3c;

 //初值 50ms

 TL0=0XB0;

 TR0=1;

 ET0=1;

 EA=1; }

 void display()

 //显示函数 {

 LCD1602_write(0,0x80);

 本科论文

  LCD1602_writebyte("NOW GAS:");

 if(temp/100==0)

 {

  LCD1602_writebyte(" ");

  if(temp%100/10==0)

  {

 LCD1602_writebyte(" ");

  }

  else

  {

 LCD1602_write(1,"0"+temp%100/10);

  }

  LCD1602_write(1,"0"+temp%10);

  LCD1602_writebyte("PPM

 ");

  }

 else

 {

  LCD1602_write(1,"0"+temp/100);

  LCD1602_write(1,"0"+temp%100/10);

  LCD1602_write(1,"0"+temp%10);

  LCD1602_writebyte("PPM

 ");

 }

  LCD1602_write(0,0xc0);

 LCD1602_writebyte("WARNING:");

 if(temp_h/100==0)

 {

  LCD1602_writebyte(" ");

 if(temp_h%100/10==0)

  {

 LCD1602_writebyte(" ");

  }

  else

 {

 LCD1602_write(1,"0"+temp_h%100/10);

  }

  LCD1602_write(1,"0"+temp_h%10);

  LCD1602_writebyte("PPM

 ");

 }

 else

 {

  LCD1602_write(1,"0"+temp_h/100);

  LCD1602_write(1,"0"+temp_h%100/10);

  LCD1602_write(1,"0"+temp_h%10);

 本科论文

 LCD1602_writebyte("PPM

 ");

 } }

 void keyscan()

 //按键扫描 {

 if(!key1)

 {

  if(key1_flag)

  {

 key1_flag=0;

 if(temp_h<255)temp_h++;

  }

  if(sec==0)

  {

 key1_flag=0;

 if(temp_h<255)temp_h++;

 }

  memory_flag=1;

 }

 else

  {

  key1_flag=1;

  sec=2;

 }

 if(!key2)

 {

  if(key2_flag)

  {

 key2_flag=0;

 if(temp_h>0)temp_h--;

  }

  if(sec1==0)

  {

 key2_flag=0;

 if(temp_h>0)temp_h--;

 }

  memory_flag=1;

 }

 else

  {

  key2_flag=1;

 本科论文

 sec1=2;

 } }

 void Timer2_Uart() {

 T2CON = 0x34;

 RCAP2H = 0xFF;

 RCAP2L = 0xDC;

 TH2 = 0xFF;

 TL2 = 0xDC;

 TR2 = 1;...

推荐访问:单片机 气体 检测系统
上一篇:XX镇2020年春防工作方案
下一篇:疆味新疆美食风土人情分析研究

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有