基于单片机的PM2.5浓度检测及报警系统设计与实现

基于单片机的PM2.5浓度检测及报警系统设计与实现 II

摘 要 II
Abstract III
第一章 前言 1
1.1、设计的目的和意义 1
1.2、设计的发展趋势及国内外现状 2
第二章 主要元器件选择 4
2.1、AT89C51单片机 4
2.3、A/D转换芯片ADC0832 8
2.4、LCD1602液晶显示屏 10
第三章 设计各模块电路介绍 13
3.1、电路设计框图和原理图 13
3.2、单片机最小系统介绍 14
图3.5 夏普GP2Y1010AU0F粉尘传感器的电路连接 17
3.4、A/D转换模块介绍 17
3.5、显示模块介绍 18
3.7、按键模块介绍 21
第四章 软件和流程图 22
4.1、keil 软件简介 22
4.2、proteus设计仿真软件介绍 23
4.3、程序流程图 24
第五章 仿真测试及分析 25
5.1、PM2.5浓度检测与报警系统的功能仿真 25
5.2、分析 27
总结 28
参考文献 29
致谢 30

基于单片机的PM2.5浓度检测及报警系统设计与实现

摘 要

PM2.5、PM10、SO2和重金属铅砷镍铬为雾霾的主要成分,PM2.5的空气动力学当量直径小于2.5 µm,它是可吸入颗粒物,它不仅属于严重的空气污染物,而且还是多种重金属以及其他粉尘的载体。PM2.5常常可以长时间的在空气中漂浮,随风移动,因此其具有污染距离长范围广的特性。由于PM2.5的强传播性、长停留性、使空气能见度变低、重金属和有毒物质易附性、强污染性等特性导致它严重影响城市和地区的环境空气质量和正常的居民日常生产生活,因此实时监PM2.5是十分重要的。本设计通过使用夏普GP2Y1010AU0F芯片检测PM2.5的浓度电压,再由模数转换芯片ADC0832将检测的模拟电压转换为数字电压输入AT89C51单片机最小系统,最后把测量值显示在显示器上,显示器使用LCD1602液晶显示,当检测浓度大于预设浓度时LED灯亮并且蜂鸣器报警。

关键词:PM2.5,单片机,夏普GP2Y1010AU0F,检测,报警。

Design and Realization of PM2.5 Concentration Detection and Alarm System Based on Single Chip Microcomputer

Abstract
The main components of the haze are PM2.5, PM10, SO2 and heavy metal lead arsenic nickel chrome and other particles. PM2.5 is an inhalable particulate matter; it not only belongs to the serious air pollutants, but also is a carrier of variety heavy metals and other dust. PM2.5 can often float in the air for a long time and move with the wind, so it has a wide range of characteristics. Due to the characteristics of strong propagation, long stay, low visibility, easy adsorption of heavy metals and toxic, strong pollution, PM2.5 lead to serious environmental and seriously affects the urban and regional environmental air quality and residents’ daily life, so real-time monitoring PM2.5 is very important. This design detects PM2.5 concentration voltage by using Sharp GP2Y1010AU0F chip, and then converter the analog voltage into digital voltage using chip ADC0832 input AT89C51 microcontroller minimum system. Finally, the measured value is displayed on the display, LCD1602 liquid crystal display, the LED lights and buzzer alarm when the detection concentration is greater than the preset concentration.

Keywords:PM2.5, MCU, SHARP GP2Y1010AU0F, Detection, Alarm.

第一章 前言

1.1、设计的目的和意义
环境问题一直是人们比较关心的问题,而其中的雾霾天气更是和人们的生产生活戚戚相关,雾霾严重影响着城市的空气质量。雾霾天气在我国十分常见,它主要分布在发达城市,最典型的就是北京、广东、上海。雾霾的主要形成原因是工厂生产和居民生活生产,比如工厂烟雾的排放、火力发电产生的烟雾、汽车尾气的排放、城市灰尘产生的雾霾颗粒等等。PM2.5、PM10、SO2和重金属铅砷镍铬为雾霾的主要成分,PM2.5(Particular matter less than 2.5 μm)是一种可吸入颗粒物,其空气动力学直径小于2.5 μm。PM2.5不仅属于糟糕的空气污染颗粒,而且还是铅砷镍铬等重金属的载体。PM2.5常常可以长时间的在空气中漂浮,随风移动,当PM2.5的值越大即PM2.5颗粒的浓度越大,就表示空气质量越差污染越严重。因为PM2.5的直径小,所以它很容易由呼吸进入人的呼吸道和肺部,粘黏在肺泡上,抑制肺部的气循环,导致人体缺氧。因此PM2.5对人民的生活和人体的健康造成了巨大的不良影响。由于PM2.5的强传播性、长停留性、使空气能见度变低、重金属和有毒物质易附性、强污染性等特性导致它严重影响城市和地区的环境空气质量和正常的居民日常生活,所以在2012年2月,国务院颁布了新的空气质量指标,空气质量新指标将PM2.5的检测纳入环境监测中,从此PM2.5为主要衡量一个地区的空气质量的主要指标。为了更好的了解空气质量,保护自身,所以对PM2.5的实时监测是有必要的并且是必须的。
本文是要设计一个可以随时检测空气中PM2.5的浓度并且在PM2.5浓度超过一定值的时候能自动报警的系统,通过本系统人们就可以随时随地检测身边的空气PM2.5是否超标,进而选择相应的防护措施比如戴口罩或者减少外出,关好门窗防止雾霾进入家里。由于PM2.5的检测与报警是实时的,可调控的,而单片机具有实时性、可控性、准确度高、价格低廉等特点,所以PM2.5的浓度检测与报警系统基于单片机来设计是可行的、合适的。

