45-基于51单片机的甲醛浓度检测报警系统

最新更新时间:2021-10-14来源: eefocus关键字:51单片机  检测报警系统 手机看文章 扫描二维码
随时随地手机看文章

具体实现功能

系统由STC89C52单片机+ZE08-CH2O甲醛传感器+LCD1602液晶显示屏+按键+蜂鸣器+指示灯+电源构成。


具体功能:


1、甲醛传感器测得甲醛数据后经过单片机处理,由LCD1602实时显示;


2、可通过按键设置甲醛报警阈值;


3、测得的甲醛浓度超过报警阈值时,开始声光报警。

设计背景

如今自动化、信息化程度越来越高,随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,同时也标志了自动控制领域成为了数字化时代的一员。以单片机为核心的自动门系统就是其中之一。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。单片机的应用领域也就越来越广,成为人们生活不可或缺的一部分。


目前单片机的应用渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。


随着社会的发展,人们的生活水平在不断的提高。房地产行业的发展带动了一系列附属行业的快速发展,消费者的生活已有“数量型”向“质量型”转变,“安全、健康、舒适”成为生活的核心理念。


装修已经深入到我们的生活当中,同时装修材料的也五花八门。对于装修使用材料中散发出的有害元素甲醛给我们的生活带来了极大的威胁。同时不同浓度的甲醛对人体的危害是不同的同时不同年龄、体质的人对甲醛的抵抗力也是有所不同的。甲醛为较高的毒性物质,在我国有毒化学品优先控制名单上高居第二位。甲醛已经被世界卫生组织确定为致癌和致畸性物质。


硬件设计

本设计是单片机要完成功能就是检测甲醛的浓度并在液晶上显示,当甲醛浓度超过用户设置的上限值发出提示报警。系统框图如下。

软件设计

在没有中断产生的时候重新一直执行显示、按键处理及检测是否超限程序;当有中断产生的时候执行中断服务程序。


原理图

本系统原理图设计采用Altium Designer19,具体如图。

程序

本设计利用KEIL5软件实现程序设计,具体如图。

仿真实现

本设计利用protues8.7软件实现仿真设计,具体如图。

关键字:51单片机  检测报警系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic547841.html

上一篇:46-基于51单片机的GPS定位GSM短信上报系统设计
下一篇:44-基于51单片机的GPS定位系统设计

推荐阅读

