多路开关控制的温湿度监测系统_第1页
多路开关控制的温湿度监测系统_第2页
多路开关控制的温湿度监测系统_第3页
多路开关控制的温湿度监测系统_第4页
多路开关控制的温湿度监测系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、多路开关控制的温湿度监测I39目 录第一章 概述11.2传感器的技术简介和发展前景11.3传感器的实现的功能1第二章系统总体方案设计22.1 温度传感器22.1.1 温度传感器DS18B20的描述 DS18B20简介22.1.2 DS18B20的结构 内部结构42.1.3 DS18B20工作原理52.1.4 DS18B20的应用电路52.2 湿度传感器HS110082.2.1 主要特性82.2.2 工作原理82.3 AD转换器ADC080992.3.2 ADC0809内部结构102.3.3 ADC0809外部特性(引脚功能)102.3.4 ADC0809的工作过

2、程112.4 单片机89S51122.5 CD4051多路开关14第三章 系统的硬件设计和连接163.2 显示与报警的设计17第四章 软件设计194.1 T0中断流程图204.2 温度主程序流程图214.3 程序清单22第五章 结论与展望28附 录2989S51系统程序及子程序29第一章 概述1.1 概述随着时代科技的迅猛发展,微电子学和计算机等现代电子技术的成就给传统的电子测量与仪器带来了巨大的冲击和革命性的影响。常规的测试仪器仪表和控制装置被更先进的智能仪器所取代,使得传统的电子测量仪器在远离、功能、精度及自动化水平定方面发生了巨大变化,并相应的出现了各种各样的智能仪器控制系统,使得科学实

3、验和应用工程的自动化程度得以显著提高。1.2传感器的技术简介和发展前景信心革命的三大重要支柱是信息的采集、传输和处理。信息采集中,首先要获得原始的信息,其最基本的元件是传感器,关键技术是传感器技术。因此,传感器及其相关的应用技术(传感器、与传感器相关的电子技术、信息处理)是信息领域的源头技术。传感器技术是新技术革命和信息社会的重要技术基础,是现代科技的开路先锋,也是当代科学技术发展的一个重要标志。传感器技术、通信技术、计算机技术、分别对应信息技术中的采集、传输和处理。如果说计算机是人类大脑的扩展,那么传感器就是人类五官的延伸。当集成电路、计算机技术飞速发展时,电脑的运算速度和信息处理能力得以成

4、倍的提高,这时人们才逐步认识到信息摄取装置:传感器没跟上信息技术的发展,因而惊呼“大脑发达、五官不灵”。世界上技术发达的国家对传感器技术开发都十分重视。目前,传感器及其应用技术已成为我国国民经济发展不可或缺的一部分,传感器在工业部门的应用普及率已被国际社会作为衡量一个国家智能化、数字化以及网络化的重要标志之一。1.3传感器的实现的功能传感器作为测试系统的第一环节,将被测系统或过程中需要观测的信息转化为人们所熟悉的各种信号,这是测试过程中必须完成的首要任务。通常,传感器将被测物流量转化成以电量为主要形式的电信号。第二章 系统总体方案设计 本设计是基于单片机对数字信号的高敏感和可控性、温湿度传感器

5、可以产生模拟信号,和A/D模拟数字转换芯片的性能,此设计以89S51基本系统为核心的一套检测系统,其中包括A/D转换、单片机、复位电路、温度检测、湿度检测、键盘及显示、报警电路、系统软件等部分的设计。系统总体方框图如图2.1。串行口LED显示单片机89S51CD4051多路开关DS18B20温度检测CD4051多路开关报警电路A/D转换ADC0809HS1100湿度检测图2.1 系统总体框图本设计由信号采集、信号分析和信号处理三个部分组成的:(1) 信号采集 由DS18B20、HS1100及多路开关CD4051组成;(2) 信号分析 由A/D转换器ADC0809、单片机89S51基本系统组成;

6、(3) 信号显示 由串行口LED显示器和报警电路组成。2.1 温度传感器DS-18B20数字温度传感器是采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 2.1.1 温度传感器DS18B20的描述 DS18B20简介DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建

7、传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设

8、定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 DS1