1.2、设计的发展趋势及国内外现状
目前国内外的单片机发展趋势是越来越简单化、小型化、智能化以及运用领域越来越广泛化。由于单片有使用简单、容易嵌入程序、稳定性能好、工作环境广泛、性价比高、功耗低等优点,所以单片机拥有广阔的应用领域[1]。单片机在家用消费类产品方面有洗衣机、热水器、洗碗机、微波炉、音响和高级玩具等;在工业生产中可以过程控制、传感器控制、机械臂控制等;在军事武装上有各种智能仪表、信息对抗、航天航空等应用[2]。世界各国对于单片机的研究和应用已经十分成熟,不管是在单片机本身的研究还是在以单片机为基础的领域都已经取得了很大的成就。目前国内基于单片机的PM2.5浓度检测及警报系统的研究也已经十分成熟,制造工艺也趋于成熟。国内的基于单片机的PM2.5浓度检测与报警系统大多数主要采用MSP430F149作为控制芯片,因为MSP430F149自带A/D转换,也有使用STC89C51作为控制芯片的设计。基于单片机的设计一般都有单片机最小系统,它分为复位电路、复位按键、振荡电路以及最小系统的扩展部分组成[3]。
对于粉尘传感器的选择大多数设计都选择Sharp公司生产的GP2Y1010AU0F,因为GP2Y1010AU0F引脚简单价格便宜稳定性高而且测量精度高。然后由夏普GP2Y1010AU0F检测PM2.5的浓度,再由A/D转换[4-6]和单片机系统使PM2.5的测量值在LCD上显示,然后报警系统大多采用LED和蜂鸣器报警。国内的PM2.5检测系统主要是使用MSP430F149单片机为处理中心,由夏普GP2Y1010AU0F传感器检测空气灰尘浓度,通过单片机内置的12位AD转换将模拟的电压信号转换成数字信号,然后由单片机进行数据的处理,最后由LCD1602显示屏显示当前空气粉尘浓度,当浓度超过设定阈值时报警[7]。基于51单片机的空气质量检测仪,也可以以STC89C51单片机为控制核心,通过sharp的灰尘传感器对空气进行检测,通过模数转换装置最终以数字形式在液晶显示屏上显示PM2.5的实测值[8]。基于51单片机的灰尘检测仪,主要的元器件有AT89C52,DSM501,还有简单的液晶显示模块LCD1602。此设备可用于检测室内的PM2.5的单位时间内的数目[9]。
目前国内的大多数设计都只实现PM2.5的检测和显示检测值,只是一个PM2.5的浓度检测计,而本设计不仅仅实现检测,还实现报警,控制等多功能,它更是一个PM2.5的检测,显示,报警系统。本系统可以预设一个浓度值,并且当PM2.5的检测值大于了预设的浓度值时LED灯变亮以及蜂鸣器变响,这个预设的浓度值可以人为设置(会有固定按钮)。在生产工艺上,本设计基于PM2.5浓度检测与报警系统生产更简便,更方便携带和使用。对于单片机的选择我们使用的是ATMEL公司生产的AT89C51,因为AT89C51和其他所有的M C S-5 1相 兼 容,而且拥有999次以上的 可 循 环 的 程 序 嵌 入 和 擦 除,超过10年的数据保存时间而且它有较高的稳定性[10]。Kiel C语言可以很简单的编程,能轻松的烧录在AT89C51单片机上,Kiel C语言相对于汇编语言来说,它更简单,更容易学习,更容易编程,而且拥有较高的程序移植性,选择Kiel C语言作为本设计的编程语言可以提高电路运行速度,提高工作效率[11-15],使本设计更加稳定高效。

1.3、设计的主要内容
本设计主要由六大模块构成,分别是传感器模块、模数转换模块、单片机模块、液晶显示模块、LED和蜂鸣器报警模块以及按键模块。本设计先由夏普粉尘传感器(GP2Y1010AU0F)采集空气中的PM2.5的浓度,然后输出模拟电压,接着由A/D转换芯片(ADC0832)将模拟电压用采样数组采样然后排序取中间值的方式将模拟电压转换为数字电压,最后通过AT89C51处理,将测量的P M 2.5浓度值显示在液晶显示屏LCD1602上,当测量出的PM2.5的值超过按键预设的报警值时,单片机使报警装置LED变亮并且蜂鸣器发生报警,而且具体的预设值可以通过按键电路进行调节。

第二章 主要元器件选择

2.1、AT89C51单片机
AT89C51是一种高效率高灵活性的单片机,它内带4 K字节的flash存储器的C MOS 8位微处理器,并且内带2 K 字节的可编程/擦除只读存储器,其可以擦除超过999次。AT89C51之所以灵活是因为它的制造使用ATMEL(爱特梅尔)公司高密度且不容易丢失的制造技术,所以AT89C51兼容MCS-51系列单片机的指令集和I/O口。AT89C51之所以高效是因为它将8位CPU和FLASH存储器集成在一块芯片中,这样使得CPU运算速度和读取数据的速度加快,因此AT89C51单片机很适合作为嵌入式系统的核心单片机。
AT89C51单片机有4 K B的Flash memory,低128 B的用户RAM,32个输入/输出接口,2个16位计数器/定时器,中断结构,串行通信口以及内部振荡和时钟电路等多种标准功能。其中中断结构是5向量两级的,串行通信口是全双工的。当振荡为0赫兹时AT89C51为静态逻辑操作,并且可以在CPU停止运行的时候保持随机存取存储器,定时器和计数器,中断和串行通信口工作。芯片停止供电时随机存取存储器的数据会被保存,此时晶振电路停止运行而且除了RAM 以外的所有部分都停止运行,除非出现复位。AT89C51和其他的单片机一样,都是将CPU等多种计算机最小系统所必须的器件集中在一块小芯片上,AT89C51单片机有以下几个部件:
(1)1个8位CPU。
(2)1个时钟电路和1个片内振荡器。
(3)4 KB ROM程序储存器。
(4)128 字节 随机存取数据存储器。
(5)2个16位Counter / timer。
(6)可寻址64KB外部数据存储器(External data memory)。
(7)32条可编程输入/输出接口,其中有4个8位的并行输入/输出接口。
(8)1个可编程双工串行接口。
(9)5个中断源、2个优先级嵌套中断。

AT89C51的DIP封装如图2.1:
在这里插入图片描述

图 2.1 AT89C51引脚图

AT89C51的引脚功能如表2.1:
表2.1 AT89C51的引脚功能
引脚 引脚功能
VCC 电压+5V
GND 接地
P0口(P0.0-P0.7) 输入输出口
P1口(P1.0-P1.7) 准双向输入输出口,内部有上拉电阻
P2口(P2.0-P2.7) 准双向输入输出口,内部有上拉电阻
P3口(P3.0-P3.7) 第一功能准双向输入输出口,内部有上拉电阻,第二功能的定义见表2
RST 单片机复位控制输入
/PSEN 片外程序存储器读选通信号输出
/EA/VPP 片内、片外程序存储器选择输出/编程电压输入
XTAL1 片内振荡电路输入端
XTAL2 片内振荡电路的输出端
ALE/PROG 允许地址锁存输出/编程脉冲输入

AT89C51单片机的P3口不仅能当做普通I/O口而且也能当做许多特殊功能口,具体功能如表2.2:
表2.2: AT89C51D的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 外部数据存储器读选通信号输出
2.2、夏普粉层传感器GP2Y1010AU0F
粉尘传感器GP2Y1010AU0F是由Sharp Corporation研发的光学粉尘浓度传感器。一个红外LED和一个光电晶体管对角地放置,再加上放大电路部分就组成了粉尘传感器GP2Y1010AU0F,它符合RoHS指令(2002/95 / EC)。
GP2Y1010AU0F的工作原理是GP2Y1010AU0F的红外发光二极管发射的光被尘埃颗粒反射然后由光电晶体管接收,通过反射原理计算得出颗粒的浓度。GP2Y1010AU0F的最适接收距离为15毫米,接收角度为±60°。最小的检测颗粒直径是0.8μm,传感器尺寸为463017.6mm。GP2Y1010AU0F输出模拟电压,然后由电压信号来计算颗粒的浓度。
GP2Y1010AU0F粉尘传感器的内部原理图如图2.2所示。
在这里插入图片描述

图2.2 GP2Y1010AU0F内部原理
LED输入端输入条件如图2.3;
在这里插入图片描述

图2.3 LED输入端输入条件
输出脉冲采样时序如图2.4;
在这里插入图片描述

图2.4 粉尘传感器的脉冲采样时序图
上图表示输入信号采用周期为10ms±1ms,输入高脉冲的宽度为0.32ms±0.02ms。当LED输入端产生高脉冲过0.28ms后开始采样。

输出电压与粉尘密度关系如图2.5:
在这里插入图片描述

图2.5 粉尘传感器的输出电压与粉尘浓度的关系
图2.5的横轴表示颗粒浓度,单位为㎎/m3,纵轴表示输出电压,单位为V,由此图可以计算出GP2Y1010AU0F的粉尘颗粒浓度与电压的关系式为
Y=0.17X-0.1
上式中X的取值范围为0-0.55mg/m3,且PM2.5的值就是单位为μg/m3的浓度值,所以PM2.5的值的范围为0-550;此式中Y 代表粉尘浓度(㎎/m3),X代表GP2Y1010AU0F输出的模拟电压(V)。
传感器的特点:
1.尺寸:(46.0 x 30 x 17.6 mm)
2.最大工作电流:20mA
2.单脉冲即可检测出颗粒浓度。(待工作稳定)
4.工作温度:-10~65℃
5.安全无害
主要参数如表2.3:
表2.3 GP2Y1010AU0F的主要参数
灵敏度 0.5V/(0.1mg/m3)
输出电压 0.9V(TYP)
消耗电流 11mA
工作温度 -10~65℃
存储温度 -20~80℃
2.3、A/D转换芯片ADC0832
ADC0832是由National Semiconductor (NS)制造的8位分辨率双通道A/D转换器芯片。ADC0832有许多特点,如:输入/输出电平兼容晶体管-晶体管逻辑电路/互补型金属氧化物半导体电路、芯片电压范围为0〜5V工作频率250赫兹装换时间32纳秒功耗15毫瓦、封装使用8 P/14 P-D I P/P I C C、商业用片正常工作温度范围是0摄氏度至70摄氏度且工业用片正常工作范围是负40摄氏度至正85摄氏度。
ADC0832的引脚图如图2.6:
在这里插入图片描述

