找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13514|回复: 0
打印 上一主题 下一主题
收起左侧

单片机PM2.5浓度检测仪设计论文下载(Word格式 可编辑)

[复制链接]
跳转到指定楼层
楼主
ID:274561 发表于 2018-1-10 22:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
摘要
因为空气质量的恶化,阴霾天气现象出现增多,危害现象加重。中国不少地区把阴霾天气现象并入雾一起作为灾害性天气预警预报。统称为“雾霾天气”。雾霾主要由PM2.5、PM10、PM0.1以及重金属镍砷铬铅等颗粒组成。有关雾霾的重大事件层出不穷,如1952年伦敦烟雾事件,伦敦杀人雾在四天内夺走了4000多条人命;还有2013年初北京肆虐横行的雾霾事件,轰动一时。因此,对PM2.5的测量显得越来越重要。本设计采用AT89C52单片机为控制中心,由GP2Y1010AU0F灰尘传感器测量空气粉尘浓度,LCD1602显示屏显示当前空气粉尘浓度。当空气中粉尘浓度达到所设定限度启动蜂鸣器自动报警,且能实时对应显示相应的LED灯,直观提醒当前的污染级别。该系统电路简单、工作稳定、集成度高,调试方便,测试精度高,具有一定的实用价值。

第一章、概述

1.1、设计的主要内容和意义

1.1.1、设计的主要内容

1.1.2、设计的主要意义

第二章、主控制器及主要器件

2.1、AT89S52单片机
2.2、A/D转换芯片ADC0832
2.3、1602LCD液晶显示屏
2.4、夏普粉尘传感器GP2Y1010AU0F

第三章、硬件电路设计

3.1、电路设计框图
3.2、系统概述
3.3、单片机最小系统
3.4、粉尘传感器电路设计
3.5、A/D转换
3.6、LCD显示模块设计
3.7、按键电路
3.8、报警电路
3.9、污染级别提醒电路和程序下载电路

第四章、程序设计及软件应用

4.1、主程序设计
4.2、主要子函数的设计
4.3、keil的应用
4.4、protel99se的应用
4.5、Proteus的应用

第五章、设计的应用及相关实验

5.1、PM2.5简介
5.1、PM2.5的主要来源
5.2、PM2.5的现状及常用数据
5.2、设计主要用途及应用的场景

5.2.1、主要用途

5.2.2、应用场景

5.3、应用设计进行的相关实验及结论分析

5.3.1、实验一 :东湖公园检测测

5.3.2、实验二:路口检测

5.3.3、实验三:常见生活场景检测

5.3.4、检测分析

5.3.5、应对方法

第六章、总结

致谢

参考文献

附录

附录1. 原件清单
附录2. 原理图
附录3 程序源代码

第一章、概述
1.1、设计的主要内容和意义
1.1.1、设计的主要内容
本设计提出的“PM2.5监测”的方案最基本的实现方法是由单片机、粉尘监测传感器、显示模块、报警器等模块组成的电路,GP2Y1010AU0F粉尘传感器采集空气中PM2.5的浓度值,经过AT89C52单片机处理后,在LCD1602液晶上显示,并且设置一个报警值,检测的PM2.5浓度值超过报警值后,蜂鸣器报警,报警值可以用按键手动调节。另外,该设计在实时检测浓度的同时,根据当前检测浓度亮起相应的灯,浓度范围分别为:
检测的PM2.5的浓度值在0-0.1,绿灯亮,表示环境良好;
检测的PM2.5的浓度值在0.1-0.3,黄灯亮,表示轻度污染;
检测的PM2.5的浓度值在0.3以上,红灯亮,表示重度污染;
1.1.2、设计的主要意义
21世纪的今天,科学技术的发展日新月异,科学技术的进步同时也带动了测量技术的发展,现代控制设备不同于以前,它们在性能和结构发生了翻天覆地的变化。我们已经进入了高速发展的信息时代,测量技术是当今社会的主流,广泛地深入到应用工程的各个领域。
因为空气质量的恶化,阴霾天气现象出现增多,危害现象加重。中国不少地区把阴霾天气现象并入雾一起作为灾害性天气预警预报。统称为“雾霾天气”。雾霾主要由PM2.5、PM10、PM0.1以及重金属镍砷铬铅等颗粒组成。在空气动力学和环境气象学中,颗粒物是按直径大小来分类的,粒径小于100微米的称为TSP(TotalSuspendedParticle),即总悬浮物颗粒;粒径小于10微米的称为PM10(PM为ParticulateMatter缩写),即可吸入颗粒物;粒径小于2.5微米的称为PM2.5,即可入肺颗粒物,它的直径仅相当于人的头发丝粗细的1/20。虽然PM2.5只是地球大气成分中含量很少的组分,但它与较粗的大气颗粒物相比,粒径小,富含大量的有毒、有害物质且在大气中的停留时间长、输送距离远,因而对人体健康和大气环境质量影响更大。
世界卫生组织发布的报告显示,无论是发达国家还是发展中国家,目前大多数城市和农村人口均遭受到颗粒物对健康的影响。高污染城市中的死亡率超出相对清洁城市的15%至20%。据统计,在欧洲,PM2.5每年导致386000人死亡,并使欧盟国家人均期望寿命减少8.6个月。人体的生理结构决定了对PM2.5没有任何过滤、阻拦能力,而PM2.5对人类健康的危害却随着医学技术的进步,逐步暴露出其恐怖的一面。气象专家和医学专家认为,由细颗粒物造成的灰霾天气对人体健康的危害甚至要比沙尘暴更大。粒径10微米以上的颗粒物,会被挡在人的鼻子外面;粒径在2.5微米至10微米之间的颗粒物,能够进入上呼吸道,但部分可通过痰液等排出体外,另外也会被鼻腔内部的绒毛阻挡,对人体健康危害相对较小;而粒径在2.5微米以下的细颗粒物,直径相当于人类头发的1/10大小,不易被阻挡。被吸入人体后会直接进入支气管,刺激呼吸道,干扰肺部的气体交换,从而引发咳嗽、呼吸困难、哮喘、慢性支气管炎等呼吸系统的疾病并导致心律不齐、非致命性心脏病等心血管方面的疾病。其中,老人、小孩以及心肺疾病患者是PM2.5污染的敏感人群。
因此,对PM2.5的监测与治理便显得越来越重要。

第二章、主控制器及主要器件
2.2、A/D转换芯片ADC0832
ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,
其目前已经有很高的普及率。学习并使用 ADC0832 可是使我们了解 A/D 转换器的原理,有助于我们单片机技术水平的提高。
ADC0832 具有以下特点:
①8 位分辨率;
②双通道 A/D 转换;
③输入输出电平与 TTL/CMOS 相兼容;
④5V 电源供电时输入电压在 0~5V 之间;
⑤工作频率为 250KHZ,转换时间为 32μS;
⑥一般功耗仅为 15mW;
⑦8P、14P—DIP(双列直插)、PICC 多种封装;
⑧商用级芯片温宽为0°C to +70°C,工业级芯片温宽为−40°C to +85°C;
芯片顶视图:










芯片接口说明:
CS_:片选使能,低电平芯片使能。
CH0:模拟输入通道 0,或作为 IN+/-使用。
CH1:模拟输入通道 1,或作为 IN+/-使用。
GND:芯片参考 0 电位(地)。
DI:数据信号输入,选择通道控制。
DO:数据信号输出,转换数据输出。
CLK:芯片时钟输入。
Vcc/REF:电源输入及参考电压输入(复用)。

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

2.3、1602LCD液晶显示屏
LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。


LCD1602主要技术参数
显示容量为16×2个字符;
芯片工作电压为4.5~5.5V;
工作电流为2.0mA(5.0V);
模块最佳工作电压为5.0V;
字符尺寸为2.95×4.35(W×H)mm。
3.1.2 LCD1602的引脚说明
LCD1602采用标准的14脚接口,其中:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:V0为液晶显示器对比度调整端。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:空脚
3.1.3控制指令说明
1602液晶模块内部的控制器共有11条控制指令,如3.8表所示:
表3.8 控制命令表
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRA或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读  出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清显示,指令码01H,光标复位到地址00H位置
指令2:光标复位,光标返回到地址00H
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符
指令7:字符发生器RAM地址设置
指令8:DDRAM地址设置
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据
指令11:读数据
2.4、夏普粉尘传感器GP2Y1010AU0F
日本夏普公司灰尘传感器GP2Y1010AU,体积小巧,灵敏度高,可以用来测量0.8微米以上的微小粒子,可用于室内环境中烟气、粉尘、花粉等浓度的检测。此款产品不但可以检测出单位体积粒子的绝对个数,而且内置气流发生器,可以自行吸入外部空气。灰尘传感器GP2Y1010AU安装保养方便,使用寿命长,精度高,稳定性好。其内部对角安放着红外线发光二极管和光电晶体管,使得其能够探测到空气中尘埃反射光,即使非常细小的如烟草烟雾颗粒也能够被检测到,通常在空气净化系统中应用。该传感器具有非常低的电流消耗(最大20mA,典型值11mA),可使用高达7VDC。该传感器输出为模拟电压,其值与粉尘浓成正比。      


夏普灰尘传感器GP2Y1010AU0F


传感器内部结构

应用领域:
1、空气净化器和空气清新机;
2、空调;
3、空气质量监控仪;
4、空调等相关产品。
主要参数:
灵敏度:0.5V/(0.1mg/m3)
输出电压:0.9V(TYP)
消耗电流:11mA
工作温度:-10~65℃
存储温度:-20~80℃
第三章、硬件电路设计
3.1、电路设计框图


3.2、系统概述
本电路是由AT89S52单片机为控制核心,另外主要通过6个模块的电路设计实现功能,他们分别是LCD显示模块、粉尘传感器、A/D转换、按键电路、报警电路、污染级别提醒电路。
系统原理图如下:

3.3、单片机最小系统
单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51系列单片机来说, 最小系统一般应该包括: 单片机、时钟电路、复位电路、输入/ 输出设备等。

单片机最小系统框图

时钟电路:
在设计时钟电路之前,让我们先了解下51单片机上的时钟管脚:
XTAL1(19 脚) :芯片内部振荡电路输入端。
XTAL2(18 脚) :芯片内部振荡电路输出端。
XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。图3中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2 ~ 12MHz 之间任选,甚至可以达到24MHz 或者更高,但是频率越高功耗也就越大。在本实验套件中采用的11.0592M 的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 ~ 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 ~ 50pF 之间。通常选取33pF的陶瓷电容就可以了。
另外值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB) 时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。检测晶振是否起振的方法可以用示波器可以观察到XTAL2 输出的十分漂亮的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是有效值)XTAL2 和地之间的电压时,可以看到2V左右一点的电压。
    时钟电路如图所示。

时钟电路图

复位电路:
在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
MCS-5l 系列单片机的复位引脚RST( 第9管脚) 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种基本形式:上电自动复位和开关复位 。上电瞬间 ,电容两端电压不能突变 ,此时电容的负极和 RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0 ,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后 ,通过按下按键使RST管脚出现高电平达到手动复位的效果。
    复位电路图如图所示。

                        图4 复位电路图
EA/VPP(31 脚)的功能和接法:
51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器;当EA保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。
对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。
在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器。这一点一定要注意,很多初学者常常将EA 管脚悬空,从而导致程序执行不正常。
P0口外接上拉电阻:
51 单片机的P0 端口为开漏输出,内部无上拉电阻。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,

要使“1”信号(即高电平)正常输出,必须外接上拉电阻,如图所示。
图5  P0口外接上拉电阻
另外,避免输入时读取数据出错,也需外接上拉电阻。在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q = 0, Q = 1,场效应管V1 开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q = 1, Q = 0,场效应管V1 截止.如外接引脚信号为低电平, 从引脚上读入的信号就与从锁存器读入的信号不同。所以当P0口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。
总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。在本实验套件中采用的是外加一个10K 排阻。此外,51 单片机在对端口P0—P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。
3.4、粉尘传感器电路设计
根据粉尘传感器GP2Y1010AU的规划书中对管脚的描述:


对应的管脚为:


故粉尘传感器的电路设计如图:
粉尘传感器GP2Y1010AU通过对空气粉尘颗粒浓度的检测输出模拟电压,其

值与粉尘浓度成正比。故在仿真原理图中,我们用可变电阻设计的局部限压电路代替传感器:

3.5、A/D转换

ADC0832的封装机管脚说明:

CS_:片选使能,低电平芯片使能。
CH0:模拟输入通道 0,或作为 IN+/-使用。
CH1:模拟输入通道 1,或作为 IN+/-使用。
GND:芯片参考 0 电位(地)。
DI:数据信号输入,选择通道控制。
DO:数据信号输出,转换数据输出。
CLK:芯片时钟输入。
Vcc/REF:电源输入及参考电压输入(复用)
电路设计如图所示:

3.6、LCD显示模块设计
    系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,根据各管脚的功能电路设计如下:

仿真电路图:

3.7、按键电路
     本次设计的按键电路使用了单片机的P3.3,P3.4,P3.5三个口。
设计如下图:

3.8、报警电路

    本次设计的报警电路的控制输出使用了单片机的P3.6口,设计如下:

3.9、污染级别提醒电路和程序下载电路
     根据不同的浓度范围提醒当前污染级别的电路,采用了绿,黄,红三个LED灯,使用了单片机的P2.2,P2.1,P2.0实现提醒功能,设计如下:

为方便程序的烧录,单片机的程序下载电路设计如下:

第四章、程序设计及软件应用
4.1、主程序设计
   主程序代码:
/*****主函数*****/
void main(void)
{
              InitTimer();            //初始化定时器
              LED=1;
              LED2=1;
              LED3=1;
              LED4=1;
              BEEP=0;
              lcd_init();             //初始化显示
              delay1ms(100);
              lcd_init();             //初始化显示
              delay1ms(100);
while(1)
{
checkkey();              //按键检测
if(set_st==0)
{
              wr_com(0x0c);
                 if(FlagStart==1)      //1次数据采集完成
              {
                            num++;
                            ADC_Get[num]=abc;
              if(num>9)
                            {
                                          num=0;
                                          DUST=Error_Correct(ADC_Get,10);                            //求取10次AD采样的值
                                          DUST_Value=(DUST/256.0)*5000;                               //转化成电压值MV
                                            DUST_Value=DUST_Value*0.17-0.1;     //固体悬浮颗粒浓度计算 Y=0.17*X-0.1 X--采样电压V
                                            if(DUST_Value<0)                    DUST_Value=0;
                                          if(DUST_Value>760)              DUST_Value=760;              //限位
                                            DUST=(uint)DUST_Value;
                            }
                TL0 = (65536-10000)/256;   
                TH0 = (65536-10000)%256;
                TR0 = 1;                                //开启定时器0
                EA = 1;
                FlagStart=0;
              }
    Alarm();                                 //报警检测
}
disp(DUST);                                 //显示粉尘浓度值
baojing();                                  //显示报警值

if(set_st==1)                               //报警值闪动
{
              wr_com(0xca);
              wr_com(0x0d);
              delay1ms(150);
}

}
}/*****END*****/
说明:详细子函数请见附录3
主程序框图:

4.2、主要子函数的设计
除主程序外,程序设计中还定义了一些函数,方便主程序调用,主要有液晶初始化程序,显示函数,报警显示,报警子函数,按键检测函数,A/D转换函数,中值滤波等。以下主要介绍A/D转换函数。
单片机对ADC0832 的控制原理:
正常情况下ADC0832 与单片机的接口应为 4条数据线,分别是 CS、CLK、DO、DI。但由于 DO端与 DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO 和 DI并联在一根数据线上使用。(见图 3)当 ADC0832未工作时其CS 输入端应为高电平,此时芯片禁用,CLK 和
DO/DI 的电平可任意。当要进行 A/D转换时,须先将 CS使能端置于低电平并
且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯
片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI端输入通道功能选择的
数据信号。在第 1 个时钟脉冲的下沉之前 DI端必须是高电平,表示启始信号。
在第 2、3 个脉冲下沉之前 DI端应输入 2位数据用于选择通道功能,其功能项
见下表 。

如表 1 所示,当此 2 位数据为“1”、“0”时,只对 CH0 进行单通道转换。
当 2 位数据为“1”、“1”时,只对 CH1进行单通道转换。当 2 位数据为“0”、“0”时,将 CH0作为正输入端 IN+,CH1作为负输入端 IN-进行输入。当 2 位数据为“0”、“1”时,将 CH0作为负输入端 IN-,CH1作为正输入端 IN+进行输入。到第 3 个脉冲的下沉之后 DI端的输入电平就失去输入作用,此后 DO/DI端则开始利用数据输出DO 进行转换数据的读取。从第4个脉冲下沉开始由 DO端输出转换数据最高位DATA7,随后每一个脉冲下沉 DO端输出下一位数据。直到第11个脉冲时发出最低位数据 DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第 11个字节的下沉输出 DATD0。随后输出 8位数据,到第 19 个脉冲时数据输出完成,也标志着一次 A/D 转换的结束。最后将 CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

更详细的时序说明请下表:
作为单通道模拟信号输入时ADC0832的输入电压是 0~5V且8位分辨率时的电压精度为 19.53mV。如果作为由 IN+与 IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行 IN+与 IN-的输入时,如果 IN-的电压大于 IN+的电压则转换后的数据结果始终为00H。
ADC0832 数据读取程序流程:


实际程序设计代码为:
/***********AD0832转换程序******************/
uchar ADC0832(bit mode,bit channel)     //AD转换,返回结果
{
              uchar i,dat,ndat;

              ADCS = 0;//拉低CS端
              _nop_();
              _nop_();

              ADDI = 1;              //第1个下降沿为高电平
              ADCLK = 1;//拉高CLK端
              _nop_();
              _nop_();
              ADCLK = 0;//拉低CLK端,形成下降沿1
              _nop_();
              _nop_();

              ADDI = mode;              //低电平为差分模式,高电平为单通道模式。            
              ADCLK = 1;//拉高CLK端
              _nop_();
              _nop_();
              ADCLK = 0;//拉低CLK端,形成下降沿2
              _nop_();
              _nop_();

              ADDI = channel;              //低电平为CH0,高电平为CH1            
              ADCLK = 1;//拉高CLK端
              _nop_();
              _nop_();
              ADCLK = 0;//拉低CLK端,形成下降沿3

              ADDI = 1;//控制命令结束(经试验必需)
              dat = 0;
              //下面开始读取转换后的数据,从最高位开始依次输出(D7~D0)
              for(i = 0;i < 8;i++)
              {
                            dat <<= 1;
                            ADCLK=1;//拉高时钟端
                            _nop_();
                            _nop_();
                            ADCLK=0;//拉低时钟端形成一次时钟脉冲
                            _nop_();
                            _nop_();
                            dat |= ADDO;
              }
              ndat = 0;                  //记录D0
              if(ADDO == 1)
              ndat |= 0x80;
              //下面开始继续读取反序的数据(从D1到D7)
              for(i = 0;i < 7;i++)
              {
                            ndat >>= 1;
                            ADCLK = 1;//拉高时钟端
                            _nop_();
                            _nop_();
                            ADCLK=0;//拉低时钟端形成一次时钟脉冲
                            _nop_();
                            _nop_();
                            if(ADDO==1)
                            ndat |= 0x80;
              }               
              ADCS=1;//拉高CS端,结束转换
              ADCLK=0;//拉低CLK端
              ADDI=1;//拉高数据端,回到初始状态
              if(dat==ndat)
              return(dat);
              else
              return 0;  
}


4.3、keil的应用
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。   Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。Keil_c软件界面如图:

该软件是一款集编程和仿真于一体的软件,它支持汇编、C语言及二者的混合编程。

4.4、protel99se的应用
Protel99SE是PORTEL公司在80年代末推出的EDA软件。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。
Protel99SE软件的特点:
  • 可生成30多种格式的电气连接网络表;
  • 强大的全局编辑功能;
  • 在原理图中选择一级器件,PCB中同样的器件也将被选中;
  • 同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络
  • 既可以进行正向注释元器件标号(由原理图到PCB),也可以进行反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性;
  • 满足国际化设计要求(包括国标标题栏输出,GB4728国标库);
  • 方便易用的数模混合仿真(兼容SPICE 3f5);
  • 支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件;
  • PCB可设计32个信号层,16个电源-地层和16个机加工层;
  • 强大的规则驱动设计环境符合在线的和批处理的设计规则检查;
  • 智能覆铜功能覆铀可以自动重铺;
  • 提供大量的工业化标准电路板做为设计模版;
  • 放置汉字功能;
  • 可以输入和输出DXFDWG格式文件,实现和AutoCAD等软件的数据交换;
  • 智能封装导航(对于建立复杂的PGABGA封装很有用);
  • 方便的打印预览功能,不用修改PCB文件就可以直接控制打印结果;


4.5、Proteus的应用
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。



主界面及仿真效果如下:

Proteus主界面

仿真图
第五章、设计的应用及相关实验
5.1、PM2.5简介
PM2.5是指大气中直径小于或等于2.5微米的颗粒物,也称为可入肺颗粒物。它的直径还不到人的头发丝粗细的1/20。虽然PM2.5只是大气成分中含量很少的组分,但它对空气质量和能见度等有重要的影响。与较大的大气颗粒物相比,PM2.5粒径小,富含大量的有毒、有害物质且在大气中的停留时间长、输送距离远,因而对人体健康和大气环境质量的影响更大。2012年2月,国务院同意发布新修订的《环境空气质量标准》增加了PM2.5监测指标。
PM,英文全称为particulate matter(颗粒物)。科学家用PM2.5表示每立方米空气中这种颗粒的含量,这个值越高,就代表空气污染越严重。可吸入颗粒物又称为PM10,指直径大于2.5微米、等于或小于10微米,可以进入人的呼吸系统的颗粒物;总悬浮颗粒物也称为PM100,即直径小于或等于100微米的颗粒物
PM2.5 即细颗粒物,细颗粒物又称细粒、细颗粒、PM2.5。细颗粒物指环境空气中空气动力学当量直径小于等于 2.5 微米的颗粒物。它能较长时间悬浮于空气中,其在空气中含量浓度越高,就代表空气污染越严重。虽然PM2.5只是地球大气成分中含量很少的组分,但它对空气质量和能见度等有重要的影响。与较粗的大气颗粒物相比,PM2.5粒径小,面积大,活性强,易附带有毒、有害物质(例如,重金属、微生物等),且在大气中的停留时间长、输送距离远,因而对人体健康和大气环境质量的影响更大。
2013年2月,全国科学技术名词审定委员会将PM2.5的中文名称命名为细颗粒物。细颗粒物的化学成分主要包括有机碳(OC)、元素碳(EC)、硝酸盐、硫酸盐、铵盐、钠盐(Na+)等。

5.1、PM2.5的主要来源
颗粒物的成分很复杂,主要取决于其来源。主要有自然源和人为源两种,但危害较大的是后者。在学术界的分为一次气溶胶(Primary aerosol)和二次气溶胶(Secondary aerosol)两种。
自然源:
自然源包括土壤扬尘(含有氧化物矿物和其他成分)海盐(颗粒物的第二大来源,其组成与海水的成分类似)、植物花粉、孢子、细菌等。自然界中的灾害事件,如火山爆发向大气中排放了大量的火山灰,森林大火或裸露的煤原大火及尘暴事件都会将大量细颗粒物输送到大气层中。
人为源:
人为源包括固定源和流动源。固定源包括各种燃料燃烧
源,如发电、冶金、石油、化学、纺织印染等各种工业过程、供热、烹调过程中燃煤与燃气或燃油排放的烟尘。流动源主要是各类交通工具在运行过程中使用燃料时向大气中排放的尾气。
PM2.5可以由硫和氮的氧化物转化而成。而这些气体污染物往往是人类对化石燃料(煤、石油等)和垃圾的燃烧造成的。在发展中国家,煤炭燃烧是家庭取暖和能源供应的主要方式。没有先进废气处理装置的柴油汽车也是颗粒物的来源。燃烧柴油的卡车,排放物中的杂质导致颗粒物较多。
在室内,二手烟是颗粒物最主要的来源。颗粒物的来源是不完全燃烧、因此只要是靠燃烧的烟草产品,都会产生具有严重危害的颗粒物,使用品质较佳的香烟也只是吸烟者的自我安慰,甚至可能因为臭味较低,而造成更大的危害;同理也适用于金纸燃烧、焚香及燃烧蚊香。但是炒菜5分钟,PM2.5增加20倍系误读。
大气化学反应:
除自然源和人为源之外,大气中的气态前体污染物会通过大气化学反应生成二次颗粒物,实现由气体到粒子的相态转换。如:

其中气态硫酸来自OH自由基氧化二氧化硫SO2的气态反应。[2]盐的水合物:如xCl·yH2O、xNO3·yH2O、xSO4·yH2O,随着湿度的变化,水合物对PM2.5的影响较大,水不仅与盐化合物生成水合物,由于湿度的改变还形成了盐的微小溶液液滴。
5.2、PM2.5的现状及常用数据
     我国城市环境空气颗粒物污染呈现多类型污染的态势,可以分为:传统的煤烟型,如乌鲁木齐、兰州、太原等(尤其是冬季);煤烟、扬尘和机动车混合型,如郑州、石家庄等;复合型,如北京、天津、广州等。随着经济的迅猛发展,国外数十年发生的大气污染问题在我国多个城市集中出现,呈现复合、压缩形态。目前我国超过2/3的城市空气质量不达标,已进入大范围生态退化和复合性环境污染的阶段。如果不采取有效的控制措施,国内的大部分城市最终都将发展成为复合型的颗粒物污染状态。PM2.5是表征大气复合型污染的首要污染物。
如今,中国已成为PM2.5污染最严重的地区之。
常用指标及数据:
细颗粒物的标准,是由美国在1997年提出的,主要是为了更有效地监测随着工业化日益发达而出现的、在旧标准中被忽略的对人体有害的细小颗粒物。细颗粒物指数已经成为一个重要的测控空气污染程度的指数。
到2010年底为止,除美国和欧盟一些国家将细颗粒物纳入国标并进行强制性限制外,世界上大部分国家都还未开展对细颗粒物的监测,大多通行对PM10进行监测。




PM2.5检测网空气质量新标准:
根据PM2.5检测网的空气质量新标准,24小时平均值标准值分布如下:
空气质量等级
24小时PM2.5平均值标准值
0~35
35~75
轻度污染
75~115

中度污染
115~150
重度污染
150~250
严重污染
大于250
及以上

世界卫生组织(WHO)2005年《空气质量准则》
项目
年均值
日均值
准则值
10
25
过渡期目标1
35
75
过渡期目标2
25
50
过渡期目标3
15
37.5
5.2、设计主要用途及应用的场景
5.2.1、主要用途
本设计主要可用于室内和户外的空气质量(主要是PM2.5)的检测,可调节的报警浓度的设计,可用于长期检测和提醒PM2.5浓度。
5.2.2、应用场景
办公室空气检测和提醒,公共场合控烟,空调和通风口处监测,气象台,观测站,马路口监测为期排量

5.3、应用设计进行的相关实验及结论分析
5.3.1、实验一 :东湖公园检测测
日期
7:00
12:30
20:00
平均
5月31日
0.07
0.12
0.09
0.093
6月1日
0.09
0.14
0.10
0.11
6月2日
0.08
0.15
0.10
0.11
                                                (单位:毫克/立方米)
5.3.2、实验二:路口检测
时间/地点
7:00
12:30
20:00
平均
6.1/罗湖区东湖路
0.18
0.15
0.19
0.173
6.2/罗湖区东湖路
0.20
0.15
0.20
0.183
6.3/深南大道科技园段
0.28
0.22
0.32
0.27
6.4/深南大道科技园段
0.29
0.21
0.31
0.27
(单位:毫克/立方米)
5.3.3、实验三:常见生活场景检测
时间/地点
7:00
12:30
20:00
平均
6.1/卧室
0.07
0.10
0.09
0.86
6.2/卧室
0.07
0.10
0.08
0.83
6.3/办公室
0.10
0.11
0.11
0.106
6.4/办公室
0.10
0.10
0.10
0.10
6.3/地铁高新园站
0.12
0.10
0.11
0.11
6.4/地铁高新园站
0.11
0.10
0.11
0.106
                                               (单位:毫克/立方米)
5.3.4、检测分析
实验一可以看出,在树木植被比较好的地方可以达到净化空气的效果,由于记录数据的三天为端午小长假,公园的车流和人流都比较多,但是晚上PM2.5值开始下降,说明了植被有助于净化空气。
实验二是去了两个车流量不一的两个地点比较,后者车流量大,PM2.5数值较高,两个地点均出现早晚数值较高,原因可能是因为早晚车流的高峰期引起的。
实验三责验证了该设计在日常生活中可以用于对我们进场处在的生活场景进行监测,数据结果都还算比较良好。
5.3.5、应对方法
治理方法:多植树,减少机动车的排放量,促进清洁能源开发,监督工厂排放等
生活应对雾霾方法:1、雾霾天气少开窗,最好不出门或晨练;2、外出戴专业防尘口罩;3、多喝桐桔梗茶、桐参茶、桐桔梗颗粒、桔梗汤等“清肺除尘”茶饮;4、少量补充维生素D ;5、饮食清淡多喝蜂蜜水;7、尽量减少吸烟甚至不吸烟。
第六章、总结
随着雾霾天气的肆虐,我们有理由且必要的做一些措施来注意我们身边空气的PM2.5,而本设计这是基于这点,应用所学的知识,制作一个经济,简单,实用的多功能PM2.5浓度检测仪。
在设计中GP2Y1010AU0F粉尘传感器采集空气中PM2.5的浓度值,经过AT89C52单片机处理后,在LCD1602液晶上显示,并且设置一个报警值,检测的PM2.5浓度值超过报警值后,蜂鸣器报警,报警值可以用按键手动调节。另外,该设计在实时检测浓度的同时,根据当前检测浓度亮起相应的灯,直观的能告知观测者当前的浓度。
在本设计中,主要的难点在于传感器的实用和A/D转换,需要阅读相应的资料才能做出设计,对于资料的应用和学习能力是很重要,这也算是这次设计给我带来的锻炼。
当然在设计完成后,本着一开始设计的实用性的出发点,进行了三个检测试验,一方面检测设计的可操作性和实用性,另一方面也是让自己对PM2.5的产生有了直观的了解。
最后很高心能够通过自己的努力,运用所学顺利完成了该设计。

致谢
本论文是在余老师的悉心指导下完成的。余老师专业知识渊博,耐心细致的教导,在老师的点拨下,完善了设计的相关功能,在老师的帮助下,解决了在制作设计遇到的各种难题,除了专业知识,余老师也教会了在今后的职业生涯中也要做到谦虚,谨慎,认真的态度,在此衷心的感谢余老师的教导和帮助。
非常感谢三年来把我领进门,手把手耐心教授我们知识的各位老师,正是你们的教导,学生今天才能运用自己的所学去设计并完成相关的作品。
感谢学校对我的培养,学生深知作为一名深职学子的荣誉,使命和责任,感谢学校让我能有这份能力去面对未来职业生涯的挑战!

参考文献
[1] 刘宏斌.我国PM2.5的现状与防治对策.武汉:湖北经济学院学报.2012.
[2] 王幸之,钟爱琴.AT89系列单片机原理与接口技术.北京:北京航空航天大学出版社.2004.
[3] 郑锋,王巧芝.51单片机应用系统典型模块开发大全.北京:中国铁道出版社.2011.
[4] ATMEL.8-bit Microcontroller with 8K Bytes In-System Programmable Flash AT89S52.1999
[5] 李全利.单片机原理及应用技术.北京:高等教育出版社.2009.
[6] 罗亚萍.基于AT89S52单片机的室内有害气体监控系统.山西电子技术.2011.
[7] 范红刚,魏学海.51单片机自学笔记.北京:北京航空航天大学出版社.2010.
[8] 杨将新,李华军.单片机程序设计及应用从基础到实践.北京.机械工业出版社.2006.
[9] 李维提,郭强.液晶显示应用技术.北京:电子工业出版社.2006. [15] 李学海.经典[10]8051单片机轻松入门与上手.北京:清华大学出版社.2009
[11]夏普粉尘传感器GP2Y1010AU0F使用说明
[10]A/D转换芯片ADC0832产品规格书

附录
附录1. 原件清单



附录2. 原理图


附录3 程序源代码(见附件)

完整的Word格式文档51黑下载地址:
单片机PM2.5浓度检测仪毕业设计论文豪华版.doc (1.86 MB, 下载次数: 69)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表