




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)任务书(2015届)题目:PM2.5空气检测仪的设计与制作专业名称:应用电子技术姓名:学号:班级:应用电子技术指导教师:2014年09月22日目录TOC\o"1-5"\h\z一绪论11.1前言11.2选题背景11.3国内外发展状态21.3.1粉尘测量方法21.3.2粉尘检测仪的性能与优点21.3.3研究的意义31.4本文主要工作3二PM2.5粉尘浓度测试仪设计系统42.1系统的功能和技术指标42.2工作原理42.3程序框图和流程图6PM2.5粉尘测试仪系统硬件设计83.1单片机部分硬件设计83.2信号采集电路103.3LED1602液晶屏显示电路113.4声光提醒报警电路123.5智能换风机电路143.6按键电路14PM2.5粉尘测试仪系统软件设计154.1系统程序流程图154.2浓度参考值的键盘设定程序设计164.3信号采集部分的程序设计174.4蜂鸣器报警部分程序设计184.5LED1602液晶显示部分的程序设计19五PM2.5粉尘检测仪的测试结果19结论21参考文献22附录一:系统程序23致谢29#4.2浓度参考值的键盘设定程序设计因为不同环境中粉尘浓度不同,粉尘流动量也不一样,人在不同环境中工作所承受的最大粉尘量也不一样,所以在更换环境时要设置不同的粉尘浓度参考值(该环境中能接受粉尘浓度最大值),当浓度超过所设定值时,粉尘检测仪报警,我们根据报警就可以采取相应措施或使人员撤离工作现场或动力降低粉尘浓度。本模块利用独立按键方式通过三个独立按键累加输入参考值,通过单片机比较采集的数据与参考值来控制蜂鸣器是否报警。同时可以通过独立按键来进行参考值和当前浓度值的显示切换。4.2.1键盘扫描的设计在单片机应用系统中,扫描键盘只是CPU的工作任务之一。在实际应用中要想做到既能及时响应键操作,又不过多的占用CPU的工作时间,就要根据应用系统中的CPU的忙闲情况,选择好键盘的工作方式,本次设计主要是设计的小型系统CPU工作比较空闲,所以用编程扫描方式。(1)键盘扫描程序的功能判别键盘上有无键按下。其方法为扫描键盘接入口,若全为“1”,则键盘无键按下,若不全为“1”,则有键按下。去除键的抖动影响。其方法为判断到有键按下后,软件延时一段时间(一般为10ms左右)后,再判断键盘状态,如果仍为按下状态,则认为有一个确定的键按下,否则按键抖动处理。当键盘释放时,判断到有键释放也软件延时一段时间,如果仍为键释放状态,则认为键确实释放了。求按键位置,对各键进行逐个扫描,最后却定按下的键号。
键盘扫描程序流程图如4-2图所示。N找到闭合键NN闭合键释放返回有键闭合开始.建立无效标志键盘扫描计算键值延时去抖扫描键盘N找到闭合键NN闭合键释放返回有键闭合开始.建立无效标志键盘扫描计算键值延时去抖扫描键盘建立有效标志图4-2键盘扫描程序流程4.3信号采集部分的程序设计因为粉尘浓度是连续变化的模拟信号,通过粉尘采集器可以将环境中的粉尘浓度转换为模拟电信号,然后通过信号放大器将转换来的电信号放大成0~5V的电压信号。4.3.1数据采集流程图设计粉尘数据采集模块流程图如图4-3所示。
_Y_■结束图4-3粉尘数据采集模块流程4.4蜂鸣器报警部分程序设计该部分是当采集到的环境中的粉尘浓度大于参考值时,单片机就会驱动蜂鸣器报警,然后采取相应措施降低粉尘浓度或者使人员撤离工作现场。该蜂鸣器是通过P3"口与单片机相连。图4-4报警电路流程设计4.5LED1602液晶显示部分的程序设计对于人机交互式单片机系统来说,不仅需要响应用户输入,同时也需要将一些测控信息输出显示。这些显示信息可以提供实时的数据或图形结果,以便于掌握系统的状态并进行分析处理。目前,在单片机中最常用的是LED1602液晶显示屏。其成本低廉、使用简便,可以显示数字或几个特定的字符。4.5.1显示流程图设计LED1602液晶显示流程图如下图4-5所示。图4-5LED1602液晶显示流程五PM2.5粉尘检测仪的测试结果及结论5.1调试调试过程中首先要检测的就是硬件电路的设计原理是否正确、能否达到预期效果以及实现方法是否简便等等;其次在焊接好难有线电路之后,认真检查电路的焊接情况。这次采用的是分块调试的方法,PM2.5粉尘检测电路,控制电路以及单片机控制电路进行调试。在对每个模块的进行调试过程中又采用了由局部到整体,由简单到复杂的调试方法,最后再将各个模块总和成一个整体。
在调试过程中遇到的问题有:由于在焊电路之前没有彻底调查过电阻的大小对PM2.5粉尘检测电路的影响,导致一直以为传感器不工作,显示屏是没有数据显示,后来换了合适的电阻,数据也检测出来了;在解码程序的编写过程中,经过多次的程序修改与硬件调试,基本上能很好地实现自动报警,智能开启换风机,及时改善空气环境的功能。解决:对电路进行测试,如对单片机的输出管脚信号进行测试,观察是否存在漏焊,虚焊,或者元件损坏的现象。若无此问题查看烧写的程序是否正确无误,对程序进行认真修改。当显示亮度不好时阻器的阻值,直到看到合适的亮度为止。经过多次的反复调试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。同时在软件的编程方面得到更到的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。如下为硬件实物图:PM2.5空气检测仪的设计与制作-示开关电源声光报警系统,当超过预定值时自动报警GP2Y1010AU0F粉尘传感器每间隔10S更换一次采集浓度值检测更准确PM2.5空气检测仪的设计与制作-示开关电源声光报警系统,当超过预定值时自动报警GP2Y1010AU0F粉尘传感器每间隔10S更换一次采集浓度值检测更准确结论经过一番努力后,粉尘测试仪设计的终于完成。在设计该粉尘测试仪的过程中,我首先按照粉尘检测仪的功能设计出其大致的电路电路方框图,然后分析各个功能模块:信号采集模块、信号转换模块、LED1602显示模块的。选好材后画出电路原理图,再到编写程序,最后进行仿真,这次课题设计可以说成功完成。说到编写程序是可花了不少功夫,因为该设计需要精确到小数位的个位,这个可给我带来了苦恼,在同学的帮助下最终解决了这个问题。实验结果表明此粉尘测试仪实现后具有读取方便、显示直观、电路简洁等优点,符合电子仪器仪表的发展趋势,具有良好的市场前景。在整个设计过程中,充分发挥了人的主观能动性,自主学习,学到了许多没学到的知识。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考查资料,和同学讨论,向老师请教,理清了思路,完成对程序的编写。通过设计提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。最终较好的完成了设计,达到了预期的目的。但是由于个人能力的原因,这个没能解决所显示的数字有些闪动的效果,以及焊接技能需要加强锻炼在功能方面是显得非常的简单,只实现了三个最基本的功能,还有许多不足和可以扩展的地方。例如实现粉尘检测系统智能化、人性化等,这些有待以后来弥补,还望各位老师予以指正和修改。参考文献何立民•单片机应用技术选编[M].北京:北京航空航天大学出版社,1993:23-24李卫东,李铁军,刘华,曹福德HG-HC智能烟尘粉尘测量仪[J].仪器仪表学报,2004,董爱华,余琼芳•煤矿井下粉尘信号光电检测电路的研究J]•仪器仪表学报,2003,[5]董晓红•同步粉尘测试仪的设计与实现[D].成都:四川大学.2004梅丽凤,王艳秋,汪琉铎,任国臣•单片机原理及接口技术[M].北京:清华大学出版社,2009:310-321.唐娟•粉尘浓度在线监测技术的现状及发展趋势[J].矿业安全与保护,2009:69-74.吴泉英•数字式粉尘测试仪中的信号处理[J].苏州城建环保学院学报,1999:89-100
附录一:系统程序主程序//头文件#include"STC12c5A.h"#include"1602.h"#include"2402.h"#defineucharunsignedchar#defineuintunsignedint//定义按键sbitKey_Up_=P3"4;sbitKey_Down=P3"5;//定义风扇sbitfs=P2"0;//定义蜂鸣器LED报警sbitDUST_Warn=P3"3;sbitLED1=P2"3;sbitLED2=P2"4;//定义标识ucharFlagStart=0;sbitLED=P3"2;//全局变量定义,//P「0//固体颗粒的阈值//P「0//固体颗粒的阈值uintCounter;uintDUST_SET;floatDUST_Value;ucharADC_Get[10]={0};//定义AD采样数组ucharnum=0;//函数声明voidData_Init();voidTimernit();voidADC_Init();0_Init();voidPort_IucharGetADVal(uchar);voidKeyProcess(void);//数据初始化voidData_Init(){Counter=0;FlagStart=0;DUST_Value=0;DUST_Warn=1;LED=0;fs=1;}//DS―-185页定时器初始化定时10msvoidTimerO_Init(){//AUXR=0x80;//Timeworkin1TmodeTMOD=1;TL0=(65536-30000)/256;TH0=(65536-30000)%256;TR0=1;ET0=1;EA=1;}//定时器0中断voidTimer0_ISR(void)interrupt1using0{uinti,j;TL0=(65536-30000)/256;TH0=(65536-30000)%256;LED=1;//开启传感器的LEDfor(j=0;j〈222;j++);//0.28ms//延时0.28msADC_Get[num]=GetADVal(ADC);//开启ADC采集num++;if(num>9){FlagStart=1;num=0;TR0=0;//先关闭定时器0EA=0;}//采集10次,关闭定时器0,进行数据处理//for(j=0;j〈25;j++);LED=0;//关闭传感器LED//端口功能设置voidPort_Init(){P1M0=0x03;//DS—88页IO口功能设置,设为开漏11P1M1=0x03;//}voidADC_Init()//DS-282页{P1ASF=0x03;//开启通道0,1ADC_RES=0;ADC_CONTR=ADC_POWER|ADC_SPEEDLL;//每次转换需要420个时钟周期delay_ms(10);}//进行AD转换,得到当前8位AD值ucharGetADVal(ucharCH){ADC_CONTR=ADC_POWER|ADC_SPEEDLL|CH|ADC_START;//delay_ms(1);while(!(ADC_CONTR&ADC_FLAG));//等待ADC转换结束ADC_CONTR&=~ADC_FLAG;//关闭ADCreturnADC_RES;}//中值滤波//算法:先进行排序,然后将数组的中间值作为当前值返回。ucharError_Correct(uchar*str,ucharnum){unsignedchari=0;unsignedcharj=0;ucharTemp=0;//排序for(i=0;i<num-1;i++){for(j=i+1;j<num;j++){if(str[i]<str[j]){Temp=str[i];str[i]=str[j];str[j]=Temp;}}}//去除误差,取中间值returnstr[num/2];}//存入设定值将设定值存储在24C02中voidSave_Setting(void){ucharSave;Save=DUST_SET/256;IIC_Write(0x00,Save);Save=DUST_SET%256;delay_ms(10);IIC_Write(0x01,Save);}//载入设定值从24C02中读取设定值voidLoad_Setting(){DUST_SET=0;DUST_SET=IIC_Read(0x00);DUST_SET*=256;delay_ms(10);DUST_SET+=IIC_Read(0x01);if((DUST_SET>=760)||(DUST_SET<=0))DUST_SET=100;}//按键处理程序voidKeyProcess(void){ucharTemp;uinti,j;Temp=P3;Temp&=0xf0;if(Temp!=0xf0){//延时//设定值+//设定值+//设定值-//载入设定值//for(i=0;i<500;i++)//for(j=0;j<254;j++);Temp=P3;Temp&=0xf0;if(Temp!=0xf0){switch(Temp){case0xE0:DUST_SET++;break;case0XD0:DUST_SET--;break;default:break;}//值限定if(DUST_SET>=760)DUST_SET=760;if(DUST_SET<=1)DUST_SET=0;Save_Setting();}}}voidmain(){ucharread;uintDUST;EA=0;//总中断关闭Data_Init();//数据初始化Port_Init();//端口初始化IIC_Init();LCD_Init();//液晶初始化LCD_Clear();//清屏LCD_Write_String(4,0,"Welcome");LCD_Write_String(0,1,"PM2.5Detector");delay_ms(2000);LCD_Clear();//清屏delay_ms(10);LCD_Write_String(0,0,"PM2.5:mg/m3");LCD_Write_String(0,1,"Alarm:mg/m3");Load_Setting();ADC_Init();//ADC初始化delay_ms(10);Timer0_Init();//定时器0初始化num=0;DUST=0;FlagStart=0;while(1){if(FlagStart==1)//10次采集完成{DUST二Error_Correct(ADC_Get,10);//求取10次AD采样的值DUST_Value=(DUST/256.0)*5000;//转化成电压值MVDUST_Value=DUST_Value*0.172-99.9;//DUST_Value=((DUST)*38)/4-202;////固体悬浮颗粒浓度计算Y=0.172*X-0.0999if(DUST_Value<0)if(DUST_Value>760)X—采样电压VDUST_Value=0;DUST_Value=760;//限位DUST=(uint)DUST_Value;//LCD_Show4(6,0,DUST);LCD_S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传统节日庆祝活动的策划计划
- 幼儿园语言表达能力提升计划
- 提升教师教学技能的计划与安排
- 幼儿园小班的季节主题活动计划
- 2025yy房屋室内装修合同范本
- 电气工程自动化控制原理与系统设计试题及答案
- 智能家居行业的资讯与案例分析
- 广西北部湾经济区四市同城2024届中考适应性考试数学试题含解析
- 国际商务跨文化交际情境试题库
- 娱乐公司艺人培养与版权保护策略研究
- 2025年北京市东城区高三一模数学试卷(含答案)
- 2025-2030中国电子焊膏行业市场发展趋势与前景展望战略研究报告
- 护士的礼仪培训
- 炎德·英才大联考湖南师大附中2025届高三月考试卷(七)物理试卷(含答案)
- 内镜检查操作流程
- 2025年湖北省八市高三(3月)联考化学
- 2025年新音乐节明星艺人歌手演出场费报价单
- 2025年吉林司法警官职业学院单招职业技能考试题库汇编
- 2025安徽省亳州城建发展控股集团限公司招聘81人历年自考难、易点模拟试卷(共500题附带答案详解)
- 德育测试试题及答案
- 母婴护理师、月嫂考试、产妇护理重点知识考试题(附答案)
评论
0/150
提交评论