基于单片机的室内甲醛测试系统设计.doc_第1页
基于单片机的室内甲醛测试系统设计.doc_第2页
基于单片机的室内甲醛测试系统设计.doc_第3页
基于单片机的室内甲醛测试系统设计.doc_第4页
基于单片机的室内甲醛测试系统设计.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

基于单片机的室内甲醛测试系统设计海 南 大 学毕 业 论 文(设计)题 目: 基于单片机的室内甲醛测试系统设计 学 号: 20090502310030 姓 名: 王博 年 级: 09电气一班 学 院: 机电工程学院 系 别: 电气系 专 业: 电气工程及其自动化 指导教师: 储春华 完成日期: 2013年 5 月 1 日 摘 要众所周知,甲醛对人对危害极大,直接危害着人们的身体健康和生命安全。当今的社会中甲醛通过各种途径侵入人们的生活,特别是在房屋装修的过程中,装修材料中残留大量的甲醛,所以应如何快速高效的检测室内甲醛的含量是否超标就显得尤为重要。本项目设计了一种在室内具有检测和超限报警功能的智能甲醛检测仪,操作简单,能够快速准确地对室内空气中甲醛含量予以测定显示,若超标则报警提示。该设计方案基于STC12C5A60S2单片机和甲醛传感器,将传感器输出的检测信号放大后,通过A / D转换电路调整,再通过单片机进行数据处理,最后由LCD显示甲醛浓度值。本设计具有显示报警功能,并且具有功耗低、精度高、可靠等特点。关键词:甲醛;STC12C5A60S2;传感器;A / D;LCDAbstract As everyone knows, the formaldehyde of great harm, directly endanger peoples health and life safety. Formaldehyde todays society into peoples life through a variety of ways, especially in the process of house decoration, a lot of residual formaldehyde decoration materials, so is particularly important for detecting the content of indoor formaldehyde exceed the standard of whether how fast and efficient. This project has designed one kind of intelligent detector formaldehyde, with detection and overrun in the indoor alarm function, simple operation, can quickly and accurately to the indoor air formaldehyde content determination of display, if exceed the standard, the alarm. The design of STC12C5A60S2 MCU and formaldehyde sensor based on, the output signal of the sensor is amplified by A / D conversion circuit, adjust, and then data processing through the MCU, and finally by the LCD display formaldehyde concentration. This design has display and alarm function, and has the features of low power consumption, high precision, reliable.。Keywords: formaldehyde; STC12C5A60S2; sensor; A / D; LCD29目 录1 绪论11.1 引言11.2 甲醛检测仪的选择12 总体方案设计22.1系统设计基本要求22.2系统设计的思想22.3 系统设计方案论证33 设计开发工具介绍43.1 单片机的概念和特点43.2 STC12C5A60S2单片机43.3 LTC1049CN8运算放大器53.4 LCD1602液晶显示屏63.5 甲醛传感器74 系统硬件设计部分84.1 系统整体电路的原理84.2 系统晶振电路的设计943 系统复位电路的设计104.4系统放大电路设计114.5 系统单片机及显示电路的设计124.6系统报警电路设计135 系统软件设计145.1 程序编写语言介绍145.2 主程序模块155.3 模数转换155.4 按键模块165.5液晶显示模块176 系统仿真187 设计总结19致谢20参考文献21附件211 绪论1.1 引言甲醛是一种无色、有强刺激性气味的气体。溶于水、醇类和醚。甲醛在室温下是气体,通常以水溶液的形式存在。37%的水溶液称为福尔马林,医疗和科研部门通常用来做标本的防腐保存。在我们国家有毒化学物质优先控制名单中甲醛位居第二。甲醛一直是世界卫生组织确定为癌症和导致畸形的物质材料1。甲醛可以和蛋白质结合,吸入高浓度甲醛会引起呼吸道严重的刺激和水肿、眼痛、头痛,也可能发生支气管哮喘,人的皮肤直接接触甲醛,可能会引起皮炎、皮肤色斑、皮肤坏死。经常吸入甲醛,也能导致慢性中毒,出现黏膜充血、皮肤刺激疾病、过敏性皮炎、指甲角化以及脆弱等。全身症状有头痛、疲劳、心悸、失眠、体重减轻和植物神经紊乱等2。甲醛的来源途径一般有这些方面:1室内装饰材料里面的合成板材,如胶合板、细木工板、高密度板、刨花板。甲醛在这些板材中起胶合剂、防腐剂的角色,主要用于加强材料的硬度、防虫、腐蚀。板材里的残余和未参与反应的甲醛向周围生态环境逐步释放甲醛,是室内空气中甲醛的主要来源。2使用合成板制造的家具,厂家为追求利润的不惜使用不合格的木料板材,再粘贴材料表面时使用不合格的胶水,导致家具的甲醛含量超标。3含有甲醛并且可能会向周围环境发出的各种装饰材料,如墙纸、地毯、油漆等。1.2 甲醛检测仪的选择目前,市场的甲醛检测器有许多不同的种类,其中比较常见的是使用试验纸光电光度法,当甲醛吹到浸有发色剂的试纸上时,浸有发色剂的TAB组合就会发生化学反应使标签颜色发生变化。在接触甲醛后溶解在试纸里的试药就会和甲醛发生化学反应产生化合物,试纸的颜色会从白色变成黄色。颜色改变的程度可以反映出所受光的反射光量,反射光量的强度变化率强度可以作为被测气体的甲醛含量的预测值。预先设定检测线,可以通过测量反应率来检测甲醛浓度的含量。在收集气体的方法上有的是使用自动吸引方式(内置微型空气泵),一些使用扩散式。用测试纸光电光度法分析甲醛的浓度,它的优点是灵敏度高,操作简单,快速测定。但是这种方法在分析甲醛浓度时,往往是目视比色法,它的缺点是:(1)因为许多有色溶液是不够稳定的,不能长久保存,经常需要在测定的同时配制溶液,比较费时费事。(2)目视比色法的精度低,准确率不高,一般相对误差为520%。本文设计的便携式甲醛检测仪所使用的甲醛传感器是电化学传感器。它可以使甲醛的浓度转换成微弱的电流信号,再通过电流电压变换电路使微弱的电流信号转换为可以测量的稳定的电压信号,增强了该电信号的稳定性。2 总体方案设计2.1系统设计基本要求本系统采用单片机为控制核心元件,以实现便携式甲醛检测仪的基本控制功能。系统主要功能内容包括:开始测量、数据处理、超标报警、按键设置等功能。设计基本要求:(1)快速检测功能:当将仪器至于封闭环境时能快速测出甲醛浓度并显示。(2)超标报警功能:当甲醛浓度超出国标时给予报警提示。(3)测量精确度高。(4)设备便于携带,操作简单。2.2系统设计的思想 随着现代电子技术的迅速发展,传感技术已形成一个独立的新兴的高科技领域。传感器的高度自动化、微型化与集成化,减少了对使用者环境和技术的要求,其便携式的特点尤其适合于野外、现场分析的需要。本设计拟采用英国达特公司生产的甲醛传感器,传感器的贵金属电极与挥发的甲醛气体发生反应,产生与挥发的甲醛浓度成正比的电信号。由于甲醛传感器产生的电信号十分微弱,不能直接与控制电路相连接使用,我们将其首先经过一个放大电路,将信号放大,再经过模数转换器将模拟信号转换成数字信号,再经过单片机进行数据处理,最后通过LCD将空气中甲醛含量的浓度用数字显示出来3。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 单片机的概念和特点单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃且颇具生命力的机种。单片微型机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:CPU、存储器和I/O接口电路等。因此,单片机与适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机同时又是一种集微型计算机主要功能部件于同一块芯片上的微型计算机,并由此而得名。3.2 STC12C5A60S2单片机STC12C5A60S2单片机(引脚如图3-1)是宏晶科技生产的一种能够与传统8051完全兼容的新型单片机,它执行速度是传统51单片机的8-12倍,内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(即P1口),因此具有很强大的数据处理能力,本身自带的10位A/D转换更是为本设计节约了成本。其基本参数如下4:1.与MCS-51产品指令和引脚完全兼容。2.60K字节可重擦写FLASH闪存存储器。3.100000次写/擦循环。4.时钟频率:0Hz-35MHz,相当于普通单片机的0-420MHz。5.三级加密存储器。6.1280字节内部RAM。7.36/40/44个可编程I/O口线。 8.4个16位定时/计数器,7个中断源。9.2路PWM。 10.低功耗的空闲和掉电模式。 11.片内振荡器和时钟电路。图3-1 STC12C5A60S2 规范引脚3.3 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到16V图3-2 LTC1049CN8 的引脚图6.输入共模范围包括地面8.典型的过载恢复时间:6ms 9.在8-Pin可用,以便和PDIP软件包兼容3.4 LCD1602液晶显示屏LCD显示有很多种,常用的有1602和12864两种,由于本设计中显示的甲醛含量属于较简单的字符,可以考虑使用1602,LCD1602具有显示内容丰富,接口电路简单,人机交流性强等特点,满足设计要求。其具体参数如表3-1,接口信号参数如表3-25。具体参数:显示容量:162个字符芯片工作量:4.55.5V工作电流:2.0Ma(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm表3-1 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-2 LCD1602接口信号表格3.5 甲醛传感器本甲醛检测仪采用英国达特(DART)公司生产的甲醛传感器如图3-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所示甲 醛传 感 器放大电路STC12C5A60S2单片机(A/D转换及数据处理)LCD1602按键模块图4-1 硬件功能框图报警电路图4-1 硬件功能框图甲醛检测仪的核心控制器选用STC12C5A60S2单片机。单片机与LTC1049CN8运算放大器构成模拟量采集系统,完成数据的采集,并通过A/D以及LCD1602液晶显示器完成数据的转换和显示。4.2 系统晶振电路的设计单片机在工作时的每个指令的微操作在时间上都有严格的秩序,这样的微操作时间顺序称为时序,单片机时钟信号用于给单片机芯片里的各种微操作提供了一个时间基准, STC12C5A60S2的时钟生产方式分为两种,一种是内部时钟方式,一是外部时钟方式7。内部时钟的方式就是在单片机外部连接一个晶振电路和单片机内部的振荡器发生作用产生时钟脉冲信号。外部时钟形式是把现有的外部时钟信号引入到控制器在里面,这种方法通常被用于多片STC12C5A60S2单片机同时工作时,为了方便单片机系统的同步,一般要求外部信号的高电平的持续时间超过20 ns,且为频率低于12MHz的方波8。该系统以尽量降低功耗的原则使用了内部时钟模式。图4-2 晶振电路图在STC12C5A60S2单片机内部有一个震荡电路,只要在单片机的处理器的XTAL1和XTAL2引脚外接石英晶体(简称晶振)就构成了自激振荡器并且在单片机内部产生时钟脉冲信号,如图4-2中的电容器C2和C3起稳定频率和快速起振作用,电容值在5-30pF,典型值是22 pF,晶振CYS选择的是12 MHz。4.3 系统复位电路的设计 复位的意义单片机开始工作的时候,必须处于一种确定的状态,否则,不知哪是第一条程序和如何开始运行程序。端口线电平和输入输出状态不确定可能使外围设备误动作,导致严重事故的发生;内部一些控制寄存器(专用寄存器)内容不确定可能导致定时器溢出、程序尚未开始就要中断及串口乱传向外设发送数据.因此,任何单片机在开始工作前,都必须进行一次复位过程,使单片机处于一种确定的状态。复位电路原理当在STC12C5A60S2单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。实际的应用中,复位操作有两种基本类型:一种是上电复位,另一种是上电和按键都有效的复位,要求接通电源后,单片机自动实现复位操作。本次设计中的复位电路采用的是开关复位电路,开关S7没有按下时是上电复位电路,上电复位电路在上电的瞬间,由于电容上的电压不能突变,电容充电(导通)状态,所以RST引脚的电压和VCC相同。随着电容的充电,RST引脚上的电压会逐渐降低。选择合理的充电常数,就可以保证开关按下时RST端有两个机器周期以上的高电平,从而使STC12C5A60S2内部复位。开关按下时是手动复位电路,RST端口通过电阻与VCC电源相接通,通过电阻的分压来可以实现单片机的复位。电路图见图4-3。图4-3 复位电路图4.4系统放大电路设计由于传感器的输出信号非常微弱,因此放大器需要选择高放大倍数的运放。电路设计和元器件的选择因此显得非常关键。校准可以通过调整电路的放大倍数,从而在软件中实现校准。具体放大电路如图4-4,用电压源信号模拟甲醛传感器输出,放大器对其进行放大。在系统中的高精度测量放大电路设计中,反馈电阻选为470 k,同时并联一个4.7F的钽电容在没有反向响应时间的情况下降噪9。 图4-4放大电路电路原理图4.5 系统单片机及显示电路的设计由于STC12C5A60S2单片机与普通51单片机的引脚相同且完全兼容,因此在设计电路时可以采用普通的单片机最小系统板进行布局即可,放大电路的信号可以经过P1口进入单片机进行AD转换和数据处理后经过连接P0口的LCD1062进行显示。其具体电路如图4-5所示图4-5显示电路4.6系统报警电路设计当电路测试到甲醛浓度超过国家标准的限制性时,将产生一个信号给报警电路。让报警电路报警以此来提醒工作人员查看解决,超限报警电路如下图4-6所示。 这是由STC12C5A60S2的P2.6口来进行控制,当监测到的甲醛浓度超过设置的数值0.08 PPM时,通过预设的程序使P2.6口值变为高电平,从而使三极管导通,报警电路接通,使蜂鸣器发出警号声。这个任务的实现主要依靠程序来完成。图4-6 报警电路5 系统软件设计5.1 程序编写语言介绍 在单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有C语言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、容易阅读、维护等优点,且编写的模块程序易于移植10。基于C语言和汇编语言的优缺点,本系统采用C语言编写方法。 5.2 主程序模块 主程序实现的功能: 图5-1主程序流程图5.3 模数转换(1)模数转换模块的主要功能就是把经放大器放大的模拟电流信号转化为单片机能够处理的数字信号,并传送给单片机。 (2)STC12C5A60S2转换的流程图见下图5-2所示。图5-2数模转换流程图5.4 按键模块 (1)按键是显示人机对话的一个控制按钮,通过对按键的操作,对系统进行发送操作指令,后经与单片机串行通信,然后在液晶上显示。(2)按键的流程图见下图图5-3按键流程图5.5液晶显示模块本系统使用1602液晶显示。控制程序主要有三部分:向液晶中写入指令;向液晶中写入数据;液晶测试忙碌状态。写命令时,首先测液晶是否忙碌,液晶忙碌信号消失后,置RS及RW引脚低电平,然后使能端EN为高电平,下一条指令EN为低电平,有一定延时。之后液晶将开始处理这条指令,置位忙碌信号,在指令处理期间将不再响应其他指令或数据请求;写数据,先测是否忙碌,液晶忙碌信号消失后;置RS=1,RW=0,然后使能端EN=1;下一条指令EN=0,之后液晶将开始处理这条指令,置位忙碌信号,在指令处理期间将不再响应其他指令或数据请求。液晶的程序主要由初始化函数、写入函数、清RAM函数,其中初始化液晶的工作状态,包括光标归位,显示设置,显示移位等,屏幕清空等命令,是使用液晶前必须要执行的函数。子程序流程图如下图所示。图5-4 液晶显示的操作流程图 6 系统仿真Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。前面已经把单片机系统的硬件设计和软件设计完成了,下一步就可以着手进行仿真,因为在设计的过程之中肯定有许多的错误,需要进行仿真来发现错误和调试错误。这样才能使单片机低功耗计数系统的设计更加完善,本次系统仿真采用的是软件仿真,使用的是proteus软件。Proteus软件由ISIS和ARES两个软件构成,其中ISIS是原理图编辑与仿真软件,ARES是布线编辑软件。本次系统的硬件设计其中的原理图编辑和PCB布线就是在这个软件环境中完成的,至于软件设计,则是采用proteus软件中的ISIS和Keil uVision进行联合调试。当硬件设计和软件设计都完成的时候就可以看到虚拟的基于单片机的甲醛测试系统的运行,仿真效果见附件一。最后特别要指出的是:由于此款仿真软件中未有甲醛传感器,因此用滑动电阻器代替,调节滑动变阻器阻值的大小来为本系统提供不同的采集信号.7 设计总结 本文就基于单片机的室内甲醛检测仪进行了整体的研究和设计,总结此设计的课题结果,可以大致归结为以下几个方面:(1)学习了单片机的发展路程、硬件结构及其特点,深入学习了STC12C5A60S2单片机的硬件和软件编程及调试方法,深入学习了相关系统电路的分类作用及其特点,以及一些与之相关的程序编写方法。(2)了解了传感器的相关知识,并对甲醛传感器做了深入的对比认知,认识了传感器的整体结构及其一些基本特性。(3)深入学习了C语言的优缺点,同时掌握了基本的C语言编程。 (4)对于系统的编译有一个全新的认识,了解了在Windows环境下利用Keil软件进行程序编译的基本方法。 通过以上所做的内容为课题的进一步研究奠定了一定的基础,但本人的水平有限,在研究上的程度不够深入,论文中存在诸多不足,这需要在以后的学习研究中进一步提高,概括起来有以下几点:(1)对单片机的理论知识方面的学习还需要进一步的加强,同时要结合实际情况对单片机系统的整体设计进行改进,使之更加符合工业和实际需要。(2)在C语言的运用上还需要进一步的加强,完善程序编辑,使之更加简洁有效,使语言更加符合设计标准。(3)在硬件系统的整体设计上还需要进一步的完善,根据不同的现场情况进一步改善,使之更加的安全方便。致 谢本论文是在储春华老师的悉心指导下完成的。老师严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。在此,谨向储老师表示崇高的敬意和衷心的感谢!同时对在我作做毕设的过程中给我提供帮助的同学和朋友表示感谢。参考文献1潘政华.浅论甲醛对人体健康的影响及治理措施J.现代农业,2011.38(6):24-27.2石靖芳.手术室人员职业危险因素分析及防护J.齐齐哈尔医学院学报,2009.15-16. 3田清华.基于电化学敏感电极的甲醛测试仪的研D.河北:燕山大学,2007:29-31.4宏晶科技STC12C5A60S2系列单片机数据手册S.2010.5长沙太阳人电子有限公司SMC1602A数据手册S.2006.6DART公司甲醛传感器数据手册S.2004.7丁元杰.单片微机原理及应用M.北京:机械工业出版社,1993:22-24.8赵茂泰.智能仪器原理及应用M.北京:电子工业出版社,2001:32-37.9葛化敏,叶小岭.基于MSP430F449的甲醛检测仪设计J -工业仪表与自动化装置,2009,45(8):34-40.10马忠梅等.单片机的C语言应用程序设计M.北京航空航天大学出版社,1997:23-25.附件附件一 系统仿真原理图附录二 检测主程序程序#include /调用外函数/#include #include #include #include #include #include /*初始化CPU*/void init_cpu() /初始化cPu EA=1;TR0=1;TR1=1;TMOD=0x11;TH1=0x3c;TL1=0xb0;/*void time1(void) interrupt 3 using 1 TH1=(65536-50000)/256;TL1=(65536-50000)%256; keyval=P1; * /初始化CPU结束/void main_menu_initial() /LCD主菜单初始化./main1_menu0.menu_count=4; /有4个菜单项./main1_menu0.display=measurearray; /定义一个”开始测量“数组main1_menu0.subs=NULL; main1_menu0.children_menus=measure_menu;/当前菜单子菜单的指针main1_menu0.parent_menus=NULL; /还有“数据存储”、“时间设置”/void measure_menu_initial() /“开始测量”菜单设置/ measure_menu0.menu_count=2; measure_menu0.display=qr; /开始测量函数, 确认. measure_menu0.subs=start_measure_function; /开始测量函数 measure_menu0.children_menus=NULL; measure_menu0.parent_menus=main1_menu; measure_menu1.menu_count=2; measure_menu1.display=qx;/开始测量函数, 取消. measure_menu1.subs=NULL; measure_menu1.children_menus=NULL; measure_menu1.parent_menus=main1_menu; /还有void store_menu_initial()、void time_menu_initial()/void led_menu_pro() max_item=menu_led-menu_count;switch(keyval)case 0: break;case 1: /向上键.if(user_choosen=0)user_choosen=max_item;shuaxin=1;user_choosen-;break; /“向上”“向下”“确认”“取消”键/if(shuaxin)/是否需要刷新LCD标志位. Clr_Scr(); shuaxin=0;led_menu_show();v oid led_menu_show()uchar n;max_item=menu_led-menu_count;if (max_item=4) /菜单项为3则表示为主菜单.for(n=0;n4;n+) draw_bmp(n*2,20,96,0,menu_ledn.display);select_item(user_choosen); /标记出当前菜单项.elseswitch(temp_choosen) case 0: draw_bmp(0,20,96,0,measurearray); /“开始测量”数组break; default:break;for(n=0;n1)&0x1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿3 ADDI=1;/控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i8;i+) dat|=ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); dat=1; if(i=7)dat|=ADDO; for(i=0;i8;i+) j=0; j=j|ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); j=j7; ndat=ndat|j; if(i=1; ADCS=1;/拉低CS端 ADCLK=0;/拉低CLK端 ADDO=1;/拉高数据端,回到初始状态 dat=8; dat|=ndat; return(dat); /return ad kvoid tra(uchar *p) /数组dsp里面的字符查询后,再储储存到另一个显示数组valuevoid main_Menu() Clr_Scr(); / 先清屏 / CS2=1;CS1=0; hz_disp16(0,32,1,jiaquan); /甲/醛/测/量/数/据/存/储/ delay(2000); do /* k=Adc0832(0); /AD转换结果 l=k/255.0*100.0;ltemp=floor(l);dsw0=ltemp/10;dsw1=ltemp%10;/ sprintf(dsw,%2.3f,l); / dsw0=1; switch(dsw0) case 0: sz_disp16(2,32,1,sz0); break; case 1:sz_disp16(2,32,1,sz9); switch(dsw1) case 0: sz_disp16(2,40,1,sz0); break; case 1:sz_disp16(2,40,1,sz9); */ sz_disp16(2,40,1,sz0); /* tra(dsw); CS2=1;CS1=0; sz_disp16(2,56,1,value);*/ while(P1_3);附件四 按键模块程序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=kcodeb

温馨提示

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

评论

0/150

提交评论