C51单片机入门——按键篇
按键的抖动现象按键按下时都会发出一声响,虽然有的按键声音很轻微,但这都是金属导体碰撞产生的震动;——称这种现象为:按键的抖动。如果不对按键的抖动进行处理,按键就会对系统电路或程序产生意外的干扰。因此,我们要对按键进行“消抖”。按键按下后抬起有效利用延时函数,按键key1按下后抬起有效,控制LED闪烁;#include <reg51.h>sbit key1 = P1^4; //实验板上key1sbit LED0 = P0^0;unsigned char key1_down;void delay(unsigned int delay_time){ unsigned int j = 0; for(;delay_time &g
发表于 2022-05-26
C<font color='red'>51单片机</font>入门——按键篇
C51单片机LCD1602驱动程序
LCD1602简介LCD1602字符型液晶(每行显示16个字符,一共可以显示两行)——一种专门用来显示字母、数字、符号的点阵型液晶模块。它由若干个5x7或者5x10的点阵字符组成,每个点阵字符位都可以用来显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。1602的引脚我们只需要关注以下几个管脚:3 脚:VL,液晶显示偏压信号,用于调整LCD1602 的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为0时可以得到最强的对比度。4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602 进行数据字节的传输操作,而为电平时,则是进行命令字节的传输
发表于 2022-05-26
C<font color='red'>51单片机</font>LCD1602驱动程序
C51单片机——红外遥控 驱动程序
本文为学习HC6800-EM3 V2.2开发板的学习笔记汇总,本文所用 红外接收头的引脚封装如图下:驱动函数封装声明:请自行根据晶振编写相匹配的延时函数;IrReceive.h文件#ifndef __IRRECEIVE_H__#define __IRRECEIVE_H__#include "delay.h"//请自行根据晶振编写相匹配的延时函数;typedef struct{ uchar usercode;//用户码 uchar cmd;//操作码 uchar ok;//完成标志位 uchar irtime; //时间控制 uint count_repeat;//重复码计数器 u32 receive;//数据缓存
发表于 2022-05-26
C<font color='red'>51单片机</font>——红外遥控 驱动程序
LCD1602液晶显示屏用51单片机怎么驱动
LCD1602液晶显示(一)LCD1602简介1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x10的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。(二)LCD1602液晶工作原理1、1602的引脚2、时序图3、关于显示地址的注意(重点)在设置完成之后我们就要明白具体是在哪显示,在哪个位置显示?在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的, 无需人工干预。 每次输入指令前都要判断液晶模块是否处于忙的状态(其实也不判断,
发表于 2022-05-25
LCD1602液晶显示屏用<font color='red'>51单片机</font>怎么驱动
51单片机字符串口通信为什么乱码?终于找到原因了
被这个问题卡了3天,代码很简单就是乱码出问题,烦恼!后来查资料找到原因,晶振12MHz和11.0592Hz的问题。如果你用的是12Mhz的单片机,定时器初值TH1一般要设置到E6(2400bps)、F3(4800bps)。对应的在上位机配置UART串口时,选取2400 4800bps。如果试了不行,那就换更低的1200bps。修改前修改后做了半天才发现我的晶振是11.0592Mhz,为啥对应的开发板视频讲的是12Mhz。以4800bps为例,TH1=TL1=0xF4,SMOD=1,波特率翻倍=2*2400bps。这样就不会乱码了-------------------------------------------分---割---线-
发表于 2022-05-25
<font color='red'>51单片机</font>字符串口通信为什么乱码?终于找到原因了
8X8LED点阵的实现(51单片机、74HC595)
作为从FPGA转行来单片机的初学者,我学到这里已经会自己找一些常见的逻辑和语法的错误啦!今天有很大进步奥~不多说,直接放代码+效果图。ps: 上传的代码的数字部分想要有高亮,在代码类型中选python#include "reg51.h" //用"reg52.h"的话RCLK会报错:redefine#include "intrins.h"typedef unsigned char u8;typedef unsigned int u16;sbit SRCLK=P3^6;//管脚11,595移位寄存器时钟sbit RCLK=P3^5;//管脚12,595存储寄存器时钟;sbit
发表于 2022-05-25
8X8LED点阵的实现(<font color='red'>51单片机</font>、74HC595)

推荐帖子

怎么让tms320c6678 SPI的CLK每次输出8个时钟周期
6678通过SPI接口读写EEPROM,EEPROM需要先写使能,然后才能写,而写使能是要求先写指令0x06,要求在最后一BIT写完之后CS必须拉高,而6678的SPI口每次传输都触发16个时钟周期。这就造成不能正确的进行写使能,怎么能够解决这一问题?即使我把6678SPI控制寄存配置为一次传输8BIT,经过测试发现还是每次输出16个时钟。而我的硬件方案是EEPRO的CS是通过其他总线进行设置的,没有用6678SPI的CS,只是用他的时钟和两个数据线。怎么让6678SPI的CLK每次输出8
limingtai DSP 与 ARM 处理器
16 位 I2C 地址模式的 micropython SHT3x 驱动
mpy-lib库中新增SHT3x温湿度传感器驱动。SHT3x包含了两种模式,除了常规I2C模式的驱动外,还增加了16位I2C地址模式驱动。驱动的底层虽然有差异,但是使用方式都是一样的: frommachineimportI2C,Pin fromtimeimportsleep_ms fromsht3x_16bitimportSHT3x i2c=I2C(0,sda=Pin(21),scl=Pin(22)) sht30=SHT3x(
dcexpert MicroPython开源版块
关于两线制电流源供电传感器的问题
各位大神,现在想做一个压电的加速度传感器,4-20ma电流源供电,7-13V输出的,两线制传感器,谁有思路啊,麻烦告诉小弟啊,不胜感激。关于两线制电流源供电传感器的问题
刘54231 传感器
基于ARM嵌入式系统的PC/104总线设计
基于ARM嵌入式系统的PC/104总线设计,详情请参见下列资料 基于ARM嵌入式系统的PC/104总线设计
ARM嵌入式 单片机
关于TCPMP的报错,啥意思呢?
Context_Init((tchar_t*)T(\"TCPMP\"),(tchar_t*)T(\"0.72SRC\"),3,NULL,NULL); //上下文创建 context*p=Context(); //播放模块的初始化 player*myplayer=NULL; if(p)myplayer=(player*)(p->Player); //关联窗体 Context_Wnd(this->m_hWnd
s110400710 嵌入式系统
PCB十年精髓,嘉立创《PCB设计与制造》应用教材完整版!
PCB十年精髓,嘉立创《PCB设计与制造》应用教材完整版,免费提供给工友们,需要的回复本帖可下载哦! 全套应用教程资料下载地址:链接:http://pan.baidu.com/s/1bIDdjo 回帖领取下载密码:szjlcgw,如果您要查看本帖隐藏内容请回复 此内容由EEWORLD论坛网友szjlcgw原创,如需转载或用于商业用途需征得作者同意并注明出处 PCB十年精髓,嘉立创《PCB设计与制造》应用教材完整版!
szjlcgw PCB设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved