




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
青岛农业大学毕 业 论 文(设计) 题 目: 基于单片机的室内甲醛检测仪的设计 姓 名: 王振宇 学 院: 机电工程学院 专 业: 电气工程及其自动化 班 级: 2008.01 学 号: 20082396 指导教师: 岳丹松 2012年6月18日 目 录摘 要iabstractii1 绪论11.1 引言11.2 甲醛检测仪的种类12 整体设计方案32.1 系统设计的基本要求32.2 系统设计的思想32.3 系统设计方案的对比选择33 设计开发工具介绍53.1 单片机的概念和特点53.2 单片机的发展和趋势63.3 stc12c5a60s2单片机63.4 ltc1049cn8运算放大器73.5 lcd1602液晶显示屏83.6 甲醛传感器94 系统硬件设计114.1 系统整体电路的原理114.2 系统晶振电路的设计124.3 系统复位电路的设计124.4 系统放大电路的设计144.5 系统单片机及显示电路的设计144.6 系统报警电路设计155 系统软件设计175.1 程序编写语言介绍175.2 编译软件介绍175.3 主程序模块225.4 模数转换225.5 按键模块245.6 液晶显示模块266 设计总结306.1 全文总结306.2 心得体会30参考文献32致谢33附录34基于单片机的室内甲醛检测仪的设计摘 要 众所周知,甲醛对人体的危害很大, 在当今的社会中甲醛通过各种途径侵入人们的生活,特别是在房屋装修的过程中,装修材料中残留大量的甲醛,所以应如何快速高效的检测室内甲醛的含量是否超标就显得尤为重要。传统的检测方法操作麻烦,而且精度不够高,于此本研究设计了一种在室内具有检测和超限报警功能的智能甲醛检测仪。该设计方案基于stc12c5a60s2单片机,选择英国达特公司生产的甲醛传感器。该系统将传感器输出的电流信号放大后,通过a / d转换电路调整,再通过单片机进行数据处理,最后由lcd显示甲醛浓度值。本设计具有显示报警功能,并且具有功耗低、精度高、便于携带等特点。关键词:甲醛;stc12c5a60s2;传感器;a / d;lcddesign of indoor formaldehyde detector based on scm abstractas is known to all, formaldehyde does great harm to human body. nowadays, peoples life is influence by formaldehyde through different ways, especially when buildings have been decorated. there are amount of the residual formaldehyde in the room. thus, it is important to detect accurately that if the content of indoor formaldehyde is out of limits. the operation of traditional test methods is troublesome and of low accuracy. compared with which, an intelligent formaldehyde analyzer which can test the content of indoor formaldehyde and alarm when the formaldehyde is out of limits is designed. based on the stc12c5a60s2 microcontroller, the design needs a formaldehyde sensor produced by dartmouth company. in the system, current signal output by sensor will be amplified and will be adjusted through the a/d converter. then through the single-chip microcomputer data processing, formaldehyde chrome value will be showed in the liquid crystal displays (lcd). this design has the function of showing alarms and has lots of advantages such as low power consumption, high precision, easy to carry, etc.keywords: formaldehyde; stc12c5a60s2; sensors; a/d; lcd52青岛农业大学机电工程学院本科毕业设计(论文)1 绪论1.1 引言甲醛是一种无色有强刺激性气味的气体。溶于水、醇类和醚。甲醛在室温下是气体,通常以水溶液的形式存在。37%的水溶液称为福尔马林,医疗和科研部门通常用来做标本的防腐保存。在我们国家有毒化学物质优先控制名单中甲醛位居第二。甲醛一直是世界卫生组织确定为癌症和导致畸形的物质材料1。甲醛可以和蛋白质结合,吸入高浓度甲醛会引起呼吸道严重的刺激和水肿、眼痛、头痛,也可能发生支气管哮喘,人的皮肤直接接触甲醛,可能会引起皮炎、皮肤色斑、皮肤坏死。经常吸入甲醛,也能导致慢性中毒,出现黏膜充血、皮肤刺激疾病、过敏性皮炎、指甲角化以及脆弱等。全身症状有头痛、疲劳、心悸、失眠、体重减轻和植物神经紊乱等2。甲醛的来源途径一般有这个方面:1室内装饰材料里面的合成板材,如胶合板、细木工板、高密度板、刨花板。甲醛在这些板材中起胶合剂、防腐剂的角色,主要用于加强材料的硬度、防虫、腐蚀。板材里的残余和未参与反应的甲醛向周围生态环境逐步释放甲醛,是室内空气中甲醛的主要来源。2使用合成板制造家具,厂家为追求利润的不惜使用不合格的木料板材,再粘贴材料表面时使用不合格的胶水,导致家具的甲醛含量超标。3含有甲醛并且可能会向周围环境发出的各种装饰材料,如墙纸、地毯、油漆等。1.2 甲醛检测仪的种类目前,市场的甲醛检测器有许多不同的种类,其中比较常见的是使用试验纸光电光度法,当甲醛吹到浸有发色剂的试纸上时,浸有发色剂的tab组合就会发生化学反应使标签颜色发生变化。在接触甲醛后溶解在试纸里的试药就会和甲醛发生化学反应产生化合物,试纸的颜色会从白色变成黄色。颜色改变的程度可以反映出所受光的反射光量,反射光量的强度变化率强度可以作为被测气体的甲醛含量的预测值。预先设定检测线,可以通过测量反应率来检测甲醛浓度的含量。在收集气体的方法上有的是使用自动吸引方式(内置微型空气泵),一些使用扩散式。用测试纸光电光度法分析甲醛的浓度,它的优点是灵敏度高,操作简单,快速测定。但是这种方法在分析甲醛浓度时,往往是目视比色法,它的缺点是:(1)因为许多有色溶液是不够稳定的,不能长久保存,经常需要在测定的时候现配制溶液,比较费时费力费事。(2)目视比色法的精度低,准确率不高,一般相对误差为520。本文设计的便携式甲醛检测仪所使用的甲醛传感器是电化学传感器。它可以使甲醛的浓度转换成微弱的电流信号。这样可以通过电流电压变换电路使微弱的电流信号转换为可以测量的稳定的电压信号,增强了该电信号的稳定性。2 整体设计方案2.1 系统设计的基本要求本次设计的主要内容是设计一种基于单片机的室内甲醛检测仪,主要利用单片机和放大电路对甲醛传感器的输出信号进行采集处理。设计基本要求:(1)快速检测功能:当将仪器至于封闭环境时能快速测出甲醛浓度并显示。(2)超标报警功能:当甲醛浓度超出国标时给予报警提示。2.2 系统设计的思想随着现代电子技术的迅速发展,传感技术已形成一个独立的新兴的高科技领域。传感器的高度自动化、微型化与集成化,减少了对使用者环境和技术的要求,其便携式的特点尤其适合于野外、现场分析的需要。本设计拟采用英国达特公司生产的ch20甲醛传感器,传感器的贵金属电极与挥发的甲醛气体发生反应,产生与挥发的甲醛浓度成正比的电信号。由于甲醛传感器产生的电信号十分微弱,不能直接与控制电路相连接使用,我们将其首先经过一个放大电路,将信号放大,再经过模数转换器将模拟信号转换成数字信号,在单片机电路的作用下,通过lcd将空气中甲醛含量的浓度用数字显示出来3。创新点:(1)使化学检测转化为电信号检测。(2)应用单片机来显示最后结果,成本低。(3)设备便于携带,操作简单。(4)实现单片机控制的智能化。2.3 系统设计方案的对比选择方案一:基于普通51单片机和国产mq138传感器的设计方案国产mq138传感器中能基本实现甲醛测量需要,其信号可以经过放大电路,在经过ad转换芯片后送给单片机进行处理最后显示。其工作模块可以分为:传感器、放大电路、ad电路、单片机、显示电路。通过这几个部分的结合可以基本实现设计的功能,但是由于mq138传感器的线性度极其不理想,而且其测量范围为1ppm10ppm,最低测量值已经远远超过国家标准的最低值0.8ppm。系统所采用的单片机只能进行数据处理,仍需要另外购买ad芯片,给系统造成成本增加,且对电路的性能会造成影响。方案二:基于增强型单片机和进口传感器的设计方案英国达特(dart)公司的甲醛传感器虽然价格为mq138的两倍,但其拥有稳定的线性度,且灵敏度达到0.01ppm,可以满足测量国家标准。系统工作模块也分为传感器、放大电路、ad电路、单片机、显示电路。系统才用的是增强型51单片机即stc12c5a60s2单片机,不但拥有超高的执行速度而且内置了10位的ad转换,可以简单化电路,更可以节约一定的成本,对整体电路的稳定性能更有保障。两个方案的比较:方案一,虽然基本满足测量需求,但是01ppm的范围为盲区,无法测量更无法在超过国标时及时提醒,系统整体稳定性不高。方案二,完全能够满足测量需求,精度高,功耗更低,电路设计简单,稳定性高,更加可靠,所以选用方案二。3 设计开发工具介绍3.1 单片机的概念和特点现代社会中,尽管pc机的应用已经相当普遍,但是,在工控领域,在日益追求小而精、轻而薄的自动化控制器、自动化仪器仪表、家电产品等方面,pc机仍有所不相适宜的地方。而工业控制、仪器仪表、家电产品等市场广阔,要求pc机技术与之相适应。在这种情况下,单片机应运而生了(也称作微型计算机)。微型计算机的基本机构是由中央处理器、储存器、和i/o设备构成的。所谓的单片机是指将微型计算机3个单元的多个分体中的主要功能用1个集成电路芯片来实现,该芯片具有一个微型计算机的基本功能。这种超大规模集成电路芯片即称为单片微型计算机,通常简称单片机。单片机具有以下特点:(1) 受集成度限制,片内存储容量较小,一般8位单片机的rom小于8/16k字节,ram小于256字节,但可在外部扩展,通常rom、ram可分别扩展至64k字节。(2) 可靠性好。芯片本身是按工业测控环境要求设计的,其抗工业噪声干扰优于一般通用cpu;程序指令及常数、表格固化在rom中不易破坏;许多信号通道均在一个芯片内,故可靠性高。(3) 易扩展。片内具有计算机正常运行所必需的部件。芯片外部有许多供扩展用的三总线及并行、串行输入/输出管脚,很容易构成各种规模的计算机应用系统。(4) 控制功能强。为了满足工业控制要求,一般单片机的指令系统中具有极丰富的条件分支转移指令、i/o口的逻辑操作以及位处理功能。一般说来,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。(5) 一般单片机内无监控程序或系统通用管理软件,只放置有用户调试好的应用程序。但近年来也开始出现了在片内固化有basic解释程序的单片机。3.2 单片机的发展和趋势由于单片机具有以上特点,因此在工业控制、数据采集、智能仪器仪表、智能化设备和各种家用电器等领域得到广泛的应用。随着微电子工艺水平的提高,近十年来单片微型计算机有了飞速的发展。归纳起来,它是沿着两条路发展的:1.改进集成电路制造工艺,提高芯片的工作速度,降低工作电压和降低功耗:2.在保留共同的cpu体系结构,最基本的外设装置(如异步串行口,定时器等)和一套公用的指令系统的基础上,根据不同的应用领域,把不同的外设装置集成到芯片内,在同一个家族内繁衍滋生出各种型号的单片机。另外在单片机的应用中,可靠性是首要因素,为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,主要表现在一下几点:(1)eft(electrical fast transient)技术(2)低噪音布线技术及驱动技术(3)采用低频时钟总之,单片机在目前的发展形势下,表现出几大趋势:(1)可靠性及应用水平越来越高,和internet连接已是一种明显的走向;(2)所集成的部件越来越多;(3)功耗越来越低;(4)和模拟电路结合越来越多。3.3 stc12c5a60s2单片机stc12c5a60s2单片机(引脚如图3-1)是宏晶科技生产的一种能够与传统8051完全兼容的新型单片机,它执行速度是传统51单片机的812倍,内部集成max810专用复位电路,2路pwm,8路高速10位a/d转换(即p1口),因此具有很强大的数据处理能力,本身自带的10位a/d转换更是为本设计节约了成本。其基本参数如下4:1.与mcs-51产品指令和引脚完全兼容。2.60k字节可重擦写flash闪存存储器。3.100000次写/擦循环。4.时钟频率:0hz35mhz相当于普通单片机的0420m。5.三级加密存储器。6.1280字节内部ram。7.36/40/44个可编程i/o口线。 8.4个16位定时/计数器,7个中断源。9.2路pwm。 10.低功耗的空闲和掉电模式。 11.片内振荡器和时钟电路。图3-1 stc12c5a60s2 规范引脚3.4 ltc1049cn8运算放大器ltc1049(引脚如图3-2)是一种高性能,低功耗的零漂移运算放大器。此外,ltc1049提供优越的dc和ac性能,其理论供应电流仅为200a。ltc1049拥有典型失调电压漂移0.02v/c, 0.1hz到10hz输入噪声电压的3v。转换速度电压增益为与典型的160db与增益带宽产品的0.8mhz。超载从饱和状态的恢复时间6ms,比削波器放大器显着改善使用外部电容器,可以在ltc1049是一个插件替换与大多数标准运算amps大幅度提高dc性能和降低功耗。其基本参数如下:1.低电源电流:200a2.无需外部元件3.最大失调电压:10v4.最大偏移电压漂移:0.1v/c5.单电源供电:4.75v到16v6.输入共模范围包括地面8.典型的过载恢复时间:6ms9.在8-pin可用,以便和pdip软件包兼容图3-2 ltc1049cn8 的引脚图3.5 lcd1602液晶显示屏lcd显示有很多种,常用的有1602和12864两种,由于本设计中显示的甲醛含量属于较简单的字符,可以考虑使用1602,lcd1602具有显示内容丰富,接口电路简单,人机交流性强等特点,适合本次设计的研究。其具体参数如表3-1,接口信号参数如表3-24。具体参数:表3-1 lcd1602技术参数显示容量:162个字符芯片工作量:4.55.5v工作电流:2.0ma(5.0v)模块最佳工作电压:5.0v字符尺寸:2.954.35(wh)mm接口信号参数:表3-2 lcd1602接口信号表格编号符号引脚说明编号符号引脚说明1vss电源地9d2data i/o2vss电源正极10d3data i/o3vl液晶显示偏压信号11d4data i/o4rs数据/命令选择端12d5data i/o5r/w读/写选择端13d6data i/o6e使能信号14d7data i/o7d0data i/o15bla背光源正极8d1data i/o16blk背光源负极3.6 甲醛传感器本甲醛检测仪采用英国达特(dart)公司生产的甲醛传感器如图3。该传感器是两电极电化学型的传感器,通过扩散原理实现,因此不需要外部采样硬件。当有甲醛气体存在的时候,将会有一个很小的直流产生;传感器本身不需要电源供应,但是产生的这个电流需要外部的数据采集将其变为可读的信号。主要参数如下6:1.正常检测0一10ppm,最大值50ppm;2.输出信号250300nappm;3.分辨率001ppm;4.响应时间30s;5.最大零点沮度漂移(+20一+40c)lppm;6.工作温度-10一40;7.基线飘移0.03/ppm;8.寿命3年。图3-3 甲醛传感器的实物图4 系统硬件设计4.1 系统整体电路的原理基于上述的首选设备,提出了硬件设计功能框图如图4-1所示:传感器ch2o放大电路stc12c5a60s2单片机(a/d转换及数据处理)lcd1602按键图4-1 硬件功能框图报警电路图4-1 硬件功能框图通过查阅资料提出整体的设计框架(如下3点),通过电脑仿真来完成功率放大电路和传感器的研究工作,通过单片机开发板软件和硬件的结合设计出a/d转换程序及lcd显示模块,最后综合在一起,通过实验室进行各项技术指标的测量不断改进、完善。1.信号转换部分:该部分由气体传感器组成,其功能是将被测物浓度变成电信号。2.信号处理部分:该部分由信号变换组成。 信号变换由气体传感器产生的电信号较小且和要求输出的信号不成比例关系,必须经放大后才能得到标准输出信号及控制信号。信号经处理后,输出模拟信号。通过a/d转化为数字信号进入单片机,最后lcd显示,温度信号经变换后供控制和计算用。 3.输出部分:该部分由模拟信号输出和lcd 数字输出两部分组成(通过单片机来实现),由传感器出来的信号经过放大电路进行放大后由单片机经过a/d转换并经过数字滤波和进制转换后送到lcd1602显示,由按键来控制其它功能,当检测到得甲醛含量超过上限值则发出报警。4.2 系统晶振电路的设计单片机在工作时的每个指令的微操作在时间上都有严格的秩序,这样的微操作时间顺序称为时序,单片机时钟信号用于给单片机芯片里的各种微操作提供了一个时间基准, stc12c5a60s2的时钟生产方式分为两种,一种是内部时钟方式,一是外部时钟方式10。内部时钟的方式就是在单片机外部连接一个晶振电路和单片机内部的振荡器发生作用产生时钟脉冲信号。外部时钟形式是把现有的外部时钟信号引入到控制器在里面,这种方法通常被用于多片stc12c5a60s2单片机同时工作时,为了方便单片机系统的同步,一般要求外部信号的高电平的持续时间超过20 ns,且为频率低于12mhz的方波11。该系统以尽量降低功耗的原则使用了内部时钟模式。图4-2 晶振电路图在stc12c5a60s2单片机内部有一个震荡电路,只要在单片机的处理器的xtal1和xtal2引脚外接石英晶体(简称晶振)就构成了自激振荡器并且在单片机内部产生时钟脉冲信号,图中的电容器c2和c3稳定频率和快速起振,电容值在530pf,典型值是22 pf,晶振cys选择的是12 mhz。4.3 系统复位电路的设计复位的含义:单片机开始工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开始运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制寄存器(专用寄存器)内容不确定可能导致定时器溢出、程序尚未开始就要中断及串口乱传向外设发送数据。因此,任何单片机在开始工作前,都必须进行一次复位过程,使单片机处于一种确定的状态 12。复位电路原理:当在stc12c5a60s2单片机的rst引脚接入高电平并且保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。实际的应用中,复位操作有两种基本类型:一种是上电复位,另一种是上电和按键都有效的复位,要求接通电源后,单片机自动实现复位操作。本次设计中的复位电路采用的是开关复位电路,开关s9没有按下时是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容充电(导通)状态,所以rst引脚的电压和vcc相同。随着电容的充电,rst引脚上的电压会逐渐降低。选择合理的充电常数,就可以保证开关按下时rst端有两个机器周期以上的高电平,从而使stc12c5a60s2内部复位。开关按下时是手动复位电路,rst端口通过电阻与vcc电源相接通,通过电阻的分压来可以实现单片机的复位。电路图见图4-3。图4-3 复位电路图4.4 系统放大电路的设计由于传感器的输出信号非常微弱,因此放大器需要选择高放大倍数的运放。电路设计和元器件的选择因此显得非常关键。校准可以通过调整电路的放大倍数,从而在软件中实现校准。具体放大电路如图4-4,其中电流源模拟甲醛传感器输出电流,放大器对其进行转换放大,其放大电路的具体参数及转换放大原理图如图5所示。在系统中的高精度测量放大电路设计中,反馈电阻选为470 k,同时并联一个4.7f的钽电容在没有反向响应时间的情况下降噪7。图4-4 放大电路原理图4.5 系统单片机及显示电路的设计因为stc12c5a60s2单片机和普通51单片机的引脚相同并且完全兼容,因此在该电路设计时,可采用普通的单片机最小系统板来布局就可以了,放大电路的信号可以在经过p1口进入单片机进行a/d转换和数据处理后经过连接p0口的lcd1062从而来进行显示。具体电路如图4-5所示。图4-5 显示电路和stc12c5a60s24.6 系统报警电路设计当电路测试到甲醛浓度超过国家标准的限制性时,将产生一个信号给报警电路。让报警电路报警以此来提醒工作人员查看解决,超限报警电路如下图4-6所示。这是由stc12c5a60s2的p2.6口来进行控制,当超过设置的数值0.08 ppm时,通过预设的程序使p2.6口值变为高电平,从而使三极管导通,报警电路接通,使蜂鸣器发出警号声。这个任务的实现主要依靠程序来完成。图4-6 报警电路5 系统软件设计5.1 程序编写语言介绍对于单片机的开发应用中,逐渐引入了高级语言,c语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有c语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。c语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持c编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植8。基于c语言和汇编语言的优缺点,本系统采用c语言编写方法。 编写软件的主要思想是把要实现的系统功能按照不同的模块进行划分,然后再根据每个模块最终要实现的功能逐个的编写程序。本设计是采用查询的方式来编写整个程序的。5.2 编译软件介绍keil软件简介:在单片机的开发利用的过程中软件同硬件一样都是离不开的,人们编写的汇编语言源程序要成为一个cpu可以执行的机器代码有两种方法手工汇编和机器汇编,现在手工汇编基本上不用了。机器汇编是用汇编软件把源程序编写成机器代码,随着单片机的发展越来越趋向成熟, 从普遍使用汇编语言到逐渐使用高级语言开发,单片机的相关软件开发也在不断地发展,使用最普遍的汇编软件就是keil软件。本设计就采用了keil软件。1.系统概述 keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。 keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2. keil c51单片机软件开发系统的整体结构c51工具包整体结构,如图5-1所示, 其中的ishell和uvision分别是c51 for dos和for windows的集成开发环境,能够完成编辑、编译、连接、调试和仿真等整个开发过程。开发人员可以使用ide本身或者其他编辑器编辑c语言或者汇编源文件。然后分别通过a51和c51编译器编译生成目标文件。 目标文件可以通过lib51来生成库文件, 也可以与库文件一起经l51连接定位生成绝对目标文件。绝对目标文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom中17。 图5-1 c51工具包的整体结构图3. 运行keil51软件见图5-2 图 5-2 软件运行图4.建立项目(1)单击project菜单,再单击下拉菜单的new project,接着弹出一个windows文件的对话框,在“文件名”输入你的第一个c程序项目的名称,“保存”文件扩展名为uv2,然后可以通过点击这个文件来打开以前做的项目。(2)选择需要的单片机,本设计用的是宏晶的stc12c5a60s2单片机。完成以上的步骤,现在可以写程序了。(3)首先我们要在项目中创建新的程序文件或加入旧程序文件。如果你没有现成的程序,那么就要新建一个程序文件。(4)点击保存新建的程序,也可以用菜单filesave或快捷键ctrl+s进行保存。我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时你会发现程序单词有了不同的颜色,说明keil的c语法检查生效了。鼠标在屏幕左边的source group1文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。然后点击“quot;add file to group source group 1”弹出文件窗口,选择刚刚保存的文件,按add按钮,关闭文件窗,程序文件已加到项目中了。这时在source group1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。(5) c程序文件已被我们加到了项目中了,下面就剩下编译运行了。如图5-3,图中1、2、3都是编译按钮,不同是1是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。在4中可以看到编译的错误信息和使用的系统资源情况等,以后我们要查错就靠它了。6是有一个小放大镜的按钮,这就是开启关闭调试模式的按钮,它也存在于菜单debugstartstop debug session,快捷键为ctrl+f5。(6)进入调试模式,软件窗口样式大致如图所示。图中5-4为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。3是复位,模拟芯片的复位,程序回到最开头处执行。按4我们可以打开5中的串行调试窗口,这个窗口我们可以看到从51芯片的串行口输入输出的字符,这里的第一个项目也正是在这里看运行结果。首先按4打开串行调试窗口,再按运行按钮。要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启关闭调试模式按钮。然后我们就可以进行关闭keil等相关操作了。 图5-3 编译运行图 图5-4 调试窗口图(7)hex文件的生成hex文件格式是英特尔公司提出的把数据信息按照地址进行排列的数据信息,数据宽度为字节 ,所有的数据使用16进制数字表示。右击图 5-5上的1项目文件夹,弹出项目功能菜单, 选options for targettarget1 ,出现项目选项设置窗口,选择项目文件夹图标。打开项目选项窗口,转向页面输出选项页,如图5-6所示,1是选择编译输出途径,2设置编译输出生成的文件名,3是决定要不要再创建hex文件。图5-5 项目窗口图图5-6 项目窗口图5.3 主程序模块主程序实现的功能: 图5-7 主程序流程图5.4 模数转换 (1)模数转换模块的主要功能就是把经放大器放大的模拟电压信号转化为单片机能够处理的数字信号,并传送给单片机。(2)stc12c5a60s2转换的流程图见下图5-8所示。 图5-8 数模转换流程图#define uint unsigned int /常量/变量定义/uchar k,i,j;float xdata lv;sbit adcs =p31; /adc0832 chip seclect /接口定义/ /其它引脚略uchar xdata dsw20; /存放sprintf转换字符uchar xdata value149; /点阵字符储存uchar code table= /字符查表unsigned int adc0832(unsigned char channel) /ad转换,返回结果 uchar i=0; adcs=0;/拉低cs端 _nop_(); _nop_(); adclk=1;/拉高clk端 _nop_(); _nop_(); adclk=0;/拉低clk端,形成下降沿1 _nop_();_nop_();adclk=1;/拉高clk端 addi=1;/控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i8;i+) dat|=addo;/收数据 j=0; j=j|addo;/收数据 adclk=1; _nop_(); _nop_(); adclk=0;/形成一次时钟脉冲5.5 按键模块(1)按键是显示人机对话的一个控制按钮,通过对按键的操作,对系统进行发送操作指令,后经与单片机串行通信,然后在液晶上显示。(2)按键查询式的流程图见下图 图5-9 按键流程图uchar get_key() /读键 uchar pass,kcodebuf;static uchar lastkcode,keytime=0; /定义为静态变量,外部不可见,但需要常驻内存.static uchar havekey=0;static uchar keylock=0;kcodebuf=p1 & 0xff;keytime+;if (kcodebuf!=lastkcode) keytime=0;if (kcodebuf=0xff) havekey=0;keylock=0;keytime=0;pass=0;else pass=nusekey;lastkcode=kcodebuf;return(pass);5.6 液晶显示模块本系统使用1602液晶显示。控制程序主要有三部分:向液晶中写入指令;向液晶中写入数据;液晶测试忙碌状态。写命令时,首先测液晶是否忙碌,液晶忙碌信号消失后,置rs及rw引脚低电平,然后使能端en为高电平,下一条指令en为低电平,有一定延时。之后液晶将开始处理这条指令,置位忙碌信号,在指令处理期间将不再响应其他指令或数据请求;写数据,先测是否忙碌,液晶忙碌信号消失后;置rs=1,rw=0,然后使能端en=1;下一条指令en=0,之后液晶将开始处理这条指令,置位忙碌信号,在指令处理期间将不再响应其他指令或数据请求。图5-10 液晶显示的操作流程图液晶的程序主要由初始化函数、写入函数、清ram函数,其中初始化液晶的工作状态,包括光标归位,显示设置,显示移位等,屏幕清空等命令,是使用液晶前必须要执行的函数。子程序流程图如下图所示。图5-11 液晶显示的操作流程图sbit rs=p20; /寄存器选择位,将rs位定义为p2.0引脚sbit rw=p21; /读写选择位,将rw位定义为p2.1引脚sbit e=p22; /使能信号位,将e位定义为p2.2引脚sbit bf=p07; /忙碌标志位,将bf位定义为p0.7引脚函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙unsigned char busytest(void) bit result;rs=0; /根据规定,rs为低电平,rw为高电平时,可以读状态 rw=1; e=1; /e=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=bf; /将忙碌标志电平赋给result e=0; /将e恢复低电平 return result; void writeinstruction (unsigned char dictate) while(busytest()=1); /如果忙就等待 rs=0; /根据规定,rs和r/w同时为低电平时,可以写入指令 rw=0; e=0; /e置低电平(根据表8-6,写指令时,e为高脉冲, / 就是让e从0到1发生正跳变,所以应先置0 delay(1); /空操作两个机器周期,给硬件反应时间 p0=dictate; /将数据送入p0口,即写入指令或地址 delay(1); /空操作四个机器周期,给硬件反应时间 e=1; /e置高电平 delay(1); /空操作四个机器周期,给硬件反应时间 e=0; /当e由高电平跳变成低电平时,液晶模块开始执行命令 void writeaddress(unsigned char x) writeinstruction(x|0x80); /显示位置的确定方法规定为80h+地址码x void writedata(unsigned char y) while(busytest()=1); rs=1; /rs为高电平,rw为低电平时,可以写入数据 rw=0; e=0; /e置低电平(根据表8-6,写指令时,e为高脉冲, / 就是让e从0到1发生正跳变,所以应先置0 p0=y; /将数据送入p0口,即将数据写入液晶模块 delay(1); /空操作四个机器周期,给硬件反应时间 e=1; /e置高电平 delay(1); /空操作四个机器周期,给硬件反应时间 e=0; /当e由高电平跳变成低电平时,液晶模块开始执行命令 void lcdinitiate(void) delay(15); /延时15ms,首次写指令时应给lcd一段较长的反应时间 writeinstruction(0x38); /显示模式设置:162显示,57点阵,8位数据接口delay(5); /延时5ms,给硬件一点反应时间 writeinstruction(0x38);delay(5);writeinstruction(0x38); /连续三次,确保初始化成功delay(5);writeinstruction(0x0c); /显示模式设置:显示开,无光标,光标不闪烁delay(5);writeinstruction(0x06); /显示模式设置:光标右移,字符不移delay(5);writeinstruction(0x01); /清屏幕指令,将以前的显示内容清除delay(5);6 设计总结6.1 全文总结本文就基于单片机的室内甲醛检测仪进行了整体的研究和设计,总结此设计的课题结果,可以大致归结为以下几个方面:(1)学习了单片机的发展路程、硬件结构及其特点,深入学习了stc12c5a60s2单片机的硬件和软件编程及调试方法,深入学习了相关系统电路的分类作用及其特点,以及一些与之相关的程序编写方法。(2)了解了传感器的相关知识,并且对又英国达特公司生产的甲醛传感器做了深入的对比认知,认识了传感器的整体结构及其在国内外的发展情况。(3)对汇编语言在整体上做了了解和认知,深入学习了c语言的优缺点,同时掌握了基本的c语言编程。 (4)对于系统的编译有一个全新的认识,了解了在windows环境下利用keil软件进行程序编译的基本方法。 通过以上所做的内容为课题的进一步研究奠定了一定的基础,但本人的水平有限,在研究上的程度不够深入,论文中存在诸多不足,这需要在以后的学习研究中进一步提高,概括起来有以下几点:(1)对单片机的理论知识方面的学习还需要进一步的加强,同时要结合实际情况对单片机系统的整体设计进行改进,使之更加符合工业和实际需要。(2)在汇编语言的运用上还需要进一步的加强,完善程序编辑,使之更加简洁有效,使语言更加符合设计标准。(3)在硬件系统的整体设计上还需要进一步的完善,根据不同的现场情况进一步改善,使之更加的安全方便。6.2 心得体会毕业的脚步越来越近,毕业设计也接近了尾声,经过3个多月的学习研究,在老师的悉心指导和同学的热心帮助下,自己的理论水平和动手能力都有了很大的提高,但同时也发现了一些问题。首先来说,意识到自己现在所学的知识还是有太多的欠缺,对于单片机的运用和设计还有许多知识需要学习,特别是理论研究和实践相结合的部分需要重点提高;其次,由于在本次设计中遇到许多电路设计上的困难,在老师的悉心指导下,明白了其中一些系统功能的实现方法,但是自己还需要进一步学习;最后,在设计和学习中要多向别人学习,多进行沟通交流,只有那样才能快速的提高自己。以上是我在本次毕业设计过程中的一些心得。参考文献1潘政华.甲醛对人体健康的影响及治理措施j.现代农业,2011,38(6):24-27.3田清华.基于电化学敏感电极的甲醛测试仪的研究d.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江国企招聘2025台州温岭市粮食收储有限责任公司招聘14人笔试参考题库附带答案详解
- 五险一金/年薪12万五九煤炭(集团)招聘50人笔试参考题库附带答案详解
- 2025内蒙古包头市中运铁路运输设备有限公司招聘238人笔试参考题库附带答案详解
- 中国医科大学《审计案例与模拟》2023-2024学年第二学期期末试卷
- 黔南民族职业技术学院《中小学信息技术教学法》2023-2024学年第二学期期末试卷
- 雅安职业技术学院《戏剧影视表演片段训练》2023-2024学年第二学期期末试卷
- 河北科技学院《中医儿科学理论》2023-2024学年第二学期期末试卷
- 陕西科技大学镐京学院《通信系统DSP》2023-2024学年第二学期期末试卷
- 洛阳师范学院《安全科学进展》2023-2024学年第二学期期末试卷
- 徐州工业职业技术学院《教学能力训练》2023-2024学年第二学期期末试卷
- 中信证券公司融资融券业务方案设计
- SZDBZ 194-2016 公园设施维护技术规范
- DBJ04T 289-2020 建筑工程施工安全资料管理标准
- 化工设计知到智慧树章节测试课后答案2024年秋浙江大学
- 《建筑构造与识图》课程标准
- 2025年保健食品从业人员培训考试试题
- 2025年贵州盘江精煤股份有限公司招聘笔试参考题库含答案解析
- 2024年中考数学复习:中点模型专项练习
- 旅行社企业章程范本
- 2025年宁波余姚市直属企业招招聘笔试参考题库含答案解析
- 《心理健康测试》课件
评论
0/150
提交评论