基于单片机的室内甲醛检测系统_第1页
基于单片机的室内甲醛检测系统_第2页
基于单片机的室内甲醛检测系统_第3页
基于单片机的室内甲醛检测系统_第4页
基于单片机的室内甲醛检测系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录前言31绪论31.1甲醛测试系统的研究及现状31.2课题的背景和意义42概述42.1单片机概述42.2传感器介绍83硬件系统设计93.1系统总体结构及工作原理93.2系统主要模块介绍103.2.1数据采集模块10数据显示模块113.2.3报警电路133.2.4模数转换模块143.3系统电路设计164软件实现194.1编写语言及编译软件的简介194.2主程序模块194.3A/D转换流程图204.4LCD显示流程图204.5按键流程图215系统仿真226结论24致谢24参考文献25附录26附录1.相关定义及主程序26附录2.LCD显示程序28附录3.ADC0832程序31附录4.数据换算程序33附录5.按键程序34基于单片机的室内甲醛检测系统学生:XXX指导教师:XXX淮南师范学院电气与信息工程学院摘要:随着社会的开展,生活质量的提高,越来越多的人们意识到房屋装修所残留的气体对人体的伤害,而房屋装修所残留的气体主要为甲醛。甲醛对人体健康有较大的危害,许多疾病的诱发都与甲醛有关,如哮喘,白血病等。对此我们研究并设计了一种用于检测室内气体中所含甲醛含量的检测系统。该检测系统具有显示甲醛含量以及超标报警的功能。该系统设计方案是基于AT89C52单片机,选择MQ138型甲醛传感器。在系统中传感器模块输出的标准电流经由A/D转换电路转换为单片机能识别的信号,单片机对此信号进行处理,最后将甲醛含量显示在LCD上,并在甲醛含量超标时进行报警。关键词:甲醛;单片机;传感器IndoorformaldehydedetectionsystembasedonMCUStudent:ChengyiwangInstructor:WangliHuainanAbstract:Withthedevelopmentofsocial,improvedoflife,moreandmorepeoplerealizethedamageofthehousingrenovationresidualgasesonthehumanbody,housingrenovationoftheresidualgasismainlyforformaldehyde.Formaldehydegreaterharmtohumanhealth,manydiseasesinducedisrelevanttoformaldehyde,suchasasthma,leukemia,etc.Westudyanddesignadetectionsystemisusedtodetectindoorgascontainedformaldehydecontent.ThedetectionsystemshowstheformaldehydecontentandAlarming.ThesystemdesignbasedonAT89C52,selectMQ138typeformaldehydesensor.ThroughtheA/DconvertercircuittoconvertthesignalfortheMCUcanidentifyinthestandardcurrentoutputofthesensormodule,MCUprocessingofthissignal,finally,theformaldehydecontentisdisplayedontheLCD,andalarmexcessivelevelsofformaldehyde.Keywords:Formaldehyde;Singlechip;Sensor前言近年来,住宅内装潢材料中含有的有害化学成分常常会引发一系列健康问题,人们习惯称之为“装潢病〞。甲醛是这些有害化学成分中的一种,它是一种具有刺激气味的无色气体,也是一种潜在的致癌物质,对人体健康有较大的危害。许多疾病的诱发都与甲醛有关,如哮喘,白血病等。一种能够检测室内气体中所含甲醛含量的检测系统的研究与应用就成为了人们关注的热点。单片机具有通用性强、体积小、价格低、稳定可靠等突出优点,在智能产品、测控系统等领域得到广泛的应用。本文基于单片机设计出一种简单实用的室内甲醛测试仪器,此仪器可现场直接显示甲醛浓度值。当其浓度值小于国家规定的标准值时,可以入住,当超过规定的室内居住标准值时报警提醒人们暂时不要入住。1绪论1.1甲醛测试系统的研究及现状随着人们生活水平的提高,越来越多的人意识到房屋装修所残留的气体对人体的伤害,房屋装修所留有害气体主要为甲醛,另外,很多家具、地板有味道,其实是漆的味道,有时即使家具环保,但是如果选择的漆不好,也会有过多的甲醛。急性甲醛中毒为接触高浓度甲醛蒸气引起的以眼、呼吸系统损害为主的全身性疾病。甲醛现在被各界普遍认为是室内第一杀手,它的释放期一般为3-15年,其对人体尤其是婴幼儿、孕期妇女、老人和慢性病患者甚为严重。空气中有毒气体释放周期较长,轻微超标时居住者不易发觉。超标四五倍时,居住者才能嗅出气味。找正规的检测机构做甲醛检测已成为现在入住新居的一项必不可少的程序。所以人们迫切需要一种能检测室内残留甲醛含量的设备可以随时随地的测量,这样给生活带来更多的方便和平安。目前市场上的甲醛检测方法有〔1〕AHMT分光光度法;〔2〕酚试剂分光光度法;〔3〕气相色谱法;〔4〕乙酰丙酮分光光度法;〔5〕电化学传感器法。通过对以上各种方法进行分析我们了解到通过电化学传感器法所设计的测量系统操作方便、性价比适宜、运行可靠、测量精度高。随着传感器技术的开展,市场上越来越多的气体传感器出现在人们的视野中,像CH2O/S—10甲醛传感器,MQ138传感器等。郑州炜盛电子科技的MQ138传感器价格低,外围驱动电路简单,对于甲醛的灵敏度较高,因此本文的设计局部选择了MQ138型甲醛传感器。1.2课题的背景和意义随着现代社会的开展,科技的进步,高科技电子产品给人们的生活带了翻天覆地的变化。房屋装修的残留气体甲醛一直危害着人们的健康,比拟市面上常见的甲醛检测方法,大多比拟麻烦且价格较高。本文所述的基于单片机的室内甲醛检测系统,是运用电化学传感器法,利用单片机的高性能控制甲醛传感器来到达检测甲醛含量的目的。本设计适用性广,操作简单,只要操作几个按键就能检测甲醛的含量,甲醛含量直观的显示在LCD显示屏上,适用于各种人士。本系统集成度高,体积小,携带方便,具有很高的灵活性。本系统的研究解决了人们在装修房屋后最正确入住时间的难题,一般装修房屋后会有大量的残留气体危害人们的健康,本系统能实时检测屋内的残留甲醛含量,并且当含量超过国家标准时会报警提示,这样就能让人们直观的了解自己何时能入住装修过的房屋。2概述2.1单片机概述单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机内存RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能〔可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路〕集成到一块硅片上构成的一个小而完善的计算机系统。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的一些功能,这是别的器件需要费很大力气才能做到的,有些那么是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板,但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别,只是因为单片机通过你编写的程序可以实现高智能,高效率,以及高可靠性。单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种根本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令〔这些指令必须是选定单片机能识别和执行的指令〕,这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——内存中。内存由许多存储单元〔最小的存储单位〕组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。单片机的硬件特性如下:单片机集成度高。单片机包括CPU、4KB容量的ROM〔8031〕、128B容量的RAM、2个16位定时/计数器、4个8位并行口、全双工串行口;系统结构简单,使用方便,实现模块化;单片机可靠性高,可工作到10^6~10^7小时无故障;处理能力强,速度快。系统所用单片机介绍:本系统以单片机为控制核心。本系统采用的是美国ATMEL公司生成AT89C52型单片机。AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序内存和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52主要功能特性:兼容MCS51指令系统;8K可反复擦写〔大于1000次〕FlashROM;32个双口I/O口;256X8bit内部RAM;3个16位可编程定时/计数器中断;时钟频率0-24MHZ;2个串行中断,可编程UART串行通道;2个外部中断,共8个中断源;2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。AT89C52有40个引脚〔如图2.1所示〕,32个外部双向输入/输出〔I/O〕口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内振荡器及时钟电路,AT89C52可以按照常规方法进行编程,也可以在线编程。图2.1单片机引脚图AT89C52引脚功能:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。P1口:P1是一个带内部上拉电阻的8位双向I/O口。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入〔P1.0/T2〕和输入〔P1.1/T2EX〕。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口。P2的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口还接受一些用于Flash闪速内存编程和程序校验的控制信号。RST:复位输入,当振荡器工作是,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序内存或数据存储器时ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。PSEN:程序储存允许输出是外部程序内存的选通信号,当AT89C52由外部程序内存取指令〔或数据〕时每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序内存,EA端必须保持低电平。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。P3.0/RXD:串行接口P3.1/TXD:串行接口P3.2/INT0:外部中断输入P3.3/INT1:外部中断输入P3.4/T0:定时/计数器输入P3.5/T1:定时计数器输入P3.6/WR:外部数据写选通P3.7/RD:外部数据读选通2.2传感器介绍本系统采用的传感器为MQ138型甲醛传感器,该传感器具有广泛的探测范围,快速的响应恢复及较高的灵敏度,长期的工作稳定性,简单的测试电路等特点。主要应用于家庭、环境的有害气体探测装置,适宜于醇类、醛类、芳族化合物等有机溶剂的探测管脚图如图2.2所示:图2.2甲醛传感器管脚图MQ138的规格如下:标准工作条件表2.1标准工作条件符号参数名称技术条件备注VC回路电压5V±0.1VACorDCVH加热电压5V±0.1VACorDCRL负载电阻可调RH加热电阻31Ω±3Ω室温PH加热功耗小于900毫瓦B.环境条件表2.2环境条件符号参数名称技术条件备注Tao使用温度-20℃-50℃Tas存储温度-20℃-70℃RH相对湿度小于95%RHC.灵敏度特性表2.3灵敏度特性符号参数名称技术条件备注RS敏感体电阻10KΩ-200KΩ(在洁净空气中)探测范围:1ppm-100ppm苯5ppm-100ppm甲醇10ppm-300ppm丙酮0ppm-10ppm甲醛30ppm-300ppm酒精α浓度斜率≤0.65标准工作条件温度:20℃±2℃Vc:5V±0.1V相对湿度:65%±5%Vh:5V±0.1V预热时间不少于24小时MQ138气敏组件由微型陶瓷管、敏感层、测量电极和加热器构成的敏感组件固定在塑料或不锈钢制成的腔体内,加热器为气敏组件提供了必要的工作条件。封装好的气敏组件有6只针状管脚,其中4个用于信号取出,两个用于提供加热电流。MQ138型气敏器件对不同的种类,不同的浓度的气体有不同的电阻值。因此,在使用此类型气敏组件是,灵敏度的调整是很重要的。建议用10ppm甲苯或50ppm酒精蒸汽校准传感器。3硬件系统设计3.1系统总体结构及工作原理系统是由传感器模块,A/D转换模块,单片机最小系统,液晶显示模块,报警模块,外围存储模块以及按键模块组成。其中主要器件传感器选用的是MQ138型气体传感器,它的灵敏度高,价格廉价,外围驱动电路简单,单片机选用的是AT89C52,它的控制能力强。总体结构图如图3.1所示。外围扩充存储外围扩充存储传感器传感器LCDAT89C52LCDAT89C52信号放大信号放大按按键ADAD转换报警报警图3.1硬件结构框图本系统以单片机为控制中心,利用甲醛传感器采集室内甲醛含量的数据,传感器采集的数据经外围放大电路放大,此放大信号经AD转换器转换为单片机可识别的信号,信号经由单片机处理显示在LCD上,当超标时单片机控制报警电路报警。硬件设计所涉及的主要有:MCU,A/D,LCD,外围扩展数据RAM等芯片的选择;硬件设计电路主要有:数据采集电路,数据转换电路,数据处理电路,显示电路,报警电路以及外围扩充内存电路的设计。3.2系统主要模块介绍3.2.1数据采集模块在数据采集系统中,由甲醛传感器出来的电流信号必须经过放大,转换才能被单片机识别和处理。在本系统中甲醛传感器所检测的电流信号经电位器放大为电压信号,再经AD转换为单片机识别的信号。数据采集电路如下列图所示:图3.2数据显示模块对于本设计要求显示所检测到的甲醛含量,所以在硬件设计中会有液晶显示的设计,最初所使用的液晶显示器为LCD1602液晶显示器,随着设计的深入发现1602显示器由假设干个5X7点阵组成,只能显示简单的汉字,不能满足本系统的设计要求。经过筛选最后选定LCD12864显示器。12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128X64全点阵液晶显示器组成,可完成图形显示也可以显示8X4个汉字〔16X16点阵〕。下表为其引脚说明。表3.212864引脚说明表管脚名称管脚定义VSS电源地VDD电源电压+5VV0比照度调节R/S指令数据信道R/W读写选择E使能选择DB0-DB7数据线CS1片选1H:选择芯片〔右半屏〕信号CS2片选2H:选择芯片〔左半屏〕信号/RET复位信号低电平复位VOUT液晶驱动电源LED+LED背光正电源LED-LED接地端LCD12864液晶显示模块与计算机的接口电路有两种方式。它与单片机的接口方法分为直接访问方式和间接控制方式。直接访问方式是把液晶模块作为内存或I/O设备直接接在单片机的总线上,单片机以访问内存或I/O设备的方式操作液晶显示模块的工作。间接控制方式那么不使用单片机的数据系统,而是利用它的I/O口来实现与显示模块的联系。即将液晶显示模块的数据线与单片机的P0口连接作为数据总线,另外三根时序控制信号线通常利用单片机的P2口中未被使用的I/O口来控制。这种访问方式不占用内存空间,它的接口电路与时序无关,其时序完全靠软件编程实现。本系统采用间接控制方式。以下为LCD12864与单片机的接线原理图见图3.3图3.3LCD显示图液晶显示原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就显示黑色,这样就可以显示出图形。字符显示:字符显示比拟复杂,一个字符由16x8点阵组成,即要找到和显示屏是某几个位置对应的RAM区的字节,再使不同的位置为‘1’其它的为‘0’;为‘1’的点亮,为‘0’的不亮,这样就显示出一个字符。汉字显示和字符显示的原理差不多,就是一个汉字一般采用图形方式,事先从微机中用字模软件提取要显示的汉字的点阵码,每个汉字占32B,为两局部,各16B。根据在LCD上开始显示的行列号及每行的列数就可以找出显示RAM的对应地址,送上汉字要显示的第一字节,以此类推,最后送完32B,这样汉字就显示出本系统所要显示的汉字和字符就是按照上述原理显示出来的,而相应字体的点阵码那么是用字模软件提取出来的,然后把这些点阵码放在相应的LCD软件程序里。所用的字模提取软件可以上网下载,软件中有取模方式选择能直接选择51单片机所需的C51格式。3.2.3报警电路在我们日常生活中所见到的相关报警方式有:一是语音提示报警,如验钞机的报警,这种报警不仅可以告知人们出现报警还能让人们知道所报警的信息;二是闪光报警,这种方式利用闪烁的指示灯提醒人们注意;三是蜂鸣报警,发出蜂鸣声响引起人们注意。由于本系统所需的报警电路只要求提醒人们注意甲醛含量超标,所以我们可以选择比拟简单和低功耗的蜂鸣报警方式。基于以上我选择了比拟常见的单频音报警方式。实现单频音报警的接口电路比拟简单,其发音组件通常可采用压电蜂鸣器,当在蜂鸣器两引脚上加3~15V直流工作电压,就能产生3kHZ左右的蜂鸣振荡音响。压电式蜂鸣器结构简单、耗电少,更适于在单片机系统中应用。压电式蜂器,约需10mA的驱动电流,可在某I/O口接上一只三极管和电阻组成的驱动电路来驱动,如图3.4所示。在图中,P14接三极管基极输入端,当P14输出高电平“1〞时,三极管导通,蜂鸣器的通电而发音,当P14输出低电平“0〞时,三极管截止,蜂鸣器停止发音。5VP14P14AT89C522222图3.4单频音报警电路图下列图为报警电路接线图:图3.5报警模块3.2.4模数转换模块由于甲醛传感器放大的电压信号不能直接被单片机接收处理,这个电压信号必须经过A/D转换为数字信号才能被MCU接收和处理。A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。常用的几种A/D转换器类型为:积分型、逐次逼近型、并行比拟型/串并行型、Σ-Δ调制型、电容数组逐次比拟型及压频变换型。A/D转换器的主要技术指标有:分辨率、转换速率、量化误差、廉价误差、满刻度误差、线性度。由于逐次逼近式A/D转换具有速度,分辨率高等优点,而且采用这种方法的ADC芯片本钱低,所以我们采用逐次逼近式A/D转换器。逐次逼近型ADC包括1个比拟器、一个模数转换器、1个逐次逼近存放器〔SAR〕和1个逻辑控制单元。逐次逼近型是将采样信号和电压不断进行比拟,一个时钟周期完成1位转换,依次类推,转换完成后,输出二进制数。这类型ADC的分辨率和采样速率是相互牵制的。优点是分辨率低于12位时,价格较低,采样速率也很好。在本系统中选用的是ADC0832型模数转换器。ADC0832模数转换器具有8位分辨率、双信道A/D转换、输入输出电平与TTL/CMOS相兼容、5V电源供电时输入电压在0~5V之间、工作频率为250KHZ、转换时间为32微秒、一般功耗仅为15MW等优点。电路图如图3.6所示:图3.6A/D转换电路ADC0832的特点如下:1.8位分辨率;2.双通道A/D转换;3.输入输出电平与TTL/CMOS兼容;4.5V电源供电时输入电压在0-5V之间;5.工作频率为250KHZ,转换时间为32μS;6.一般功耗仅为15mW;7.8P、14P—DIP〔双列直插〕、PICC多种封装;8.商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;芯片接口说明:CS-片选使能,低电平芯片使能。CH0仿真输入通道0,或作为IN+/-使用。CH1仿真输入通道1,或作为IN+/-使用。GND芯片参考0点位〔地〕。DI数据信号输入,选择信道控制。DO数据信号输出,转换数据输出。CLK芯片时钟输入。Vcc/REF电源输入及参考电压输入〔复用〕。ADC0832的引脚图如下列图3.7所示:CSVccCSVccCH0ClkCH1DOGNDDI图3.7ADC0832引脚图ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现信道功能的选择。单片机对ADC0832的控制原理:正常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根资料在线使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端那么使用DI端输入信道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据用于选择信道功能。由于甲醛传感器的测量范围为0-10ppm,系统设计所选用的AD转换器为8位的ADC0832,所以本设计的精度为10ppm/256=0.039ppm。3.3系统电路设计本设计选用基于电化学原理的甲醛传感器,其原理是空气中的甲醛在电极下发生氧化反响,产生的扩散电极电流与空气中的甲醛浓度成正比,通过检测放大电路和放大倍数的调整经A/D转换后送单片机。由于甲醛的含量超标的话将对人体的健康造成很大的伤害,因此本系统设计当单片机接收到A/D转换器转换后送来的信号时,单片时机检测该信号,并将信号转化为甲醛浓度的具体含量输出显示在LCD上,并且单片时机比拟此信号,当此信号所表示的甲醛含量超过预先设定的警报标准时,会控制警报器发出超标警报。这样方便人们能直观的读出当前室内所含甲醛的含量,更能在含量超标是及时的报警提示。系统原理图见图3.8:图3.8系统整体原理图4软件实现4.1编写语言及编译软件的简介单片机在应用过程中要最大化的节约CPU与内存,除了汇编与C之外,JAVA和C++都不太适合做单片机的编程语言,C语言可读性好,代码便于维护,便于开发;而汇编语言编写的程序不容易看懂,可维护性不好,但是执行效率高。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。由于IC工艺的成熟,MCU的存储资源越来越廉价,工作频率也越来越高,所以在资源利用率以及执行效率上没有像以前要求那么高了。而且,实现的功能越来越强大,这些因素都助长了C在MCU编程中的应用。所以在本系统的软件编写上选择了C语言。Keil是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,Keil提供了包括C编辑器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔uVision〕将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Keil的优点:KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件是更能表达高级语言的优势。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows接口。4.2主程序模块主程序实现的功能:与硬件相结合实现室内甲醛检测仪的各个功能。主要是检测与显示,数据存储。功能子函数的调用。主程序结构框架图如图4.1所示:显示主菜单显示主菜单读键开始初始化CPU初始化LCD图4.1主程序结构框图4.3A/D转换流程图A/D转换模块的主要功能就是将传感器的放大信号转换为MCU能识别的数字信号,A/D转换流程图如图4.2所示:开始开始初始化芯片读取两个字节屡次采样送显示结束图4.2A/D转换流程图4.4LCD显示流程图LCD显示模块的软件局部主要作用就是在LCD屏上显示整个系统的开机画面,各个菜单,以及显示检测出的甲醛浓度等功能,LCD显示流程框图如图4.3所示:图4.3LCD显示流程图4.5按键流程图按键是显现人机对话的一个控制按钮,按键模块的软件主要是实现通过按键对系统进行发送操作指令。按键流程框图如图4.4所示:YYY©NN按键程序入口按键按下?延时按键释放?键值传送NNNN图4.4按键流程图5系统仿真本系统采用的仿真软件是Proteus软件。Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件〔该软件中国总代理为广州风标电子技术〕。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2023年增加了Cortex和DSP系列处理器,并持续增加其它系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus的功能特点:1.原理部图2.PCB自动或人工布线3.SPICE电路仿真4.互动的电路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,局部SPI器件,局部IC器件。5.仿真处理器及外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。以下是甲醛测试系统的仿真结果:1.编译结束,添加HEX文件单击proteus运行按钮,系统开始工作此时LCD将显示开机主界面如图5.1所示:图5.1开机主界面2.按下OK按键LCD进入主菜单项选择项,再按OK键系统将进入开始测量子菜单项选择项,先按DOWN再按OK键系统将进入返回开机主页面菜单项选择项。主菜单如图5.2所示:图5.2系统主菜单3.开始测量子菜单,当按OK键是系统将会开始测量甲醛含量,按CANCEL会返回上一页面。开始测量菜单项选择项如图5.3所示:图5.3开始测量选择菜单4.系统开始测量甲醛浓度后,会讲甲醛浓度含量显示在LCD上。在此页面按CANCEL键会返回开机画面。显示检测数据页面如图5.4所示:图5.4显示界面6结论目前,公共场所民用建筑室内需要检测甲醛气体,同样建筑材料中甲醛含量也需要检测。由于甲醛含量超量的话,将对人体健康造成很大的影响,因此具有民用价值的便携式甲醛检测仪的研制受到了人们的高度重视。能够满足生活需要,携带方便的便携式甲醛检测仪的研究和设计就迫在眉睫。针对目前的现状,该系统的设计遵守体积小,质量轻,性价比高的原那么。室内甲醛检测仪的设计主要分为硬件和软件两局部。硬件局部主要根据系统所要实现的功能而设计出相应的功能模块。硬件系统中所包含的功能模块有:数据采集模块、数据转换模块、显示模块、报警模块、按键模块。将这几个模块组合搭建而成整体的硬件电路。软件是基于C语言编写的,结合了编写语言的优点,具有很好的可控性、模块化和移植性。编写的思路就是模块化的思想,将系统的各个功能进行划分,然后对各个模块进行设计。再将设计的模块整合形成整个的软件设计局部。由于设计条件有限本系统最终没有做出实物,系统的最后的调试只是在proteus上进行了相应的仿真,并且得出了较准确的甲醛测试浓度。致谢大学生活一晃而过,四年时间如流水般飞逝,回首走过的岁月,心中倍感充实,当我写完这篇毕业论文的时候,有一种如释重负的感觉,感慨良多。这里要诚挚的感谢我的论文指导老师XX老师,在本论文从选题到完成,每一步都是在赵老师的指导下完成的,倾注了王老师大量的心血。在此,谨向王老师表示崇高的敬意和衷心的感谢!在设计整个系统过程中遇到好多自己不能解决的问题,在王老师的帮助下能够很快的克服这些困难,解决这些问题。在这里我还要感谢在大学四年了所有教过我的老师,是他们让我有了完本钱论文的知识。感谢四年陪伴在我身边的同学、朋友,感谢他们在平时的生活学习中对我的帮助。参考文献[1]金发庆.传感器技术与应用[M].北京:机械工业出版社,2001,3.[2]樊昌信等.通信原理[M].(第5版).北京:国防工业出版社.[3]田裕鹏等.传感器原理〔第三版〕[M].北京:科学出版社.[4]张毅刚,彭喜源,潭晓昀,等.MCS单片机应用设计[M].黑龙江:哈尔滨工业大学出版社,1998,3.[5]康华光.电子技术根底数字局部〔第五版〕[M].北京:高等教育出版社.[6]王延年.基于单片机的铂电阻高精度温度测控系统[M].重庆:重庆出版社,2006,8.[7]崔九思.室内空气污染监督方法[M].北京:北京化学工业出版社,2002,3,5.[8]李跃红甲醛检测方法的研究进展[J]-职业与健康2006.[9]李春建.张卫斌.季莘乙酰基丙酮荧光法测定水发产品浸泡液中甲醛的研究[J]-现代预防医学2007.[10]王征帆.杨艳丽甲醛光学分析的研究进展[J]-化学工程与装备2023.[11]康华光.电子技术根底模拟局部〔第五版〕[M].北京:高等教育出版社.[12]李广弟等.单片机根底[M].北京航空航天出版社,2001.[13]王东峰等.单片机C语言应用100例[M].电子工业出版社,2023.[14]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2023.[15]刘守义等.单片机技术根底[M].西安电子科技大学出版社,2007.[16]钟富昭等.8051单片机典型模块设计与应用[M].人民邮电出版社,2007.[17]李平等.单片机入门与开发[M].机械工业出版社,2023.[18]谢自美.电子线路设计〔第二版〕[M].南京:华中科技大学出版社.[19](美)JeriR.HanlyElliotB.Koffman.ProblemSolvingandProgramDesigninC(5thEdition)[M].北京:人民邮电出版社.[20]王娣、韩旭.C语言从入门到精通[M].北京:清华大学出版社,2023[21]严蔚敏吴伟民.《数据结构》[M]清华大学出版社,1996附录附录1.相关定义及主程序#defineDisp_Off0x3e//显示关指令//#defineCol_Add0x40//定位到第0列指令//#definePage_Add0xb8//定位到第0页指令//#defineStart_Line0xc0//定位从DDROM中的第0行开始往屏幕上显示//#defineWriteDeviceAddress0xa0#defineReadDeviceAddress0xa1/***************************-=控制宏=-*********************************//**根据你的控制线接法来修改**/sbitCS1=P2^4;//左屏使能//sbitCS2=P2^5;//右屏使能//sbitE=P2^1;//使能端//sbitRS=P2^3;//数据或指令存放器选择端,又名DI//sbitRW=P2^2;//读写控制端//sbitRST=P2^0;//复位端//sbitData=P0;//数据口//char*a;char*b;char*c;char*d;/****按键端口******/sbits1=P1^0;//upsbits2=P1^1;//downsbits3=P1^2;//oksbits4=P1^3;//cancel/****ADC0830端口****/sbitCS=P3^2;sbitCLK=P3^4;sbitDIO=P3^3;//由于DIDO接同一IO口所以如此定义///***24c128端口***/sbitSCL=P2^6;//时钟总线sbitSDA=P2^7;//数据总线/***蜂鸣器端口***/sbitBEEP=P1^4;char*a;char*b;char*c;char*d;//函数名:延时子函数//voidDelay(unsignedinttime){unsignedinti,j;for(i=0;i<time;i++);for(j=0;j<10;j++);}/****初始化CPU*****/voidinit_cpu(){EA=1;TR0=1;TR1=1;TMOD=0x11;TH1=0x3c;TL1=0xb0;}/****主程序*****/voidmain(void){Init_lcd();Delay(100);init_cpu();Delay(100);Clr_Scr();Delay(100);get_data();Delay(100);get_key();}附录2.LCD显示程序charcodehuan[]={/*--文字:欢--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,};······文字:迎等//函数名:写命令到LCDvoidwrite_command(unsignedcharcmdcode){RS=0;RW=0;P0=cmdcode;Delay(10);E=1;Delay(10);E=0;}//函数名:写数据到LCD//voidwrite_dat(unsignedcharDispdata){RS=1;RW=0;P0=Dispdata;Delay(10);E=1;Delay(10);E=0;}//函数名:任意位置写入一字节//voidwrite_data(unsignedcharPage,unsignedcharCol,unsignedcharData)//在屏幕的任意位置写待显示的数据{if((Col&0x40)==0)//此处表示如果Col小于64 { CS1=1;CS2=0; write_command(Page_Add+Page);write_command(Col_Add+Col); write_dat(Data); }else {Col-=64; CS1=0;CS2=1;write_command(Page_Add+Page);write_command(Col_Add+Col); write_dat(Data); }}//函数名:清显示屏//voidClr_Scr(void){unsignedcharj,k;CS1=1;CS2=1;//清全屏//{for(k=0;k<8;k++){ write_command(Page_Add+k); write_command(Col_Add);for(j=0;j<64;j++) write_dat(0x00);}}//函数名:指定位置显示16*16图像//voidDisp_Chr(unsignedcharpag,unsignedcharcol,unsignedcharcode*zmk){unsignedcharj=0,i=0;for(i=0;i<16;i++){for(j=0;j<2;j++) { write_data(pag+j,col+i,zmk[16*j+i]);}}}//函数名:初始化液晶屏//voidInit_lcd(void){RST=0;Delay(10);RST=1;Delay(10);CS2=1;CS1=1;Delay(100);write_command(Disp_Off);write_command(Page_Add+0);write_command(Start_Line+0);write_command(Col_Add+0);write_command(Disp_On);}voidDisp_lcd_starmenu(){Init_lcd();//初始化液晶屏Delay(300);//短延时//Clr_Scr();//清屏 Disp_Chr(0,25,huan);//显示"欢"Disp_Chr(0,45,ying);Disp_Chr(0,65,shi); Disp_Chr(0,85,yong); Disp_Chr(2,12,jia); Disp_Chr(2,34,quan); Disp_Chr(2,56,jian); Disp_Chr(2,78,ce);Disp_Chr(2,102,yi);Disp_Chr(4,10,huai);Disp_Chr(4,30,nan); Disp_Chr(4,50,sh); Disp_Chr(4,70,fan); Disp_Chr(4,90,xue); Disp_Chr(4,110,yuan); Disp_Chr(6,5,dian); Disp_Chr(6,20,qi);Disp_Chr(6,35,xin);Disp_Chr(6,50,xi); Disp_Chr(6,65,gong); Disp_Chr(6,80,cheng); Disp_Chr(6,95,xue); Disp_Chr(6,110,yuan);}······附录3.ADC0832程序/*****ADC0832程序***********///获取AD转换结果ucharGet_AD_Result(){ uchari,dat1=0,dat2=0; //起始控制位 CS=0; CLK=0; DIO=1;Delay(50); CLK=1;Delay(50); //第一个下降沿之前,设Di=1/0 //选择单端/差分(SGL/DIF)模式中的单端输入模式 CLK=0;DIO=1;Delay(50); CLK=1;Delay(50); //第二个下降沿之前,设DI=0/1,选择CH0/CH1 CLK=0;DIO=0;Delay(50); CLK=1;DIO=1;Delay(50); //第三个下降沿之前,设DI=1 CLK=0;DIO=1;Delay(50); //第4-11,共8个下降沿读数据(MSB=>LSB) for(i=0;i<8;i+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论