图2.6 ADC0832引脚图
ADC0832的接口引脚功能如表2.4:
表2.4 ADC0832的引脚接口功能
引脚接口 功能
CS_ 片选使能,低电平芯片开始工作
CH0 模拟输入通道0,或作为IN+/-使用
CH1 模拟输入通道1,或作为IN+/-使用
GND 芯片参考0 电位,芯片接地
DI 数据信号输入,选择通道控制
DO 数据信号输出,转换数据输出
CLK 芯片时钟输入
Vcc/REF 电源输入及参考电压输入(复用)

ADC0832的工作时序、时钟与DI/DO输入/输出的关系如图2.7所示;
在这里插入图片描述

图2.7 ADC0832的工作时序图
如图,在CLK的第一个时钟脉冲下降沿之前DATA IN为高电平,代表开始信号。在CLK 的第二、三个时钟脉冲下降沿之前DATA IN输入两位数据,这两位数据用作选择通道功能。DATA IN的输入作用只到第三个CLK时钟脉冲,从第四个CLK时钟脉冲下降沿开始,DATA OUT端开始输出转换数据最高位DATA7,之后每一个CLK时钟脉冲下降沿DATA OUT输出下一个转换数据直到DATA0,此时的CLK时钟脉冲为第十一个下降沿,这样就完成了一个字节的输出。同样的原理从第十二个CLK脉冲下降沿开始至第十九个CLK脉冲下降沿结束DATA OUT输出DATA0到DATA7相反字节数据,由此完成一次模数转换,之后/CS变为高电平芯片禁止。
2.4、LCD1602液晶显示屏
LCD1602属于字符型液晶显示屏,L就是Liquid液体的意思,C就是Crystal是晶体的意思,D为Display意思是显示器,所以LCD就是液晶显示器。16指的是一行可以显示16个字符或者数字,02表示显示屏有2行,所以LCD1602一共可以显示32个字符,这些字符可以是数字、大小写字母、符号等等。LCD1602的显示液晶模块由多个5乘7或5乘11的格子字符组成,每个液晶模块的字符位都可以显示一个字符,而且每个液晶点阵之间拥有一定的距离,两行之间也拥有一定的距离,所以每个字符之间拥有固定的行距和间距。LCD1602拥有以下特点。
(1)工作电压低,工作电压在3.3V-5V,所以其功耗低。
(2)体积小,LCD1602的体积只有368013mm,所以方便轻巧。
(3)对比度可调,LCD1602的对比度可以用VEE调节,VEE接高低平是对比度
弱,VEE接低电平时对比度高,本设计采用VEE接地。
(4)内部拥有许多控制命令,清屏,闪烁字符,显示位移等。
(5)内部含有自动复位电路。
LCD1602 主要参数如表2.5:
表2.5 LCD1602 主要参数
功能 参数
显示容量 16× 2 个字符
芯片工作电压 4.5~ 5.5V
工作电流 2.0mA (5.0V)
模块最佳工作电压 5.0V
字符尺寸 2.95×4.35(W ×H)mm

LCD1602的管脚图如图2.8:
在这里插入图片描述

图2.8 LCD1602引脚图

LCD1602引脚功能如表2.6:
表2.6 LCD1602引脚功能
引脚 功能
VSS 芯片接地电源
VDD 芯片接+5V电源
VEE VEE是LCD1602的对比度调整接口,LCD1602的对比度与VEE上的电压成反比,电压越高对比度越弱,电压越低对比度越高。
RS LCD1602的寄存器选择引脚,输入为“1”信号时选择数据寄存器,输入为时“0”信号时选择指令寄存器。
RW LCD1602的读写信号线,输入“1”信号时进行读操作,输入“0”信号时进行写操作。
E LCD1602的使能引脚,输入“1”信号时LCD1602读信息,输入“0”信号时执行指令。
D0~D7端 为LCD1602的8为双向数据引脚。

LCD1602的基本操作分为四种:
读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。
读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。
写命令:输入RS=0,RW=0,E=高脉冲。输出:无。
写数据:输入RS=1,RW=0,E=高脉冲。输出:无。

LCD1602的读操作时序如图2.9
在这里插入图片描述

图 2.9 LCD1602的读操作时序
LCD1602的写操作时序图如图2.10
在这里插入图片描述

图2.10 LCD1602的写操作时序

第三章 设计各模块电路介绍

3.1、电路设计框图和原理图
电路设计框图如图3.1:

在这里插入图片描述

图3.1 电路设计框图

电路原理图如图3.2:
在这里插入图片描述

图3.2 电路原理图
如图3.2为基于单片机的PM2.5浓度检测报警系统的设计电路原理图,左上角的RV1为滑动变阻器,它的作用是模拟传感器芯片GP2Y1010AU0F,连接滑动变阻器的芯片是模数转换芯片ADC0832,中间位单片机最小系统,下面是按键模块,右上角是显示模块LCD1602液晶显示器,液晶显示模块包括上拉电阻R,右下角是报警模块,通过仿真显示本设计电路原理和连接都是正确的。
3.2、单片机最小系统介绍
单片机的最小系统就是由最少的电路器件构成的能正常运作的系统,一般情况下MCS-51系列的单片机的最小系统由单片机,晶振电路和复位电路组成。
本设计的单片机最小系统如图3.3:
在这里插入图片描述

