毕业设计 基于51单片机危险气体远程监测系统的设计

本文详细介绍了如何设计一个基于51单片机的危险气体远程监测系统,包括硬件选型(STM32F103单片机、传感器、LCD1602显示和ESP8266无线通信)、按键控制、报警电路及软件设计,旨在帮助学生顺利完成毕业设计并满足答辩要求。
摘要由CSDN通过智能技术生成


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机危险气体远程监测系统的设计

1 硬件设计

1.1 主电路

1.1.1 单片机最小系统

单片机最小系统由晶振电路、STM32F103芯片和复位电路组成。只要有这三者存在,单片机就可以正常的工作。[1]

单片机最小系统框图如图1.1所示。

图1.1 单片机最小系统框图

1.1.2 STM32F103单片机

STM32F103单片机是一款低功耗、高性能的微控制器,是STC公司早期生产用于工业控制的单片机。其作用是控制各种传感器和外设,自行计算处理得到的数据和信号,并进行相应的操作[2],在工业生产中起到大脑的作用。

对于本次设计选择的是STM32F103C8T6单片机。此单片机和51系列相比多了很多功能,不但运行速度比51单片机要快很多,自带2个AD转换,方便我们在设计烟雾的时候免去了需要加外部ADC进行转换,非常方便;

STM32有着很强大的通信功能和控制功能。这一点是51单片机无法比拟的。因为51单片机只有1个串口进行通信,而32单片机具有5个串口进行通信,所以对一些要求用串口进行通信的模块而且就不需要通过CD4052等双串口模块来转换,所以这一点被市场上广泛的运用,32单片机因为本身可以进行多种不同的时钟模数来进行工作,所以在功耗要求比较严格的产品中占有一席之地。

STM32特点:

(1)STM32C8T6系列的起振晶部分采用了RTC,低负载的方式,而没有像传统的比较廉价的圆柱晶振。

(2)引脚个数为48个。

(3)工作频率为72MHZ。

(4)单片机具有3个普通定时器和1个高级定时器。

(5)单片机具有2个2位/16通道的ADC模数转换。

(6)使用了3.3V稳压芯片,可以保证最大输出300MA电流。

(7)支持ST-LINK和JTAG调试下载。

(8)存储资源为64kb byte FLASH和20byte Sram。

STM32实物图如图1.2所示。

图1.2 STM32F103C8T6 实物图

(1)电源指示灯LED(PWR通常为红色):如果电源指示灯亮亮说明单片机正常运行,如果较暗或者闪烁,表示此单片机可能存在故障。

(2)用户LED(PC13):这个功能的使用大大的方便了我们进行一些比较简单的功能测试,如单片机的运行状态等,方便初学者进行更好的测试。

(3)单片机上采用了跳帽的方式,我们可以对stm32进行3种编程方式。如用户的SARM、闪存和系统的存储器。

(4)为单片机的复位电路。

(5)8M晶振:主要是用于设置单片机系统的频率为72MHZ。

(6)32.768KHz晶振:可供内置RTC使用,避免了需要专门的时钟芯片进行定时器处理等。

1.1.3 晶振电路

晶振电路也是我们常说的时钟电路,整个系统处理信号和其它各部分运行也是一个频率,晶振电路就是为它们提供一个稳定的振荡频率,使系统各部分保持同步。本设计主要是采用两个30μF的电容和一个12MHz的晶振组成。采用了外部时钟方式的配合方法,电容帮助晶振起振使电路可以正常工作。单片机的XTAL2和XTAL1两个接口分别于晶振上的两个引脚相连。

晶振电路原理图如图1.3所示。

图1.3 晶振电路原理图

1.1.4 复位电路

复位电路的用途:在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能[3]。原理图如图1.4所示。

图1.4 复位电路原理图

1.2 按键控制电路

在本设计中,一共有2个按键,起到调节上限值的作用,是系统可操作性的保证。作为输入端,按键的单片机控制引脚默认为高电平,当按键按下后,单片机的相关引脚则变成低电平,进而实现对系统的手动输入。按键的一段连接单片机的双向I/O口,另一端接地。当按键开关处于张开状态时,I/O引脚和地断开,此时该I/O引脚处于高电平状态[4]。当按下按键时,I/O引脚接地,此时高电平置低电平,并返回一个低电平信号给单片机。

