PM2.5液晶显示论文

更新时间:2024-06-13 17:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题 目:基于单片机多功能 环境检测系统研究

随着经济的发展,人们越来越关注污染程度日益严重的居住环境。他们开始利用高科技产品及时对居住环境进行检测,从而及时了解环境状况 。

伴随着单片机技术的飞速发展,通过单片机开发的检测仪器越来越小型化和多样 化,然而对环境检测的多功能设备却很少被开发出来 。

本文主要介绍了基于单片原理开发的环境检测系统。该系统把单片机的控制技术和 传感器技术相结合,开发成多功能环境检测系统。通过它对温湿度传感器、燃气浓度传 感器、甲醒浓度传感器以及粉尘传感器的控制,实现对家庭环境的温湿度、燃气浓度、甲醒浓度、空气颗粒大小的采集。采集的数值经过 AI D 模数转换,再传输给单片机读取,然后传输给液晶显示屏显示 ,达到对室内环境的多功能检测和及时显示,使得室内环境 状况一目了然 。当检测值超出预设值时,单片机驱动蜂鸣器报警 ,使得用户及时发现环 境的具体状况,从而为用户的居住生活带来舒适和安全 。从而摆脱检测仪器的简单、独 立的缺点而实现检测仪器的系统化、小型化、高效率和多功能。

关键词:室内环境检测,单片机,传感器技术,PM2. 5

Abstract

With the development of economy, people are paying more attention to the living environment pollution is increasingly serious. They began to use the high-tech products in a timely manner to test the living environment, and in a timely manner to understand the status of the environment.

Accompanied by single-chip computer technology rapid development, through the single-chip microcomputer detecting instrument is more and more miniaturized and diversified development. Detection of multi-function equipment to the environment, however, is rarely developed.

This article mainly introduced the development of environment detection system on the basis of the principle of single chip. The system of the single chip microcomputer control technology and sensor technology,developed into a multifunctional testing system environment. Through its sensor for temperature and humidity sensor, the gas concentration in the dust, formaldehyde concentration sensor and sensor control, implementation of home environment tempera阳re and humidity, gas concentration and the concentration of formaldehyde,the air particles the size of the collection. Acquisition value after AID analog-to-digital conversion, to transmit to MCU read again,and then transferred to the LCD display shows, reached for the indoor environment of the multi-function detection and display in time, make indoor environment condition be clear at A glance. When values beyond the preset value, MCU drive buzzer alarm, allows the user environment specific shape in time.

To get rid of a testing instrument is simple, the faults of independent and systematic testing instrument,the miniaturization, high efficiency and more functionality.

2

随着经济的发展,生活水平的提高,人们对居住环境的舒适度要求越来越高 。由于经济发展带来的环境污染,使得人们对环境现状越来越关注,对自身的身体健康也越来越看重。由环境污染给健康带来的危害越来越牵动着人们敏感的神经。人们也越来越渴 望有个干净舒适的居住环境,能呼吸到清新自然的空气。

伴随着科技的快速发展,用科学技术来进行环境的检测,快速准确的反映出环境的 现状是当前最直接有效也最普遍的方式 。住房 ,这个作为人们生活起居的 重要场所,它的美观、舒适、以及安全度是每个家庭成员最关心的也最迫切的。当人们在追求室内环 境的美观时,通过大量使用化学合成材料装修房屋,使得房屋美观度大大提高,也留下了甲醒气体危害。由于环境的变化、气候的异常,粉层污染越来越厉害,造成的鼻炎等呼吸道疾病 频繁发生 。因此 PM2. 5指数也就非常受到大家的重视。

本文的研究的思想就是利用单片机控制技术和传感器技术相结合 ,以AT89S52 单片机为核心 ,PM2.5 粉尘传感器 GP2Yl010AUOF、ADC0832 模/数转换器、LCD 显示屏组成环境检测系统 。它通过对环境地检测实现PM2.5 的采集、传输以及读取 。利用LCD 显示技术实现数字化显示。通过单片机将现代科技应用于对家庭环境的多功能检测,由系统自身能处理的一定的措施以及用户根据显示屏 上的数据做出相应措施,改善环境状况 ,使得居住环境更加舒适安全 。

1概述

随着工业的快速发展,人类掠夺式地开来资源以及以牺牲环境为代价来换取经济的发展,使得环境污染问题越来越严重 ,人类的生存环境变得糟糕不堪 ,因此急需保护环 境才能与环境和谐相处。在环境问题随之突出以来,人类开始利用科技手段对环境进 行 检测以寻找相应的对环境的改善措施 。

1.1 环境检测系统的应用现状及种类

对环境进行检测的系统有温湿度检测系统、空气和废气检测系统、光化学烟雾检测 系统、有机污染 自动连续监测系统、燃气报警系统、粉尘颗粒检测系统等。

环境检测系统的发展现状由以前人工采样和实验室分析为主 ,向自动化、智能化和 网络化为主的检测方向发展;由劳动密集型 向技术密集型方向发展:由较窄领域向全方 位领域监测的方向发展;由单纯的地面环境监测向与遥感环境监 测相结合的方向 发展: 环境监测仪器将向高质量、多功能、集成化、自动化、系统化和智能化方向发展而它的 检测的方向将是物理、化学、生物、电子、光学等技术综合应用的高技术领域发展。目 前环境检测开始采用单片机或者 PLC 为系统核心 ,组成多功能检测系统 ,从而实现对环 境高效、快速、精确、集成化、智能化的检测要求。

1.1.4 粉尘检测研究

由于空气中的粉尘污染日益严重,各个国家都对其的检测研究很深入。目前检测方 法主要利用光吸收 、光散射、。射线和交流静电感应原理制成的检测仪器。市场上较 为常用的型号有:SIDPAK、DUSTTRAK 、LD、P-5L2、Sintrol S300 系列、CCZ-1000 等型 号的仪器。

1.2 设计 目的及其内容

本设计的最终目的是通过单片机与数字控制技术相结合而实现对PM2.5 的检测于一体的环境检测系统。这种检测系统具有制造成本低廉、操作简单而测量精度高、显示迅速的优点。经过充分的调研 、综合分析、 对改善室内环境的方法进行比较以及对各种测量方法的对比,本设计基于单片机为系统 控制核心,采用显示屏显示和蜂鸣报警 ,实现高效的室内环境检测的功能。主要的设计内容如下:

(1) 采用 AT89S52 单片机作为控制核心。

(2) 采用 GP2Y1010AUOF 传感器对粉尘颗粒大小的采集 。 (3) LCD 显示屏显示所有测量值。

4

2 环境检测系统总体设计

2.1 总体系统硬件设计

本系统以 AT89S52 单片机为核心,主要包括传感器粉尘采集,AI D 模数转换,单片机控制,显示屏显示。系统通过传感器电路检测PM2.5值。

5

值上等同于采样速率也是 可以接受的。常用单位是ksps和Msps,表示每秒采样千/百万次(kilo / Million Samples per Second)。

3)量化误差(Quantizing Error) 由于AD的有限分辩率而引起的误差,即有限分辩率 AD的阶梯状转移特性曲线与无限分辩率AD(理

想AD)的转移特性曲线(直线) 之间的最大偏差。通常是1 个或半个最小数字量的模拟变化量,表示为1L

4)偏移误差(Offset Error) 输入信号为零时输出信号不为零的值,可外接电位器调至最小。 5)满刻度误差(Full Scale Error) 满度输出时对应的输入信号与理想输入信 号值之差。

6)线性度(Linearity) 实际转换器的转移函数与理想直线的最大偏移,不包 括以上三种误差。

其他指标还有:绝对精度(Absolute Accuracy) ,相对精度(Relative Accuracy),微分非线性,单调性和无错码,总谐波失真(Total Harmonic Distotortion缩写THD)和积分非线性。

ADC0832简介

ADC0832是美国国家半导体公司生产的 一种逐次逼近型、8位分辨率、双通道A/D 转换芯片。由于它体积小,兼

容性强,性 价比高而深受单片机爱好者及企业欢迎, 有很高的普及率。学习并使用ADC0832可 是使我们了解A/D转换器的原理,有助于单 片机技术水平的提高。

ADC0832功能简介