9、8B20技术性能描述 1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 2 测温范围 55125,固有测温分辨率0.5。 3 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温 4 工作电源: 35V/DC 5 在使用中不需要任何外围元件 6 测量结果以912位数字量方式串行传送 7 不锈钢保护管直径 6 8 适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温 9 标准安装螺纹 M10X1, M12X1.

10、5, G1/2”任选 10 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 2.1.2 DS18B20的结构 内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。 DS18B20内部结构图外形和引脚DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 2.1.3 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且

11、温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用

12、于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 DS18B20测温原理框图2.1.4 DS18B20的应用电路DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。下面就是DS18B20几个不同应用方式下的测温电路图: DS18B20寄生电源供电方式电路图 如下面图1所示,在寄生电源供电方式下,DS18B20从单线信号线上汲取能量: 在信号线DQ处于高电平期间把能量储存在内部 电容里,在信号线处于低电平 期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。 独特的寄生电源方式有三个好处: 1)进行远距离测温时,无需本地电源 2)可以在没

13、有常规电源的条件下读取ROM 3)电路更加简洁,仅用一根I/O口实现测温 要想使DS18B20进行精确的温度转换,I/O线必须保证在温度转换期间提供足够的能量,由 于每个DS18B20在温度转换期间工作电流达到1mA,当几个温度传感器挂在同一根I/O线上进行多点测温时,只靠4.7K上拉电阻就无法提供足够的 能量,会造成无法转换温度或温度误差极大。 因此,图4电路只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中。并 且工作电源VCC必须保证在5V,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。 图 1DS18B20寄生电源强上拉供电方式电路图 改进的寄生电源供电

14、方式如下面图2所示,为了使DS18B20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 E2存储器操作时,用MOSFET把I/O线直接拉到VCC就可提供足够的电流,在发出任何涉及到拷贝到E2存储器或启动温度转换的指令后,必须在最 多10S内把I/O线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺 点就是要多占用一根I/O口线进行强上拉切换。 图2 注意:在图1和图2寄生电源供电方式中,DS18B20的VDD引脚必须接地 DS18B20的外部电源供电方式 在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,

15、不存在电源电流不足的问题,可以保证 转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空 ,否则不能转换温度,读取的温度总是85。 图3:外部供电方式单点测温电路 图4 :外部供电方式的多点测温电路图 外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度 监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根VCC引线。在外接电源方式下, 可以充分发挥DS18B20宽电源电压范围的优点,即使电源电压VCC降到

16、3V时,依然能够保证温度量精度。2.2 湿度传感器HS1100 测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。下面介绍HS1100(顶端接触)/HS1101(侧面接触)湿度传感器及其应用。2.2.1 主要特性(1)监测速度快;(2)高精度和高可靠性;(3)快速响应时间和长期稳定性;(4)使用方便体积小;(5)适用于线性电压输出和频率输出两种电路;(6)适宜于制造流水线上的自动插件和自动装配过程

17、等。相对湿度在1%100%RH范围内,电容量由16pF变到200pF,其误差不大于2%RH、响应时间小于5S、温度系数为0.04pF/,可见精度是较高的。2.2.2 工作原理HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。如何将电容的变化量准确地转变为计算机易于接受的信号,常用方法是将该湿敏电容置于555振荡电路中,将电容值的变化转为与之成反比的电压频率信号,可直接被计算机所采集。HS1100/HS1101湿度传感器在不同的相对湿度中的电容值不同,而容值得改变使输出的频率发出相应的改变,HS1100/HS1101的容值随着相对湿度的增

18、大而增大,因此输出频率随着相对湿度值的变大而变小,即频率降低。表2.1给出了输出频率的典型值。图2.4给出了HS1101典型555应用电路。图2.4 典型555应用电路2.3 AD转换器ADC0809 ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。 .3.1 ADC0809主要特2征 1)8路输入通道,8位AD转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) 4)单个5V电源供电

19、5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 2.3.2 ADC0809内部结构ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近 图2.32 ADC0809内部结构图 图2.33 ADC0809引脚图2.3.3 ADC0809外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADD

20、B、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 2.3.4

21、 ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式 对于一

22、种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。

23、首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。2.4 单片机89S51为了设计此系统,此系统采用了89S51单片机作为控制芯片,它具有以下特性:片内程序存储器含有4KB的Flash存储器,允许在线编程,擦写周期可达1000次;片内数据存储器内含128字节的RAM;I/O口具有32根可编程I/O线;具有两个16位I/O线;中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;串行口是一个全双工的串行通信口;具有两个数据指针DPTR0和DPTR1;低功耗节电模式有节电模式和掉电模式;包含3级程序锁定位;AT89S51的电源电压为4.05.5V,AT8

24、9LS51的电源电压为2.74.0V;振荡器频率033MHz(AT89S51),016MHz(AT89LS51);具有片内看门狗定时器;灵活的在线片内编程模式(字节和页编程模式);具有断电标志模式POF。89S51引脚如图2.7。图2.7 89S51的引脚图功能说明如下:VCC:供电电压。 GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1

25、口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉

26、优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉

27、冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

28、注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.5 CD4051多路开关 多路开关,有称“多路模拟转换器”。多路开关通常有n个模拟量输入通道和一个公共的模拟输入端,并通过地址线上不同的地址信号把n个通道中任一通道输入的模拟信号输出,实现有n线到一线的接通功能。反之,当模拟信号有公共输出端输入时 ,作为信号分离器,实现了1线到n线的分离功能。因此,多路开关通常是一种具有双向能力的器件在本设计中,

29、由于采用了温湿度双量控制,所以在信号采集中将有两个模拟量被提取,这时选用多路开关就是很必要的。此系统选用的是CD4051多路开关,它是一种单片、COMS、8通道开关。该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。CD4051的内部原理框图如图附录1所示:图 CD4051的内部原理框图CD4051 引脚功能见图附录1。CD4051相当于一个单刀八掷开关,开关接通哪一通道,由输入的3位地址码ABC来决定。其真值表见表1。INH是禁止端,当 INH=1时,各通道均不接通。此外,CD4051还设有另外一个电源端VEE,以作为电平位

30、移时使用,从而使得通常在单组电源供电条件下工作的 CMOS电路所提供的数字信号能直接控制这种多路开关,并使这种多路开关可传输峰峰值达15V的交流信号。例如,若模拟开关的供电电源VDD=5V, VSS=0V,当VGG=5V时,只要对此模拟开关施加05V的数字控制信号,就可控制幅度范围为5V5V的模拟信号。输出端OUT/IN输出端OUT/IN和各通道的接通关系如表1表1 输出端OUT/IN输出端OUT/IN和各通道的接通关系输入状态接通通道 输入状态接通通道INHCBAINHCBA000000101500011011060 010201117001131xxx均不显示01004第三章 系统的硬件设

31、计和连接3.1ADC0809与89S51单片机的接口设计图3.1 ADC0809与89S51单片机P口直接相连的硬件接口 图3.2 ADC0809与89S51单片机接口原理图 图3.3 ADC0809与89S51单片机接口PCB图3.2 显示与报警的设计3.2.1显示电路在单片机应用系统设计中,一般都是把键盘和显示器放在一起考虑。本设计是利用89S51的串行口实现键盘/显示器接口。当89S51的串行口未作它用时,使用89S51的串行口来外扩键盘/显示器。应用89S51的串行口方式0的输出方式,在串行口外接移位寄存器74LS164,构成键盘/显示器接口,8个74LS164:74LS164(0)7

32、4LS164(7)作为8位段码输出口,74LS138的Y0作为键输入线,Y2作为同步脉冲输出控制线。这种静态显示方式亮度大,很容易作到显示不闪烁。静态显示的优点是CPU不必频繁的为显示服务,因而主程序可不必扫描显示器,软件设计比较简单,从而使单片机有更多的时间处理其他事务。3.2.2报警电路报警电路在微型计算机控制系统中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常

33、值,进行显示和控制。本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过MCS-51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,P3.2接晶体管基极输入端。当P3.2输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.2输出低电平“0”时,三极管截止,蜂鸣器停止发声。图3.2是一个简单的使用三极管驱动的峰鸣音报警电路:NPN5.6K3.3K+5VP3.289S51PB2130UP002A图3.2 三极管驱动的峰鸣音报警

34、电路三极管驱动的峰鸣音报警电路本设计是为在温湿度测量中对温湿度的上下限超出是的提示报警,接口位于单片机AT89S51的P3.2口,但温湿度过限时,P3.2口被置0,本系统开始工作。第四章 软件设计温/湿度控制主程序的设计应考虑以下问题:(1)键盘扫描、键码识别和温/湿度显示;(2)温湿度采样,数字滤波;(3)越限报警和处理。通常,符合上述功能的温度控制程序由主程序和T0中断服务程序两部分组成。在该软件系统中,定时器T0为工作方式1,定时周期为125ms,8次定时器中断为1S,由于实际环境温度和湿度变化是连续和平缓的,故这里采用分段定值平缓滤波算法处理每次测得的温度和湿度值,有效防止了突发干扰使

35、测得值波动很大,导致反馈系统关启工作,影响系统的稳定,提高了系统的抗干扰性。由于系统中设计有看门狗监视电路,所以在编程时要特别注意,传统的等待按键释放的方法较好的解决了这个问题,既保证当按键按下后,置键按下标志位,在主程序的循环中则反复判断键按下标志位是否被清零。如果被清零,说明键已被释放,然后才能进行下一轮的键盘按下判断。在T0中断处理程序中,每次中断均要检测键是否按下。若无按下,有两种情况,一是系统中确实无键按下(此时键按下标志为0),处于监控状态;二是键按下释放后的情况(此时键按下标志为1)。这时要清键按下标志,以便主程序进行下一轮的键按下检测。4.1 T0中断流程图T0中断保护现场设定

36、1s时间计数是否到1s N Y湿度数据采样 是否越限?报警程序 N Y显示重装时间常数恢复现场返回图4.1 T0中断流程图4.2 温度主程序流程图开始设堆栈清标志清暂存清显示T0初始化串行口初始化CPU开中断扫描键盘温度采样显示图4.2 温度主程序流程图4.3 程序清单 main()unsigned char z;unsigned char a,b,flag_2=1,count1=0;unsigned char phil=2,0xce,0x6e,0x60,0x1c,2;TMOD=0x21;TH0=0x2f;TL0=0x40;SCON=0x50;PCON=0x00;TH1=0xfd;TL1=0x

37、fd;PS=1;EA=1;EX1=0;ET0=1;ES=1;TR0=1;TR1=1;high_time=50;low_time=50;PIDInit ( &spid ); /*Initialize Structure */spid.Proportion = 10; /* Set PID Coefficients*/spid.Integral = 8;spid.Derivative =6;spid.SetPoint = 100; /* Set PID Setpoint */while(1)if(plus=0)EA=0;for(a=0;a5;a+)for(b=0;b102;b+)if(plus=0

38、)set_temper+;flag=0;else if(subs=0)for(a=0;a5;a+)for(b=0;a102;b+)if(subs=0)set_temper-;flag=0;else if(stop=0)for(a=0;a5;a+)for(b=0;b5)temper=a;elsetemper=b;a=temper;flag_2=0;if(+count130)display();count1=0;compare_temper();TR0=0;z=1;while(1)EA=0;if(stop=0)for(a=0;a5;a+)for(b=0;b102;b+)if(stop=0)disp

39、_1(phil);/ break;EA=1; /*DS18b20 子程序*/#include sbit DQ=P21; /*定义端口*/typedef unsigned char byte;typedef unsigned int word; /*延时*/void delay(word useconds) for(;useconds0;useconds-); /*复位*/byte ow_reset(void) byte presence; DQ=0; /*DQ低电平*/ delay(29); /*480us*/ DQ=1; /*DQ高电平*/ delay(3); /*等待*/ presence

40、=DQ; /*presence信号*/ delay(25); return(presence); /*0允许,1禁止*/ /*从1-wire 总线上读取一个字节*/byte read_byte(viod) byte i; byte value=0; for (i=8;i0;i-) value=1; DQ=0; DQ=1; delay(1); if(DQ)value|=0x80; delay(6); return(value); /*向1-wire总线上写一个字节*/void write_byte(char val) byte i; for (i=8;i0;i-) /*一次写一个字节*/ DQ=