按键开关检测的原理是高低电平检测。 按键切换难免会因其切换时间而导致错误,因此在编写按键函数时要另外去写一个去抖函数,以提高其准确性。 系统通过按键设置计算出的气体浓度报警上限值。按键1代表增,按键2代表减。图1.5为按键控制电路原理图。

图1.5 按键控制电路原理图

1.3 报警电路

设计报警模块是为了通过蜂鸣器来触发警报,当烟雾传感器检测到的烟雾浓度超过设定烟雾报警上限值时,STM32F103单片机控制三极管驱动蜂鸣器进行蜂鸣,起到报警的作用。

蜂鸣器的一端连着三极管的e引脚,另一端接地,蜂鸣器电路如图1.6所示。三极管使用三极管PNP,起到放大电流和电平特性的功能,因为单个电路中的电路太小,无法提供足够多的触发信号所需的电流,三极管放大电流以后,电流被放大了200倍,足够触发信号,蜂鸣器报警。[15]同时三极管的上拉电阻起到限流的作用,防止电流过大从而击穿蜂鸣器。

图1.6 蜂鸣器电路原理图

1.4 LCD1602液晶显示电路

 本次设计采用LCD1602液晶显示器作为输出显示器。LCD1602的作用是显示文本,本设计需要有两行文本显示,并且不需要彩色。第一行显示当前检测的气体浓度,第二行显示设定气体浓度的阈值。使用LCD1602可以满足本计的全部需求。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电。它需要5V的电压来进行工作,通过改变电压达到控制区域显示,通过单片机输出的数字信号在显示屏上显示出我想要的字符。显示屏具有2行输出,每行16个字符,能够同时显示16×2即32个字符。图2.7是LCD1602液晶屏的引脚图,从图中可以看出,引脚1是电源接地引脚,和单片机的GND联通。引脚2是VCC电源输入引脚,其工作电压为5V。引脚3—VO引脚可以调节显示屏的显示亮度,引脚4—RS引脚用于寄存器的选择,高电平时作为数据寄存器,低电平时作为指令寄存器,引脚5是RW读写信号,用于数据的读写。引脚6—EN引脚为使能端,高电平读取信息,低电平执行指令。引脚7~14是8位双向数据段口,引脚15和引脚16是背景灯的电源引脚。在和单片机进行通信时,和P0口进行连接,中间要有上拉电阻进行连接。[23]本次设计LCD1602液晶显示屏上展示检测到的气体浓度值,并展示气体浓度上限值的设置过程。其引脚连接图如图1.7所示。

图1.7  LCD1602液晶显示电路图

1.5 ESP8266模块电路

这部分无线通信使用ESP8266无线串行模块作为数据传输模块。ESP8266是一个非常强大的UART WiFi数据传输模块,耗电量非常低,价格非常低,体积非常小,允许嵌入任何具有强大的LWIP控制系统的产品,支持三个AP、STA、AP+STA模型,和简洁而有效的AT指令。ESP8266的工作电压为3.3V,而单片机的工作电压为5V,足够达到其工作电压的要求,还具有价格便宜、体积小的优点。在本次设计中用于单片机和手机之间的无线通信,通过WIFI模块,单片机将气体浓度值发送给手机端,最后显示在APP上。图2.8是ESP8266模块电路图,从图1.8中可以看出,1号引脚连接单片机的A10引脚,5号引脚连接单片机的A9引脚,而2号、4号和8号引脚接地。

图1.8 ESP8266模块电路

1.6 传感器模块电路

烟雾探测器用于探测场所内的烟雾浓度,也可用于报警,烟雾报警器采用的是离子式烟雾探测器。它广泛应用于各种信号系统。离子烟雾传感器是稳定可靠的,技术先进的传感器,比气敏电阻类传感器性能更佳。[8]

烟雾传感器是用来检测当前位置的烟雾浓度,以达到防灾的目的,烟雾传感器的内部采用的是离子式的烟雾感应,在各种报警系统中都得到了广泛的应用。离子烟雾传感器具有稳定可靠的优点,传感器技术先进,气敏电阻式报警器的性能远不如离子烟雾传感器好。

