当前位置: 首页 > news >正文

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

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、设计的主要内容
  • 二、系统硬件设计
  • 三、软件设计
    • 实物
  • 四、结论
  • 五、 文章目录

概要

  本文首先分析了基于单片机的可燃气体检测系统的设计需求,完成了系统架构设计。在此基础上进行了单片机外围电路设计,液晶显示外部电路设计,MQ传感器与AD转换电路设计,电机外部电路设计,开关电路设计。在完成硬件电路设计的基础上,进行了软件流程设计,包括对LCD液晶显示控制程序,读取AD转换后的数据,按键控制程序。
经过调试与验证,基于单片机的可燃气体检测系统已经实现了初始的应用需求,可以对系统所在环境的浓度值进行判断,并通过按键对浓度值进行调整,在超过门限值的时候,能够实现蜂鸣器响、电机转动等报警功能,有着很强的可靠性与实用性。
关键词: 单片机; LCD;声光报警;可燃气体;

一、设计的主要内容

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

图1.1 基于单片机的可燃气体检测系统架构

二、系统硬件设计

2.1 绘制电路板概述
本次对基于单片机的可燃气体检测系统设计中使用的是Altium Designer软件完成电路板的绘制,包含以下一些步骤:
(1)新建空的原理图与PCB图;
(2)依据基于单片机的可燃气体检测系统所需要实现的功能选择器件,绘制原理图;
(3)绘制元器件库,如果现有库文件没有相关器件,我们需要自己进行补充,也可以方便下次设计;
(4)PCB封装;
(5)生成PCB;
(6)进行合理的元器件布局,需要充分考虑走线是否方便、散热等问题;
(7)布线,要充分考虑系统电流大小,过孔,焊盘大小等等;
(8)送去加工,找厂家进行板子的制作

三、软件设计

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

图3.1程序架构

初始化完成以后,MQ-2传感器开始工作,同时将检测到的物理量送交给AD转换器,单片机对AD转换后的数字量数据不断进行读取,而后经过计算可得到当前气体的浓度值。在此过程中,系统不断对开关按键进行检测,当检测到开关按下时,需要对设定的浓度值执行加或者减,长加或者长减。
单片机对计算得到的浓度值与设定的浓度值进行一个比较,并将检测到的浓度值实时显示。倘若当前浓度值已经超过了设定的门限,则表明处于危险状态,单片机控制蜂鸣器响、电机转动。

实物

在这里插入图片描述

四、结论

  基于单片机的可燃气体检测系统通过传感器对当前环境的可燃气体浓度值进行实时检测,经过AD转换后送交给单片机进行处理;可以通过外部按键来对系统的判决门限即最高浓度值进行设置;单片机对数据处理后,与设定的最高浓度值进行比较,若是大于该浓度值,则输出信号控制蜂鸣器响、电机转动;整个过程中的探测值、设定值均由LCD液晶来进行显示。
本文首先分析了基于单片机的可燃气体检测系统的设计需求,完成了系统架构设计。在此基础上进行了单片机外围电路设计,液晶显示外部电路设计,MQ传感器与AD转换电路设计,电机外部电路设计,开关电路设计。在完成硬件电路设计的基础上,进行了软件流程设计,包括对LCD液晶显示控制程序,读取AD转换后的数据,按键控制程序。

五、 文章目录

目 录
摘 要 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

相关文章:

  • Java读取文件内容写入新文件
  • 深入理解 Django 单元测试
  • 企业大数据治理管理平台解决方案:PPT全文33页,附下载
  • 四、Vue3中使用Pinia解构Store
  • UML建模语言
  • Linux 安装与配置
  • SpringBoot 是什么
  • Python数据容器之[列表]
  • postman上传照片,视频,音频等上传文件操作测试方法
  • 【C#学习】backgroundWorker控件
  • Qt之qobject_cast使用
  • 媒体软文投放的流程与媒体平台的选择
  • Android---动态权限适配问题
  • Unity 下载Zip压缩文件并且解压缩
  • Android Rxjava架构原理与使用的详解解答
  • ES2017异步函数现已正式可用
  • Vue.js-Day01
  • vue-cli3搭建项目
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 猴子数据域名防封接口降低小说被封的风险
  • 记录:CentOS7.2配置LNMP环境记录
  • 力扣(LeetCode)56
  • 批量截取pdf文件
  • 走向全栈之MongoDB的使用
  • Mac 上flink的安装与启动
  • # 达梦数据库知识点
  • #NOIP 2014# day.2 T2 寻找道路
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #控制台大学课堂点名问题_课堂随机点名
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (分享)自己整理的一些简单awk实用语句
  • (强烈推荐)移动端音视频从零到上手(下)
  • (算法)Game
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 8.0 中有哪些新的变化?
  • .net 程序发生了一个不可捕获的异常
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET 中创建支持集合初始化器的类型
  • .NetCore项目nginx发布
  • .net开发引用程序集提示没有强名称的解决办法
  • .NET文档生成工具ADB使用图文教程
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • @我的前任是个极品 微博分析
  • [ 第一章] JavaScript 简史
  • [Android]使用Android打包Unity工程
  • [BJDCTF 2020]easy_md5
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [BZOJ1010] [HNOI2008] 玩具装箱toy (斜率优化)
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [CareerCup][Google Interview] 实现一个具有get_min的Queue
  • [CLR via C#]11. 事件