ADC0832为8位分辨率A/D转换芯片,其最高 分辨可达256级,可以适应一般的模拟量转换要 求。其内部电压输入与参考电压的复用,使得芯 片的模拟电压输入在0~5V 之间。芯片转换时间仅 为32μS,据有双数据输出可作为数据校验,以 减少数据误差,转换速度快且稳定性能强。独立 的芯片使能输入,使多器件挂接和处理器控制变 的更加方便。通过DI 数据输入端,可以轻易的实 现通道功能的选择。

11

ADC0832的特点

? ? ? ? ? ? ?

ADC0832 具有以下特点: 8 位分辨率; 双通道A/D 转换;

输入输出电平与TTL/CMOS 相兼容; 5V 电源供电时输入电压在0~5V 之间; 工作频率为250KHZ,转换时间为32 μS; 一般功耗仅为15mW;

ADC0832引脚功能说明

12

ADC0832有DIP和SOP两种封装。DIP封装是8只引脚,SOP封装则是14只脚,请大家在使用的时候 注意。

ADC0832时序图

ADC0832的输入通道配置在起始完成后的两位就是通道配置位,均为上升沿有效。第一位0表示单通道差分输入,1表示双通道单极性输入,第二位表示单通道差分输入时的极性选择或者表示双通道单极性输入时的通道选择。

ADC0832的配置位

13

当起始位和两位配置位移入移位寄存器后转换便开始。即从第三个脉冲的下降沿开始转换,同时DI转为高阻状态,DO端脱离高阻状态,为数据输出做准备。

ADC0832的DI端只是在多路器寻址时被检测,此时DO端为高阻 态,在转换过程中,DO脱离高阻态,此时DI端和多路器是关断的。因此DI 和DO可以连接在一起。

ADC0832的数据转换

当起始位和两位配置位移入移位寄存器后转换 便开始。即从第三个脉冲的下降沿开始转换,同时 DI转为高阻状态,DO端脱离高阻状态,为数据输 出做准备。由此可见,ADC0832的DI端只是在多 路器寻址时被检测,此时DO端为高阻态,在转换 过程中,DO脱离高阻态,此时DI端和多路器是关 断的。因此DI和DO可以连接在一起。

ADC0832的数据读取

从第三个脉冲之后,经过一个脉冲的延时,以使选定的 通道稳定,在第四个脉冲的下降沿,DO端开始输出数据 D7,随后一个脉冲下降沿DO端输出下一位数据。

数据输出时先输出最高位,直到第11个脉冲时发出最低 位数据DO,一个字节的数据输出完成。输出完转换结果 后,又以最低位开始重新输出一遍数据,两次发送的最低位 共用。随后输出8位数据,到第19个脉冲时数据输出完成, 也标志着一次A/D转换的结束。

最后将CS置高电平禁用芯片,将转换后的数据进行处理 就可以了。转换中后面输出的8位数据如果不需要可以不接 收。

ADC0832工作流程

CS设置为低,当CS为高时芯片停止接收和输出数据DI电平变为高电平,并在时钟的上升沿保持高电平,表示启动位。 ADC0832的起始完成后的两位就是通道配置位,均为上升沿有效。 配置位设置完后,就可以从读出AD数据,数据需要经过校验再输出

14

3.5.3 ADC0832 与单片机的连接

ADC0832 与单片机的接口应为 4 条数据线,分别是 cs、CLK、DO、DI。但由于 DO 端与 DI 端在通信时并未同时有效,且与单片机的接口是双向的,所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用 。当 ADC0832 未工作时其 cs 输入端应为高电平 ,此 时芯片禁用,CLK 和 DO/DI 的电平可任意。当要进行 AI D 转换时,须先将 cs 使能端置 于低电平并且保持低电平直到转换完全结束 。此时芯片开始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第 1 个时钟脉冲的下沉之前 DI 端必须是高电平 ,表示启始信号。在第 2、3 个 脉冲下沉到来之前 DI 端应输入 2 位数据用于选择通道功能 。当此 2 位数据为 “1 ” 、 “0” 时.,只对 CHO 进行单通道转换。当2 位数据为 “1”、“1”时,只对CH1进行通道转换。当2 位数据为 “O "、 “1” 时,将 CHO 作为负输入

15

15. 写指令38H:显示模式设置 17. 写指令08H:显示关闭 19. 写指令01H:显示清屏

22. 写指令06H:显示光标移动设置 25. 写指令0CH:显示开及光标设置 26.

2.4.6 1602LCD的电路连接

液晶5端为读/写选择端,因为我们不从液晶中读取数据,只向其写入命令和显示数据,因此此端始终选择为写状态,即低电平接地。液晶6端为使能信号,是操作时必须的信号。其电路如图2-11所示:

图2-11 1602的电路连接

4 环境检测软件系统的设计

4.1 编程软件简介

本系统以 AT89S52 单片机为核心 ,而 AT89S52 单片机属于 51 单片机系列 ,所以选 择与之兼容的高级开发语言软件 Keil uVision2 。

Keil uVision2 是德国 Keil Software 公司开发的 51 系列兼容单片机 C 语言软件 开发系统。它使用接近于传统 C 语言的语法来开发程序,与汇编相比,在功能上 、结构 性、可读性、可维护性上 C 语言具有明显的优势。由于 C51 己被完全集成到 uVision2 的集成开发环境 中,使得该集成开发环境包含 :C 编译器、汇编器、实时操作系统、库 管理器和仿真调试器等工具而让在线编程更加容易。

4.1.1C51编译器简介

Keil uVision2 编译器在语言上的扩展功能为用户使用软件资源提供方 便,对于 8051 系列21

资源 C51 编译器都可以进行操作 。SFR 和 SBIT 两个关键字对 SFR 进行存取。 变量可转移到任意地址空间 ,变量还可以通过关键字 at 放入固定的存储器中,存储模 式决定了变量的存储类型 。Keil uVision2 的编译器和高性能仿真器,支持应用程序的 调试。软件界面如图 4. 1所示 。

管 发光报警。程序流程如图 4.4 所示。

22

4.5 PM2.5 检测模块软件设计

对室内空气粉尘颗粒进行检测时 ,传感器 GP2Y1010AUOF 检测到的数值是空气中的 尘埃粒子大小 。当它检测结束后直接把检测的数值传送到到单片机,并通过显示屏显示 出来。程序流程如图 4. 5 所示。

23

结 论

随着生活水平提高,家居环境的安全性和舒适度越来越得到人们的重视。本文介绍了一种基于单片机的空气质量PM2.5测量系统设计。该系统可以实现对空气质量的PM2.5的采集,计算,显示等功能。报告从电路设计、程序设计,系统调试等几个方面详细介绍了整体设计的原理及过程,以及硬件制作过程中的一些注意事项。本设计综合利用单片机、传感器、数字电子和液晶显示器显示等方面技术,设计精巧,成本低,可以广泛应用到实际的生产生活等实践中去,具有很广的应用价值。

24

致 谢

本论文是在老师的悉心指导下完成的。渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严于律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。她不仅使我树立了远大的学术目标、掌握了基 本的研究方法,还使我明白了许多待人接物与为人处世的道理。本论文从选题到完成 ,每一步都是在苗老师的倾心指导下完成的,倾注了苗老师大量的心血 。在此,谨向苗老 师表示崇高的敬意和衷心的感谢 !

我的毕业课题是基于单片机的环境检测系统研究,是一个很有应用意义的小工程。作为一个本科生,我对实际的工程设计认识不够,经验不足 ,难免在设计的整体框架中,有很多的细节没有考虑全备 。在起初的设计过程中,很多知识我都不会,老师并没有指责我,而是给予我鼓励和很多宝贵的建议,并且悉心指导,给予我一个比较清晰的设计思路。沿着老师指导方法,我不断地尝试摸索 ,慢慢地掌握了设计的基本流程和思考的方法。我遇到了很多的难题,比如硬件器件的选择 ,功能的实现等。然而这样的问题并不是我一个能所能解决的 ,幸运的是有我的指导老师的悉心指导,所以一个 个看似复杂的问题便迎刃而解 。

最后再次深深地感谢我的老师老师,正是在老师的细心指导下、耐心帮助下,我才能比较顺利地完成毕业论文,所以非常感谢您,老师 ! 附件一:总体原理图 附件二:源程序代码

25

#include #include \ //#include\#define uchar unsigned char #define uint unsigned int sbit GP2Y_LED=P3^7; uint PM_dat=0; uint k,p,a; uchar time_num1=0; bit flag1=0; sbit RS=P2^5; sbit RW=P2^6; sbit EN=P2^7; uchar LCD1602_Table[]=\//LCD1602显示标尺 //0123456789abcdef uchar code DIS_TIM[16] ={\ extern void delayms(uint xms); void WRITE_LCD1602_DAT(uchar date) { EN=0; RS=1; P0=date; EN=1; delayms(2); EN=0; } void WRITE_LCD1602_COM(uchar date) 26

显示温湿度

{ EN=0; RS=0; P0=date; EN=1; delayms(2); EN=0; } void init_1602() { unsigned char h; RW=0; WRITE_LCD1602_COM(0x38); WRITE_LCD1602_COM(0x0c); WRITE_LCD1602_COM(0x06); WRITE_LCD1602_COM(0x01); WRITE_LCD1602_COM(0x80+0x40); for(h=0;h<16;h++) WRITE_LCD1602_DAT(DIS_TIM[h]); } /*************************************************** 函数名称:延时子函数 函数功能:按键消抖 ***************************************************/ void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) } void Main_display() for(j=110;j>0;j--);

27

{ WRITE_LCD1602_COM(0x80+0x40+7); WRITE_LCD1602_DAT(LCD1602_Table[PM_dat00/100]); WRITE_LCD1602_DAT(LCD1602_Table[PM_dat0/10]); WRITE_LCD1602_DAT(LCD1602_Table[PM_dat]); } void main() { uint PM_AD_buf=0; uint PM_AD_dat=0; uint AD_dat1=0; float PM_js=0.0; bit flag1=0; TMOD=0X02; TH0=216; //每40us进一次中断 TL0=216; ET0=1; TR0=0; GP2Y_LED=0; EA=1; init_1602(); 28

while(1) { GP2Y_LED=1; TR0=1; while(1) { } if(time_num1>5) break; AD_dat1=A_D(1); PM_AD_dat=PM_AD_dat*4+AD_dat1; PM_AD_dat/=5; PM_js=((float)(PM_AD_dat/256.0+0.01))*120000.0*0.035; // PM_js=((float)(PM_AD_dat/256.0-0.0356))*120000.0; } } void time0_int() interrupt 1 { time_num1++; if(time_num1==8) { } else if(time_num1>250) { time_num1=0; TR0=0; 29

GP2Y_LED=0; PM_dat=(uint)(PM_js); Main_display();

flag1=1; } } /***************************************************** 功能:将模拟信号转换成数字信号 ***************************************************/ sbit ADC0832_CS=P1^2; sbit ADC0832_CLK=P1^0; sbit ADC0832_DIO=P1^1; unsigned int A_D(bit flag) { unsigned char i; unsigned char dat; ADC0832_CS=1; //一个转换周期开始 ADC0832_CLK=0; //为第一个脉冲作准备 ADC0832_CS=0; //CS置0,片选有效 ADC0832_DIO=1; //DIO置1,规定的起始信号 ADC0832_CLK=1; //第一个脉冲 ADC0832_CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平 ADC0832_DIO=1; //DIO置1, 通道选择信号 ADC0832_CLK=1; //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 ADC0832_CLK=0; //第二个脉冲下降沿 if(!flag) ADC0832_DIO=0; //DI置0,选择通道0 else ADC0832_DIO=1; //DI置1,选择通道1 ADC0832_CLK=1; //第三个脉冲 ADC0832_CLK=0; //第三个脉冲下降沿 ADC0832_DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1 ADC0832_CLK=1; //第四个脉冲 30

for(i=0;i<8;i++) //高位在前 { ADC0832_CLK=1; //第四个脉冲 ADC0832_CLK=0; dat<<=1; //将下面储存的低位数据向右移 dat|=(unsigned char)ADC0832_DIO; //将输出数据DIO通过或运算储存在dat最低位 } ADC0832_CS=1; //片选无效 return dat; } //将读书的数据返回 31

本文来源:https://www.bwwdw.com/article/w366.html

Top