图3.3 单片机最小系统
晶振电路:
晶振电路由两个电容C1,C2和一个晶振X1组成,它的作用是为单片机提供一个工作频率,MCS-51系列单片机的最小系统一般有两种晶振频率可选择,第一种频率是6兆赫兹,第二种频率是11.0592兆赫兹,一般情况下选择11.0592兆赫兹,因为单片机的运行速度与晶振频率和内核处理器位数有关,晶振频率越大运行速度越快,内核处理器的位数越高单片机的运行速度也越大,AT89C51的内核处理器是八位的,所以本设计晶振频率选择11.0592MHz。晶振电路连接单片机的XTAL1接口和XTAL2接口,通过本论文第二章2.1节关于AT89C51的介绍知道,AT89C51单片机的X T A L 1引脚的功能是作为反向放大器的输入和内部时钟电路的输入,X T A L 2引脚的功能是反向振荡器的输出引脚。当晶振电路接在单片机的X T A L 1和X T A L 2引脚上时单片机的内部振荡器产生自激振荡。本设计的石英晶振频率为11.0592兆赫兹,石英晶振和电容C1,C2并联,形成晶振电路,电容的主要作用是对晶振频率的微调。在采用石英晶振的情况下,电容的选取范围可以是20 pF~ 40pF,本设计选取的是30pF。
复位电路:
复位电路对于单片机来说非常重要,当程序出现问题或者出现单片机死机等情况时需要通过复位来重新让单片机工作,相当于单片机重新启动。复位电路主要由复位按钮、电阻R3(10kΩ)、R4(10kΩ)和电容C3(30pF)组成。复位电路接单片机的复位输入引脚RST,想要实现单片机的复位,必须在RST引脚上产生两个高电平脉冲。在单片机启动的时候由于单片机刚刚通电,所以单片机会自动复位一次,而且能由复位按钮的开和关在正在使用的单片机中控制复位,当单片机运行时可以按下复位按键控制单片机系统复位。当单片机通电0.1秒以上时间之后,电容的电压因为充电而饱和,电压到达5伏,此时电阻上的电压趋近0伏,单片机的RST接口是电平,单片机正常运行。在复位按键被按下的时候,电路导通,电容被短路,所以电容上储存的电荷开始流失,电容电压迅速从5V变到0V,所以单片机的RST接口处于高电平,单片机复位。

3.3、传感器模块介绍
因为在本设计使用的仿真软件proteus中没有粉尘传感器GP2Y1010AU0F,而且GP2Y1010AU0F对粉尘的检测是通过光学反射原理测量粉尘浓度并且将粉尘浓度值转换为模拟电压值,此电压值与粉尘浓度值关系为Y=0.17X-0.1,是正比例关系,所以本设计仿真采用滑动变阻器电路代替夏普粉尘传感器。
本设计的传感器模块仿真电路设计如图3.4所示:
在这里插入图片描述

图3.4 传感器模块电路

本设计的传感器模块实物电路图如图3.5所示;
在这里插入图片描述

图3.5 夏普GP2Y1010AU0F粉尘传感器的电路连接
如图LED输入信号引脚串联上一个NPN晶体管之后再连接单片机的引脚,输出引脚连接A/D转换芯片的CH0引脚,VCC接5V电源,GND接地,V-LED和LED-GND引脚并联一个电容之后接5V电压。当单片机给LED输入信号一个高电平脉冲的时候,延迟0.28ms之后开始一次信号采样,Vo输出一次采样的模拟电压。
3.4、A/D转换模块介绍
本设计使用模数转换芯片ADC0832作为A/D转换芯片,ADC0832的引脚说明如表8所示:

A/D转换模块电路如图3.6所示:
在这里插入图片描述

图3.6 A/D转换模块电路

CS_接口接单片机P1.5接口,当CS_为高电平时,芯片禁用,当单片机P1.5为低电平时ADC0832开始工作,CHO接口接模拟电压输入,本设计接的就是滑动变阻器RV1,通过滑动变阻器RV1的调节可以得到变化的输入模拟电压,CLK接口接单片机的P1.3接口,是芯片的时钟输入接口。本设计将A/D转换芯片ADC0832的DO与DI接口并联接在单片机的P1.4接口,因为DO口和DI口在通讯时禁止同时有效,而且单片机的接口是双向的。当CS_为低电平时即单片机给CS_引脚一个低电平脉冲时,芯片开始工作,将CH0引脚的模拟电压转换成数字电压由DI引脚输出。

3.5、显示模块介绍
本设计使用LCD1602液晶显示屏作为显示器。具体电路图3.7如下:
在这里插入图片描述