石油化工厂中排放出的危险气体是本系统所针对的目标,这些气体中绝大多数含有甲烷,所以选择MQ-4传感器,其对甲烷具有很高的灵敏度。以下是该传感器特性:

(1)输入电压范围: 5±0.2V DC;

(2)检测浓度:300~10000ppm(甲烷);

(3)电流消耗:150mA;

(4)使用寿命:5年;

(5)工作温度:-10~50℃;

(6)存储温度:-20~70℃。

(7)尺寸大小:32mm×20mm×22mm。

气敏式烟雾传感器的工作原理:使用空气中电导率较低的二氧化锡,当传感器所在的环境中存在被测的甲烷气体时,传感器的电导率和气体浓度成线性化比,通过数模转换模块,就可以将信号量转换成数字量,从而输出给单片机,最终在LCD1602液晶显示屏上显示出来。其电路原理图如图1.9所示。

图1.9 传感器的电路原理图

2  软件设计

2.1 系统主程序设计

系统的主流程图如图3.1所示。各个模块开始工作开始,实时检测甲烷气体浓度值,并进行相应的报警操作。启动的步骤为:ESP8266wifi模块初始化,MQ-4传感器接收到目前的气体浓度,按下按键设置报警上限。当超出上限值时,单片机驱动三极管来控制蜂鸣器触发警报,单片机将检测到的气体浓度值数据通过ESP8266wifi无线模块发送给手机端进行显示。

图2.1 系统流程图

2.2 系统子程序设计

2.2.1 LCD1602显示设计

LCD1602的作用是显示文本,本设计需要有两行文本显示,并且不需要彩色。第一行显示当前气体浓度,第二行显示设定的气体浓度上限的值。LCD1602液晶显示器一旦开启,就会与单片机进行双向通信。 单片机控制显示器的亮度并显示内容,过一段时间后,液晶屏上会显示出检测到的气体浓度值。 在设置报警值上限时,根据按键动作改变报警值。 单片机控制记录命令的记录引脚显示内容。 然后在显示器上执行该命令,并显示内容。LCD1602显示流程图如图2.2所示。

图2.2 LCD1602初始化流程图

2.2.2 ESP8266无线通信设计

当ESP8266模块与单片机模块相连接时,连接到无线模块供电,按下ESP8266开关,电源指示器就会启动。首先串口初始化开始,然后是整体中断,当有输出信号时进入总中断再开启串口中断。在一定时间段中发送检测到的气体浓度具体数值,建立一个串口的工作方式的设置,最后设置定时器的初值。整个流程进行完毕。串口的作用是单片机和ESP8266无线模块之间进行通信,将检测到的气体浓度值发送给手机,并在手机App上实时动态变换。ESP8266无线通信流程图如图2.3所示。

图2.3 ESP8266无线通信流程图

2.2.3 按键子程序设计

本次设计按键电路功能不多,为设置气体浓度报警上限值。按键的工作原理是检测主程序中的低水平信号,一旦低电平信号被主程序检测到了,单片机就会产生信号中断,并进入按键子程序。两个按键分别起到加和减的作用。

在不同页面表示不同的功能。分别用函数执行不同的操作,注意进行延时操作,防止误差。按键程序流程图如2.4所示。

2.2.4 气体浓度检测程序设计

利用MQ-4气体传感器对空气中的甲烷气体有较高的灵敏度,当控制器附近的甲烷气体浓度增大时,影响了传感器的电导率的变化,电导率随之增加,将电导率的变化转换为与该气体浓度相对于的模拟输出信号,经过数模转换模块转换成数字量并发送给单片机。图2.5是其流程图。

图2.5 气体浓度检测流程图

2.2.5 报警程序设计

主函数执行后,通过检测来判断是否发生中断,用设定好按键的形式来设定气体浓度的报警上限,检测是否超出了报警上限,通过函数的循环来判断是否超出浓度上限,如果超过,那么蜂鸣器报警。报警流程图如2.6所示:

图2.6 报警流程图


如果你需要帮助、建议或解决问题,不要犹豫,可以随时向老师提问或寻求支持。专注于单片机的解决方案可以为你提供有关电子设计、嵌入式系统、编程和硬件方面的宝贵信息。无论你的问题涉及到哪个方面,都可以向老师咨询,以获得有针对性的建议和指导。祝愿你在单片机设计领域取得成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值