41、0; DQ=val&0x01; delay(5); DQ=1; val=val/2; delay(5); /*读取温度*/char Read_Temperature(void) union byte c2; int x; temp; ow_reset(); write_byte(0xcc); write_byte(0xBE); temp.c1=read_byte(); temp.c0=read_byte(); ow_reset(); write_byte(0xCC); write_byte(0x44); return temp.x/2;第五章 结论与展望本系统是基于单片机89S51的处理,借助

42、温度传感器与湿度传感器的测量,可以完美的实现对环境温度,湿度的监测,实时显示环境的温度和湿度。并在温度或湿度达到设定值上限时,报警系统会发出声音报警,此系统完全能运用于工业生产、环境测量、货物保管等部门。它结构紧密、调试按装方便、可塑性强,经长期使用性能稳定可靠。传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。随着社会的发展,传感器的作用越来越突出。在

43、现代工业生产尤其是自动化生产过程中,要用各种传感器来监视和控制生产过程中的各个参数,使设备工作在正常状态或最佳状态,并使产品达到最好的质量。因此可以说,没有众多的优良的传感器,现代化生产也就失去了基础。 防潮、防霉、防腐、防爆是车间日常工作的重要内容,是衡量环境管理质量的重要指标。它直接影响到储备物资的使用寿命和设备工作可靠性。为保证日常工作的顺利进行,首要问题是加强工作环境温度与湿度的监测工作。但传统的方法是用湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度及湿度误

44、差大,随机性大。因此就需要一种造价低廉、使用方便且测量准确的温湿度测量仪。所以在测量仪上安装温度传感器,湿度传感器,通过单片机计算、显示和报警,可以实现室内温度和空气湿度自动调控功能,对于管理库房节省了时间,为设备安全运行提供了可靠的保障。随着社会的发展,该系统具有一定的实用价值和广泛的应用前景。附 录 89S51系统程序及子程序#include#include#include#includestruct PID unsigned int SetPoint; /*设定目标 Desired Value*/unsigned int Proportion; /*比例常数 Proportional C

45、onst*/unsigned int Integral; /*积分常数 Integral Const */unsigned int Derivative; /*微分常数 Derivative Const*/unsigned int LastError; /*Error-1 */unsigned int PrevError; /*Error-2 */unsigned int SumError; /*Sums of Errors*/; struct PID spid; /*PID Control Structure*/unsigned int rout; /*PID Response (Outpu

46、t) */unsigned int rin; /*PID Feedback (Input) */sbit data1=P10;sbit clk=P11;sbit plus=P20;sbit subs=P21;sbit stop=P22;sbit output=P34;sbit DQ=P33;unsigned char flag,flag_1=0;unsigned char high_time,low_time,count=0;/*占空比调节参数*/unsigned char set_temper=35;unsigned char temper;unsigned char i;unsigned

47、char j=0;unsigned int s;/*延时子程序,延时时间以12M晶振为准,延时时间为30ustime */void delay(unsigned char time)unsigned char m,n;for(n=0;ntime;n+)for(m=0;m2;m+)/* 写一位数据子程序 */void write_bit(unsigned char bitval)EA=0;DQ=0; /*拉低DQ以开始一个写时序*/if(bitval=1)_nop_();DQ=1; /*如要写1,则将总线置高*/delay(5); /*延时90us供DA18B20采样*/DQ=1; /*释放DQ

48、总线*/_nop_();_nop_();EA=1;/* 写一字节数据子程序*/void write_byte(unsigned char val)unsigned char i;unsigned char temp;EA=0; /*关中断*/TR0=0;for(i=0;ii; /*移位操作,将本次要写的位移到最低位*/temp=temp&1;write_bit(temp); /*向总线写该位*/delay(7); /*延时120us后*/ TR0=1;EA=1; /*开中断*/* 读一位数据子程序 */unsigned char read_bit()unsigned char i,value_bit;EA=0;DQ=0; /*拉低DQ,开始读时序*/_nop_();_nop_();DQ=1; /*释放总线*/for(i=0;i2;i+)value_bit=DQ;EA=1;return(value_bit);/* 读一字节数据子程序 */unsigned char read_byte()unsigned char i,value=0;EA=0;for(i=0;i8;i+)if(read_bit() /*读一字节数据,一个时序中读一次,并作移位处理*/value|=0x01i;delay(4); /*

温馨提示

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

评论

0/150

提交评论