图3.7 液晶显示模块电路
因为LCD1602的VSS接口是GND接地,而且VEE是LCD1602显示器的显示对比度调节引脚,当接正电压的时候对比度弱,接低电压的时候对比度高,显示屏的对比度与VEE上的电压成反比,所以本设计将VSS引脚和VEE引脚一起接地,以达到最高的对比度,VDD接+5V电源。引脚RS接单片机P2.5接口,RS为寄存器的控制引脚,当RS上加载高电平时LCD1602的寄存器为数据寄存器,当RS上加载低电平时LCD1602的寄存器为指令寄存器。RW接口接单片机P2.6接口,RW为LCD1602的读写信号接口,当的单片机P2.6接口输出高电平时进行读操作,反之为写操作。E接口接单片机P2.7接口,E端为使能端,当单片机P2.7接口输出高电平时读取信息,输出低电平时执行指令。D0到D7接口接单片机的P0.7到P0.0接口,为8位双向数据端,由于P0口为开漏输出,因此需要在外接上上拉电阻,本设计的每个外接电阻阻值设为1KΩ。P0 口需要外接电阻,MSC-51系列单片机的P0接口一般为开漏输出接口,因为其内部没有上拉电阻。上拉电阻的作用是限流以及将不确定的信号钳位于高电平。所以当PO口作为普通数据接口时,要时“1”信号能正常输出,就要外接上拉电阻。外接上拉电阻如图3.8所示:

在这里插入图片描述

图3.8 外接上拉电阻
3.6、报警模块介绍
本设计报警模块由一个蜂鸣器和一个LED灯实现报警目的,主要电路图如图。
在这里插入图片描述
图3.9 报警模块电路
LED报警部分由LED串联上一个0.5KΩ的电阻组成,连接在单片机的P3.7接口上,在单片机的P3.7接口输出高电平的时候,LED发光达到报警目的。蜂鸣器报警部分由蜂鸣器、三极管和一个阻值为0.5KΩ的电阻组成,连接在单片机的P3.6接口上,在单片机的P3.6接口输出一个高电平的时候,三极管正向导通,放大电流,启动蜂鸣器,蜂鸣器发出声音报警。
3.7、按键模块介绍
本设计按键模块十分简单,它由三个按钮和三个电阻并联组成,具体电路图如图3.11:
在这里插入图片描述

图3.11 按键模块电路
电阻阻值选择1KΩ,三个按键接口按顺序接单片机的P1.0、P1.1、P1.2接口,当按键都没有按下的时候,单片机的P1.0、P1.1、P1.2接口接收到高电平,当某个按键按下的时候,单片机的对应的接口将接收到低电平,从而按照程序运行相应的指令。

第四章 软件和流程图

4.1、keil 软件简介
Keil C51是America Keil软件company研发的专门为51系列单片机做C语言编程开发的软件。相对于汇编语言来说,C语言有很多优势,比如容易学学习,编程指令简单易理解,功能强大,结构清晰,便于维护,嵌入性高。此软件由C语言编译,宏汇编,库管理以及仿真调试等多个实用性极强的部分组成。Keil C51的数据库里面含有许多函数,所以在C语言编程的时候能轻易调用,而且其生成汇编代码的效率非常的高,并且紧凑,所以在进行超大规模的软件开发上拥有更好的优势。综上所述,本的程序语言选择C语言,编译软件设计选择Keil C51。
Keil C51的操作界面如图4.1所示:

在这里插入图片描述

图4.1 Keil C51的操作界面
4.2、proteus设计仿真软件介绍
本设计选择Proteus作为仿真软件,Proteus是由United Kingdom的实验室中心电子公司研发的电子设计自动化工具软件。Proteus拥有三大功能;(1)电路仿真;(2)PCB设计;(3)电路虚拟模型仿真。本设计不选择multisim作为仿真软件而选择Proteus软件是因为Proteus不仅有其他的电子设计自动化软件的仿真功能,它还能仿真单片机,并且Proteus使用简单方便运行功能强。Proteus还有以下功能:
(1)原理布图
(2)PCB自动或人工布线
(3)SPICE电路仿真
Proteus的革命性特点:
(1)互动的电路仿真电路可采用LED,LCD,模数/数模转换,RAM,ROM,一些SPI和IIC元件。
(2)仿真处理器及其外围电路
Proteus能仿真像MCS-51系列、A V R、P I C、A R M这些使用率高的单片机。也能在原理电路图的虚拟模型上直接编程,由输出显示,示波器和分析器显示并且通过分析运行电路的输入输出结果。Proteus拥有完善成熟的EDA开发前提,它是一个大型的电子电路设计平台。
Proteus操作界面如图4.2所示:

在这里插入图片描述

图4.2Proteus操作界面
4.3、程序流程图
主程序框图如图4.3所示:

在这里插入图片描述

图4.3 设计的主程序框图

第五章 仿真测试及分析

5.1、PM2.5浓度检测与报警系统的功能仿真
对系统的仿真结果如图5.1、图5.2:
在这里插入图片描述

图5.1 当测量值大于预设值时电路仿真

在这里插入图片描述

图5.2 当测量值小于预设值时电路仿真

仿真结果显示,如图5.1所示调整滑动变阻器使测量值为76大于报警预设值35所以LED灯亮蜂鸣器响,LCD1602液晶显示屏上显示76的测量值,预设值为35;图5.2显示当调整滑动变阻器测量值为25时小于预设值35时LED不亮蜂鸣器不响LCD1602液晶显示屏上显示测量值为25,预设值为35。所以本设计仿真基本实现功能。

5.2、分析
通过电路仿真本设计基本实现所需的对于PM2.5的浓度检测和报警的功能,由此可知电路是正确的,但是按照电路焊接实物电路之后没能使实物电路通电,初步分析是因为焊接过程中出现了虚焊,导致某些引脚或者电源没有接通,解决办法是使用万用表每个模块去检测,检测是否是断路或者断路,由此排除正确模块,发现错误,解决错误。本设计在仿真中直接使用单个的上拉电阻,一共八个,这样可以简化上拉电阻的设置,而且在实物电路焊接时比较方便和简单。本设计电路焊接中需要耐心以及细心,这样才能正确完成电路的焊接,实现电路功能。

总结

本设计先在proteus仿真软件里面画出电路图,然后根据电路图中的各个引脚连线在Keil C软件里面进行编程,编译成功后生成hex文件,然后将hex文件加载到proteus的电路仿真的单片机AT89C51里面进行仿真,调试并修改直到仿真运行成功,这样就确保了电路各模块的正确性以及程序代码的可行性。然后按照proteus仿真的电路在PCB板上焊接元器件,焊接完成之后将程序代码烧录到AT89C51里面,然后进行测试,测试成功后即可投入使用,本设计完成。
本设计基本完成并且实现了所要求的测试显示以及报警功能,经过试验,本设计是可行的,可靠的,精确的,实用的。本设计在电子元器件的选择上是经过慎重考虑的,选择AT89C51单片机作为核心处理芯片是因为AT89C51单片机具有很好的稳定性以及实时性,这样使得在处理PM2.5的浓度数据时可以真实稳定地反应传感器传入的数据,而且AT89C51属于51系列单片机,可以更好地使用C语言进行编程控制。在传感器模块本设计选择夏普GP2Y1010AU0F是因为它的测量精度高,误差小,对粉尘的大小的测量范围刚好适合PM2.5的空气动力学直径,传感器自身体积小易携带,工作环境温度范围大可以适应大部分环境。在模数转换芯片选择上本设计选择了ADC0832,因为ADC0832引脚少,功能强大,转换稳定,芯片工作电压在0-5V适应本设计的工作电压,芯片工作环境温度范围大,能适应大部分工作环境。选择LCD1602作为显示器,LCD1602比数码管显示更加清晰,操作更加方便,编程也相对简单。按键采用轻触开关,这样容易使按键恢复,报警模块选择LED与蜂鸣器组合,这样可以实现视觉与听觉的双重报警,所以本设计的元器件选择是科学的,合理的。
通过对基于单片机的PM2.5浓度检测报警系统的设计,我了解了AT89C51单片机的使用以及各引脚的作用和意义;学习到了模数转换芯片ADC0832的采样转换以及工作原理;了解了夏普GP2Y1010AU0F粉尘传感器的原理以及使用方法,学会使用LCD1602液晶显示屏连接单片机,知道了LCD1602的写指令和读指令以及各个引脚的意义;学会使用Kiel C语言编程,调试,仿真,查错;学会使用proteus软件做电路的仿真;也学会了自己按照仿真电路图焊接电路板,连接各个电子元器件,成功做出设计实物。

参考文献

[1] 张俊谟,单片机的发展及应用现状[J],电子世界,2001(7):31-31.
[2] 陈章龙,国内外单片机的现状及未来发展[J],电子世界,1991(6):2-3.
[3] 陈旦花,单片机最小系统的设计与应用[J],无线互联科技,2012(10):103-104.
[4] Nelson V P, Digital logic circuit analysis and design[M],清华大学出版社,1999.
[5] 童诗白,模拟电子技术基础,上册[M],人民教育出版社,1980.
[6] 童诗白,模拟电子技术基础,下册[M],人民教育出版社,1981.
[7] 兰冰芯,谌海云,陈东,等,基于单片机的PM2.5测试仪的设计与实现[J],物联网技术,
2014(11):32-34.
[8] 楼俊君,赵永熹,甄兰兰,基于51单片机的PM2.5空气质量检测仪的设计[J],福建电
脑,2016,32(11):109-109.
[9] 何强,文卉,基于单片机和DSM501测量PM2.5[J],电子世界,2014(16):27-28.
[10] 蔡美琴,MCS-51单片机系统及其应用[M],高等教育出版社,1992.
[11] 潭浩强,C程序设计[M],清华大学出版社,1991.
[12] 戴佳,戴卫恒,刘博文,51单片机C语言应用程序设计实例精讲[M],电子工业出版社,
2008.
[13] Razavi B,Design of Analog CMOS Integrated Circuits[M],McGraw-Hill,2001.
[14] Leung B, Investigation of a high frequency CMOS unsaturated ring oscillator[J],Analog
  Integrated Circuits and Signal Processing, 2012 72(2): 395-404.
[15] 蒋碧波,刘芹,陈侃松,等。基于传感网的PM2.5监测系统设计与实现[J].计算机测量
与控制,2015, 23(11):3603-3605.

致谢

谢谢张老师,谢谢杨师兄,谢谢大学,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453491.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TOUGH软件教程

原文链接:TOUGH软件教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597252&idx6&sna9da64e502f070dcc37f9a93dd2a017b&chksmfa823d23cdf5b435996a4a7ebbed78211e81290c37138bcace1f4156f6588af829008381bc16&token1065483158&…

RocketMQ为什么这么快?我从源码中扒出了10大原因!

RocketMQ作为阿里开源的消息中间件,深受广大开发者的喜爱 而这其中一个很重要原因就是,它处理消息和拉取消息的速度非常快 那么,问题来了,RocketMQ为什么这么快呢? 接下来,我将从以下10个方面来探讨一下…

面试经典-11-接雨水

题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,…

为什么GPU对于人工智能如此重要?

GPU在人工智能中相当于稀土金属,甚至黄金,它们在当今生成式人工智能时代中的作用不可或缺。那么,为什么GPU在人工智能发展中如此重要呢? GPU概述 什么是GPU 图形处理器(GPU)是一种通常用于进行快速数学计…

基于YOLOv8深度学习的野外火焰烟雾检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

腾讯云轻量应用服务器地域选哪个合适?有啥区别?

腾讯云轻量应用服务器地域如何选择?地域就近选择,北方选北京地域、南方选广州地域,华东地区选上海地域。广州上海北京地域有什么区别?哪个好?区别就是城市地理位置不同,其他的差不多,不区分好坏…

【UE】制作系统设置功能

目录 效果 步骤 一、准备工作 二、创建画面设置界面 三、应用画面设置 四、保存画面设置 五、运动模糊与垂直同步 六、窗口化与分辨率 6.1 分辨率 6.2 窗口化 效果 步骤 一、准备工作 新建一个工程,创建游戏模式和玩家控制器,这里分别命名…

【代码随想录 | 数组 01】二分查找

文章目录 1.二分查找1.1题目1.2思路(核心:区间的定义)1.3左闭右闭1.4左闭右开1.5总结 1.二分查找 1.1题目 704.二分查找—力扣题目链接 题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 …

centos7 yum 配置

centos7 yum 配置 重置yum更新 centos 镜像源http://mirrors.aliyun.com/centos/7Server/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found 重置yum # 备份 sudo cp /etc/yum.repos.d/* /etc/yum.repos.d.bak/ # 删除 rm -rf /etc/yum.repos.d/*# 查看版…

【数据结构取经之路】快速排序及其优化

目录 简介 快速排序的实现步骤 快排的时间复杂度 快排的空间复杂度 霍尔法 证明 key > x left从key的位置出发的原因 霍尔法代码 (递归) 挖坑法 流程及其展开图 代码 (递归) 前后指针法 前后指针法的步骤及其动图 代码(递归) 快排的优化 一、三数取中 二、…

2024年泰迪智能科技合作伙伴战略大会暨产教融合实训基地落成仪式圆满结束

2024年泰迪智能科技合作伙伴战略大会 暨产教融合实训基地落成仪式 3月6日,2024年泰迪智能科技合作伙伴战略大会暨产教融合实训基地落成仪式在泰迪智能科技产教融合实训基地举行,本次合作伙伴战略大会围绕“龙腾山海,共赴新程 ”主题开展&…

【算法】链表手撕代码

目录 前言 1. 在原有的自定义链表类 Linked 的基础上,添加新的 “节点添加”方法 addNode(Node node) 测试用例 测试结果 2. 在自定义链表类的基础上,使用双重循环“强力” 判断两个节点是否发生相交 测试用例 测试结果 3. 在自定义链表类的基础…

运维自动化之——Ansible

目录 一、自动化运维 1、通过xshell实现自动化运维 2、Ansible简介 3、Ansible特点及优势 4、Ansible核心程序 5、Ansible工作原理及流程 6、部署Ansible自动化运维工具 7、Ansible常用模块 ①ansible命令模块 ②command模块 ③shell模块 ④cron模块 ⑤user模块 …

idea配置自定义注释模版和其他模板

项目场景: idea配置自定义模版 自定义注释模版其他模板,包括syso快捷键,swith快捷键等 自定义注释模版 1、File and Code Templates 第一种类创建完后头部自动生成注释模板 打开idea,选择 Settings--> Editor--> File a…

性能测试-数据库

一、数据库事务机制 ACID描述 1、原子性Atomicity:事务通常由多个语句组成。原子性保证将每个事务视为一个“单元”,该事务要么完全成功,要么完全失败 2、一致性Consistency:“一致”是指数据库中的数据是正确的,不存…

数据结构之单链表及其实现!

目录 ​编辑 1. 顺序表的问题及思考 2.链表的概念结构和分类 2.1 概念及结构 2.2 分类 3. 单链表的实现 3.1 新节点的创建 3.2 打印单链表 3.3 头插 3.4 头删 3.5 尾插 3.6 尾删 3.7 查找元素X 3.8 在pos位置修改 3.9 在任意位置之前插入 3.10 在任意位置删除…

深入解析CAS的原理机制

一、基本概述 1.1 引入背景 例:i。假设由线程A和B需要对i进行加1的操作。线程A和线程B会分别从主内存中读取i值到自己的工作内存中。原本相加之后的值为3,但线程A和线程B分别加1后将值刷新到主内存,发现主内存的值为2,出现错误。…

学c还行,学Python很累,还有其他语言适合我吗?

学c还行,学Python很累,还有其他语言适合我吗? 在开始前我分享下我的经历,我刚入行时遇到一个好公司和师父,给了我机会,一年时间从3k薪资涨到18k的, 我师父给了一些 电气工程师学习方法和资料&a…

新建项目module,但想归到一个目录下面

1. 想建几个module, 例如 component-base-service,component-config-service, 但是module多了会在CloudAction下面显示很多目录, 所以想把它们归到components模块下面去, 类似于下图的效果 2. 创建过程 右击CloudAction 新建 module -> 选maven类型 输入components, 建成后删…

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列二:Fast R-CNN图文详解

RCNN算法详解:【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一:R-CNN图文详解 学习视频:Faster RCNN理论合集 Fast RCNN 概念辨析 1. RoI 在Fast R-CNN中,RoI(Region of Interest,感兴…