毕业设计(论文)-恒温箱湿热反馈控制系统的电路设计.doc_第1页
毕业设计(论文)-恒温箱湿热反馈控制系统的电路设计.doc_第2页
毕业设计(论文)-恒温箱湿热反馈控制系统的电路设计.doc_第3页
毕业设计(论文)-恒温箱湿热反馈控制系统的电路设计.doc_第4页
毕业设计(论文)-恒温箱湿热反馈控制系统的电路设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

39广州大学松田学院毕业论文(设计)题目 恒温箱湿热反馈控制系统的电路设计 学生姓名 学 号 1107020133 专业班级 电气工程及其自动化(1) 导师姓名 二一五 年 五 月1毕业论文原创性声明本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本毕业论文不包括任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名:20 年 月 日毕业论文版权使用授权书本毕业论文作者完全了解学校有关保障、使用毕业论文的规定,同意学校保留并向有关毕业论文管理部门或机构送交毕业论文的复印件和电子版,允许毕业论文被查阅和借阅。本人授权优秀毕业论文评选机构将本毕业论文的全部或部分内容编入有关数据进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文。本毕业论文属于 1、保密 囗,在10年解密后适用本授权书2、不保密囗。(请在以上相应方框内打“”)作者签名:20 年 月 日导师签名:20 年 月 日3恒温箱湿热反馈控制系统的电路设计摘要:由于科技的高速发展,一个可调精确的温湿度控制系统在现代工业生产以及科研实验中是非常需要的。本设计以单片机AT89C51为主要控制处理单元,通过温湿度传感器DS18B20采集温湿度信号,电阻型湿度传感器,然后单片机进行信号的处理最后把温湿度信号传输到显示屏上显示,设计了一套湿热反馈控制系统。通过proteus7.8仿真软件仿真后,得到了系统功能符合设计预期的目标的结论,验证了本系统既能够实时地显示当前温湿度,也能够准确地实时控制温湿度,能够满足用户实际的需求,最终保持此温湿度恒定。另外为发挥单片机自身集成众多系统级功能单元的优势,从而对系统软件和硬件设计进行了合理规划,在保证功能多样化前提下有效降低硬件成本,系统操控简便。关键词:AT89C51单片机, 温度传感器DS18B20,反馈控制 Incubator humidity of feedback control systemAbstract:Due to the rapid development of science and technology, an adjustable accurate temperature and humidity control system in the modern industrial production and scientific research experiments is needed.This design by single chip microcomputer AT89C51 as the main control processing unit, signal through the temperature and humidity sensor DS18B20 collecting temperature and humidity, resistance-type humidity sensor, then the MCU signal processing the last signal transmission to the display screen shows the temperature and humidity, a hot and humid feedback control system is designed.After proteus7.8 simulation software simulation, we get the conclusion of the function of system comply with the design the expected target, verified the system can real-time display the current temperature and humidity already, also can be used to accurately control temperature and humidity real-time, can satisfy the users actual demand, finally to keep the constant temperature and humidity.In addition to play to the microcontroller itself integrated advantages of numerous system level function unit, and the system software and hardware design has carried on the rational planning, under the premise that guarantee function diversification effectively reduce the hardware cost, and convenient manipulation of the system. Keywords: AT89C51, the temperature sensor DS18B20, feedback control目 录第1章 绪论61.1 课题研究的背景和意义61.2 研究的主要内容6第2章 系统总体设计82.1 系统的主要组成部分82.2 系统需求分析92.3 智能恒温箱的工作原理9第3章 智能恒温箱的硬件设计123.1 硬件电路设计概述123.2 总体硬件原理图123.3 时钟频率电路设计153.4 复位电路设计153.5 显示电路的设计163.5.1 显示电路概述163.5.2 七段LED数码管的原理173.5.3 显示电路整体设计183.6 开关键盘设计193.6.1 指拨开关193.6.2 按键开关203.7 指示灯电路213.8 温湿度采集电路22第4章 软件设计284.1 软件任务分析284.2 程序流程图284.3 仿真图33致谢34附录A 主要源程序361 绪论1.1 课题研究的背景和意义随着科技的日益进步,智能设备越来越被人民所认同及使用。单片机技术则是智能设备里面重要的组成部分。由于单片机技术体积小,性能强,能够大大地减少产品的体积,增加产品的功能,所以在很多领域,比如电子仪表、家电,工业控制,微型计算机等都普遍存在单片机的影子。人民感受到单片机带来的便利,也因此赋予单片机更广泛的应用,而且不断为单片机添加更多新的功能与新型技术.近年来,电子产业对于单片机的需求非常大。因此,对于单片机的开发也变得流行起来。得益于单片机体积小,功能多,经济耐用等优秀特性,所以本设计也采用了单片机作为主要的中央控制单元,以满足对温湿度数据的处理,以及整个系统的控制。由于智能恒温箱的至高性能是由温湿度控制性能这个特性决定的。所以本设计更加专注于单片机的合理使用以及更深层次的探索。在医疗技术,特殊要求的工业生产和高品质要求的食品加工等领域,智能恒温箱的温湿度的测量以及控制一直都是重中之重。然而,市面上的恒温箱由于所用传感器功能各不相同,所以精确度也参差不齐。另外,由于温湿度传感器容易受到环境温度的影响。所以,良好的制作工艺以及科学的设计才能保证好温湿度控制的精确度以及保持度。可喜的是,现在的科学技术日新月异,使得开发新一代温湿度测量系统变得更加得便捷以及可靠。在本设计中,我们采用的是数字传感器将所需的温湿度通过数字信号的方式传给单片机,然单片机经过运算得出的数据送到显示系统显示,同是也不断通过和预设的值进行比较,然后调节供热系统和供水系统,使得整个系统的温湿度维持恒定,实现恒温恒湿的功能。1.2 研究的主要内容 出于设计的便捷以及错误的查找,本设计采用了模块化的设计,包括温湿度采集模块,显示温湿度模块和控制系统部分。至于如何加热制冷,加湿和去湿,就不详细阐述了。系统上电后,初始温度为25度,湿度为50%,用户根据自己的需求来对智能恒温箱进行调节,温度可调范围099度,湿度为099%,当调节状态结束后,系统会根据采集的温湿度数值对设定值进行比较,当实时的温湿度比预设值低时,就开启供热设备或者加湿设备。同理,如果采集到的温湿度数据比预设值高的话,就开启制冷设备或去湿设备。另外,用户可以在显示系统上看到实时地温湿度,表示显示实际温湿度的发光二极管点亮;如果用户想要知道自己预设的温湿度,可以按下显示切换按键,即可切换到预设值界面,表示预设值得发光二极管点亮。在三秒没操作后,系统自动返回实时温湿度界面。2 系统总体设计2.1 系统的主要组成部分本系统是采用模块化设计的智能恒温箱,包括设定模块,显示模块,调节模块,切换模块和采集模块等五大模块,另外还可以根据以后功能的需求再添加其他诸如报警等相关功能。显示模块能够显示实时地温湿度还能显示用户自己需求设定的温湿度。系统的主要功能模块方框图如图2-1所示。单片机工作时钟复位电路4位七段数码管显示89C51单片机温湿度设 定,温湿度加、减按键输入电路4个发光二极管显示温湿度调节电路温湿度采集电路显示切换按键电路图2-1 系统主要功能模块方框图本系统是采用模块化设计的智能恒温箱,在生活中可有广泛的应用,系统通电后默认初始温度25,湿度50%,使用时用户可根据自己需求自行调节温湿度,可调范围099,099%。调节好后系统会将采集后的温湿度数据与预设值进行比较,从而判断其他外部供热制冷等设备的开启,单片机整个恒温箱的核心,内部电路设计用汇编语言编写。它完成了温湿度参数设定,温湿度采集计算,温湿度显示,温湿度比较,温湿度控制调节等功能。2.2 系统需求分析1. 在使用中可以将传感器采集的原始数据转化成为我们常见的温湿度值。2. 在099,0%99%的范围内,人们可以自由调节预设的温湿度。3. 不断实时与预设温湿度进行对比,从而保证整个系统对温湿度控制稳定性的需求。4. 将设定的预期温湿度和实时温湿度同时显示出来。2.3 智能恒温箱的工作原理智能恒温箱的基本工作原理:在恒温箱通电工作后,系统会先运行采集模块,然后将传感器采集来的原始数据转化为摄氏度表示的形式让中央控制单元进行判断,然后根据与预设值比较,再根据比较后的结果发送相应的指令(加热,或制冷;加湿或干燥),经过不断地比较修正,从而使得整个系统达到用户所需求的温湿度并通过显示系统将实时地温湿度显示出来。恒温箱的工作流程如图2-2所示:加载程序运行进入温湿度设定不进行温湿度设定温湿度减温湿度加温湿度采集与计算温湿度比较并进行温湿度调节显示实时温湿度无显示切换显示切换无显示切换显示切换显示设定温湿度图2-2 恒温箱工作流程1. 设定预设值。如果用户想调节预设的温湿度时,可以先通过按下“设定温湿度”按钮来使系统进入调节界面,然后可以按“温度”按钮进入温度调节系统,或者按“湿度”对湿度进行调节。按相应的“+”来对温度或者湿度进行加一摄氏度或者湿度的操作。同理,按下相应的“-”来对温度或者湿度进行减一摄氏度或者湿度的编辑。短暂的系统响应后,显示器上会显示调节后的温湿度,温度变化范围为099度,湿度范围为099%。当湿度或者温度达到99时,再按下+一后,温度或者湿度也会跳到0;如果温度或者湿度为0时,按下-一后温度或者湿度都会跳到99。如果用户已经完成调节后,可以通过再次按下“设定温湿度”跳出调节状态。2. 信息的采集和运算。单片机通过数据线与温湿度相应的传感器进行通信,从而或者实时地数据,然后它再对数据进行运算,把原始数据转化为摄氏度或者湿度的形式进行保存。3. 温湿度比较和温湿度调节。单片机把自己保存的数据与预设值进行比较。如果温度高于预设温度就开启制冷设备,如果温度低于预设值则开启加热设备;如果湿度小于预设值就开启加湿设备,大于预设值则开启去湿设备。4. 实时温湿度显示。单片机将保存在自己内存中的温湿度通过数据线传送到显示器上显示。5. 设定温湿度显示。若想查看设定的预期温湿度,则需按下“显示切换”按键,然后LED显示器就会显示设定预期的温湿度,显示时间为数秒,跳出预期温湿度的显示。若再想查看预期温湿度显示需再次按下“显示切换”按键。总的来说,本设计充分利用了AT89C51单片机以及附加的外围电路完成了对整个温湿度控制系统的设计,整个恒温箱的稳定性以及可靠性都大大提高,电路结构也得到优化,节约了成本,是一个比较实用经济的工程设计。3 智能恒温箱的硬件设计3.1 硬件电路设计概述本课题设计主要分为硬件电路设计和软件设计。在整个设计的开始时,工程师就得先设计好每个部分它所要实现的功能。而软件设计则是一贯到底的。在设计的中期,后期,用软件对整个设计进行仿真,对整个设计的核心-单片机进行程序的写入是很有必要的。由于近年来电子电路技术的高速发展,集成度高的各种芯片也不断问世,这使得硬件设计的工作变得更少,但是也不能说完全舍弃了硬件设计这个部位。为了使得整个设计的硬件电路设计显得合理,应先注意以下几个方面:1. 尽可能选取功能多,集成度高的芯片来对硬件电路的设计进行简化,因为功能强的芯片的成本会把整个电路设计的成本降下来。如果是到了实际生产的话,效果更显著。2. 留有设计余地。在电路设计中,也要考虑到以后系统升级更新换代的需求。另外,还要考虑维修的可能性。3. 程序空间。选用片内程序空间足够大的单片机,本设计采用89C51单片机。4. RAM空间,由于89C51软件的内部RAM不多,当要增强数据处理能力时,会觉得不够用。可以选用8155作I/O接口,就可以增强256字节RAM。如果有更多的数据需要处理,则应配置足够的RAM,如6264、62256等。也可以通过改变算法来使程序继续起来更加高效,减少了再外接RAM的麻烦。5. I/O接口,一般设计都会预留输入输出接口,方便功能的添加以及以后更新的需求。3.2 总体硬件原理图 总体硬件原理图(图3-1)中,89C51单片机为U1芯片,温湿度传感器DS18B20为U2。单片机的P1.2口接温湿度传感器。接入单片机的P1.0,P1.1口。如果“heat”灯点亮表示加热系统在工作;如果“cool”灯点亮表示制冷系统在工作。,接单片机的P2.7口是接按键“温湿度切换”是用于切换显示预设的温湿度的按键。“实时温湿度”和“设定温湿度”分别用两个发光二极管表示,表示当前数码管显示的是实时温湿度还是设定温湿度,若要显示实时温湿度就实时温湿度发光二极管点亮,若要显示预设温湿度就预设温湿度发光二极管点亮。两个数码管分别接单片机的P2.6,P2.5口。图中有两个七段共阴数码管,它的字段码信号端口接到单片机的P0.0P0.6口,公共端接单片机的P2.0和P2.1口。开关“温湿度设定”接单片机的P2.2口,按钮“+”和“-”分别接单片机的P2.3和P2.4口。按闭合“温湿度设定”开关进入预期温湿度的设定,按“+”,“-”按钮来加减温湿度。图3-1 总体硬件原理图3.3 时钟频率电路设计一般,我们不追求极致的精确度要求的话,都采用普通的外接一个振荡源给单片机,然后与单片机内部时钟震荡电路组合,产生一个时钟脉冲驱动单片机工作,提供一定的时钟频率时钟电路如图3-2 所示。图3-2 外部振荡电路 出于成本以及元件的通用性,我们选用石英晶体振荡器。进过10ms延时后电路中的振荡器起振,幅度为3V左右的正弦波时钟信号产生在XTAL2,其振荡频率主要有石英晶体的频率确定。电路中两个电容30pF的电容C1、C2:一是帮助振荡器起振;二是对振荡器的频率进行微调。单片机工作时,它的时钟周期是指从外部传送到内部的或者内部产生的时钟信号周期,等于时钟信号频率的倒数,用f来表示时钟信号频率。图中f=12MHz,则单片机的时钟周期为1/12s。3.4 复位电路设计单片机的第9脚RST为硬件复位电路,我们如想使得单片机的各个状态都跳到初始化状态可以在第九脚加上四个机器周期的高电平。其电路图如图3-3所示。图3-3中上电复位和手动复位电路就是由按钮,电容C1,C2还有电阻R1,R2构成。接通电源就是上电复位,当上电后,电路不断为C1充电,在图中电路在5V电源,电容,电阻R1还有地之间形成一个通路,由于在R1上产生电压降,所以单片机的RST脚上为高电平,在电容充电一段时间后,此时C1处可视为断路,单片机RST脚处电压逐渐降为0V,即处于稳定的低电平状态,此时单片机完成上电复位,程序从0000H开始执行。手动复位时,按一下图中的按钮即可,当按键按下的时候,单片机的9脚RST管脚处于高电平,此时单片机处于复位状态。值得注意的是,在设计当中使用到了硬件复位电路和软件复位两种功能,由上面所述的硬件复位之后的各状态可知,寄存器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软件复位功能。软件复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 图3-3 硬件复位电路3.5 显示电路的设计3.5.1 显示电路概述显示的话,通常都是通过数码管显示,而显示又分为静态显示和动态扫描。两种方法各有特点,静态就是稳定没闪烁,比较简单。但是相对来说,它就要占用比较多的端口。而动态扫描的特点则相反。考虑到本设计需要较多的端口用做其他用途,所以动态扫描的方法首先被采用。下面将对显示部分进行一系列的阐述。3.5.2 七段LED数码管的原理通常我们所见的数码显示管都是有8个发光二极管中的七个进行排列而成的。第八个管则是用来显示小数点。当这七个二极管按顺序组成8字型时,则有两种连接方式。当所有二极管的阳极连一起时,就是共阳极数码管;说有二极管阴极连一起接地时则是共阴极数码管。我们需要时刻了解管子的排列才能更好的知道数码管显示数字的组成。另外,在选购元件时也要分清所买的数码管种类。本次设计所用的到的共阴极数码管的引脚如图3-4所示,有10个引脚分布在外部,作为公共端接地的1和6引脚连通。图3-4 一位共阴极数码管引脚图从LED数码的结构可以看出,不同笔段的组合就何以构成不同的字符,例如笔段a、b、g、c、d被点亮时,就可以显示数字3:当笔段f、g、b、c被点亮时,就可以显示数字4;而且,此数码管还能显示十六进制0F,只有把二极管的点亮顺序控制好的话。显示代码或字段码则是控制数码管显示字符的各字段代码的统称。表述二进制数与数码管所显示字符的对应关系的表格,如表3-1所示。对于共阴极数码管,因为八个阴极已经和地连接一起了,只有我们控制好每个管的阳极就能得到相应的数字。3.5.3 显示电路整体设计显示电路如图3-5 所示:图3-5 显示电路图中RP1为电阻盒,等同于在一起并接电源的八个独立的电阻,另外一端分别接出引线,在显示电路中作为上拉电阻。图中有2个七段LED数码管,它们的公共端1、2分别接到单片机的P2.0、P2.1口,单片机的这2个I/O口输出位选信号用于动态扫描。其实动态扫描就是利用人的视觉暂留现象还有二极管断电后不瞬灭的特性,通过单片机轮流控制发光二极管的控制作用使得每个led管轮流点亮,只有扫描的速度够快,人的印象就是看到都是一组稳定的显示数据,而单片机的P0.0P0.6口则负责将字段码数据传送给LED数码管。3.6 开关键盘设计3.6.1 指拨开关在控制界面上通常都有指拨开关,用ON作标记,如果将开关拨到ON就是把电路接通,反之就是断开电路。一般设计中都会在开关中接入一个电阻接到接地端或者电源端充当上拉电阻或下拉电阻,那么我们就要如图3-6所示的两种不同的开关电路可供选择。 a) b)图3-6 开关电路本设计的温湿度设定允许和退出按键是选用如图3-6中a)所示的设计,低电平为进入温湿度设定,高电平为退出温湿度设定。3.6.2 按键开关 一般常见的按键开关为机械弹性开关,当我们按下按键时,力的作用使得按键中的动,静触片接触,然后开关就接通;当我们松手后,由于按键中的复位弹簧将动片弹开,使得动静接触片分离,按键开关断开。实际证明,由于按下按键时两个接触片的机械作用,按键开关从刚开始接触到稳定的接触是要经过10ms以内的短暂时间,而这段时间我们就称为抖动时间。抖动时间波形如下图所示。 图3-7按键抖动电压波形我们为了得到一个稳定的按键开关输入信号就需要考虑当按键按下以及按键抖动这段时间的影响。按键的确认比较容易解决,因为按键开关一般只有两个状态,一个是高电平另外一个则是低电平。只有我们电路把按键的电位读取出来即可。而按键的抖动就需要采取方法来消除,一般我们可以采用软件消抖和硬件消抖。在电路设计中,如果按键开关比较多的话,适宜软件消抖,即是在检测到按键按下的信号后,我们的程序先运行一段1215ms的延时子程序,读取按键的电平,判断开关是否闭合,如果闭合就符合我们的需求。从而间接避免了按键抖动的影响。按键输入在电子设计中普遍存在,用来控制系统程序执行时的输入输出控制或者其他特殊的要求。在控制系统中,如果按键比较少的话,可以采用一个按键对应一个输入线的做法,也是我们统称为独立式按键的做法。因此,仅仅需要检测出输入线上的电平状态就可以推断出是哪个按键按下了。独立式按键消除抖动的方法可以采用单稳态锁存器法去抖动。另外,如果按键操作安排在主程序(后台程序)或键盘中断(外部中断)子程序中,我们可以在程序中设定时间,在按键按下抖动这段时间内执行两次中断,从而得到按键稳定那段时间。也是间接地完成了按键抖动的消抖则该延时子程序便可直接插入读键过程中。3.7 指示灯电路为了便于分辨出哪个温湿度数值是属于实时还有预设值,本设计加入了两个表示实时值以及预设值的发光二极管,当标有预设值的发光二极管点亮即是当前显示的是预设值。当标有实时值的发光二极管点亮表示当前显示的是实时值。温湿度指示灯详细电路图如下图3-9显示。图3-9 温湿度指示灯电路图中单片机的P2.6,P2.5口接入两个发光二极管相连,当单片机把显示的状态传送到相应的接口时,其对应的发光二极管随即点亮。3.8 温湿度采集电路温度采集电路如图3-10所示:图3-10 温湿度采集电路温度传感器DS18B20作为整个温度采集电路中的核心部件,在图3-10中用U2表示,下面将详细介绍它的参数和用法。DS18B20内部其实有两个振荡器分别为的低温湿度系数振荡器和高温度系数振荡器。低温振荡器为计算器1提供稳定频率的计数脉冲,高温振荡器则为计算器2提供频率随温度变化的计数脉冲。低温振荡器的频率随温度变化很小,而高温振荡器则对温度很敏感,两者相互相成构成了传感器的计数脉冲。芯片上电后,温度寄存器被设置成-55度,计算器1会从预设数进行减法运算直到最后数值为零,而温度寄存器的值则做加法运算,整个过程不断重复地进行。直到计算器2运算后的数值为零时终止运算。初始化时,计算器1的预设值是与-55相对应。往后计算器1都由斜率累加器提供每一个循环的预设数。为了使得振荡器的温度特性保持原来非线性一致,斜率累加器提供的预设值也只能随温度相应变化。在预定温度处使温度寄存器寄存值做加计算器所需要的计数个数就是计算器1的预设值。DS18B20内部的比较器的取值则是通过四舍五入算法取温度寄存器最低有效位。当计算器2为零停止计算后,计算器1中的剩余值会被比较器转换为温度值和0.25度进行比较,如果小于0.25度,那么温度寄存器的最低位就被赋予0;若大于0.25度,那么最低位就被赋予1;如果大于于0.75度时,那么就会有进位在温度寄存器的最低位产生,然后再置0。最终,我们就可以通过读取温度寄存器上的值来知道最终的温度,寄存器最后一位代表0.5度,四舍五入后误差为0.25度 温度寄存器中用8位通过二进制补码形式来表明温度值,而温度的符号位就是最高位。待温度测量结束后,符号位占用了暂存存储器存储器第1字节,8位温湿度数据占据第2字节。DS18B20其拥有特殊的温度测量技术。先通过内部的低温度系数振荡器提供稳定的频率信号;同时,频率信号是由高温度系数振荡器将被测温度转换所得。当计数阀门开启时,DS18B20进行进行计数运算,其开通时间由高温湿度系数振荡器决定其开通时间。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温湿度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据 初始化总线上的所有处理都是由初始化序列开始。初始化序列即是包含了主机发出的复位脉冲,还有附属部件上的存在脉冲。存在脉冲的作用就是让总线控制器知道DS1820 的状态,并且可以准备操作。 ROM操作命令当附属器件的存在信号被发现时,总线主机便可以发出8位长的器件ROM操作命令。这些命令列表如下:读ROM 33H该命令允许总线主机读DS18B20的8位产品系列编码,因为每个传感器都有唯一的48位序列号,以及8位的CRC,这是每个传感器的出厂ID。但是此命令也是只适合仅有一个DS18B20在总线的情况下。如果总线上有多个的附属器件存在,那么当这些从片企图同时发送数据时会产生数据冲突的现象(漏极开路会产生线与的结果)。 符合ROM 55H此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Skip ROM( 跳过ROM )CCH在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。Search ROM( 搜索ROM)F0H当系统开始工作时,总线主机会遇到没法知道线上器件个数或者不识别其64位ROM编码的情况。而搜索ROM命令则可以令总线控制器采取排除法逐一识别总线上的所有从机的64位编码从而找出正确的器件。Alarm Search(告警搜索)ECH此命令的功能和搜索ROM命令相同。但是,此命令仅是在温度测量出现报警(温度高于TH 或低于TL)的情况下开始运作。只要DS18B20一通电,告警条件就保持在设置状态,直到下个温度测量显示出的数值不高于TH或者不低于TL,测量出的数据范围在可以允许的范围内。告警触发器值贮存在EEPROM内的触发器值。 存储器操作命令Write Scratchpad(写暂存存储器)4EH这是向DS18B20的暂存器中写入数据的命令,从地址2开始。接下来写入的两个字节将被存到暂存器中的地址位置2和3。Read Scratchpad(读暂存存储器)BEH这是读取暂存器的内容的命令。从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。读写命令可以随时通过控制器在任意时刻发出的复位命令来停止。Copy Scratchpad(复制暂存存储器)48H此条命令就是将暂存器的内容复制到DS18B20的E2存储器里保存起来,也即是把温度报警触发字节这个数据写存储器中。方便以后对这个触发信号的调用。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把数据复制到存储器的过程中,DS18B20就会输出一个0,表示正处于忙碌状态。如果运行完毕的话,DS18B20 则输出1。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms,让此命令执行完毕。Convert T(温度变换)44H 此命令仅是运行一次温度转换。当执行温度转换命令后, DS18B20会保持待机状态。如果正在忙于时间转换的运算的话,那么它会输出0到总线上,如果是温度转换完成的情况下,那么久输出1。如果用的是寄生电源,总线控制器必须在发送此命令后立刻上拉保持500ms,让此命令执行完毕。Recall E2(重新调整E2)B8H此命令把贮存就是把存储器E2内之前保存的温度触发器的值重新调出到暂存存储器。这个操作在器件一上电后就会执行,因此只要器件一上电,暂存存储器内会得到之前保存的温度触发器的值。在这条命令发出之后,器件也会有正处于调出动作,或者完成的两种状态,分别用0和1表示。Read Power Supply(读电源)B4H对于在此命令发送至DS18B20之后所发出的第一读数据的时间片当此命令发给DS18B20之后,器件就会根据其供电电源的方式,发出“0”=寄生电源供电,“1”=外部电源供电的对应信号。 处理数据DS18B20的高速暂存存储器由9个字节组成,其分配如表3-2所示。当给器件发布温度转换命令后,二字节补码形式的被转换温度的补码就会被保存在高速暂存存储器第0和1个字节。我们只需要执行单片机,让它在单线接口上从低位到高位的方式读取数据。表3-2 DS18B20暂存器字节分配温度/二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01 1 1 1 1 0 1 0 0 0 007D0H+25.06250 0 0 0 00 0 1 1 0 0 1 0 0 0 10191H+10.1250 0 0 0 00 0 0 1 0 1 0 0 0 1 000A2H+0.50 0 0 0 00 0 0 0 0 0 0 1 0 0 00008H00 0 0 0 00 0 0 0 0 0 0 0 0 0 00000H-0.51 1 1 1 11 1 1 1 1 1 1 1 0 0 0FFF8H-10.1251 1 1 1 11 1 1 0 1 0 1 1 1 1 0FF5EH-25.6251 1 1 1 11 1 0 0 1 1 0 1 1 1 1FE6FH-551 1 1 1 11 0 0 1 0 0 1 0 0 0 0FC90H 上表是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8bit的RAM中,二进制中的前面5位是符号位,如果测得的温度=0,这5位为0,只要将测到的数值*0.0625即可得到实时温度;如果温湿度0,这5位为1,测到的数值需要取反+1再*0.0625即可得到实际温湿度。温湿度转换计算方法举例:例如当DS18B20采集到+125的实际温度后,输出为07D0H,则:实际温度=07D0H0.0625=20000.0625=125.0。例如当DS18B20采集到-55的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0625=55.0。湿度采集与测量:图如图4.4.1所示。由于本设计的测量湿度的电路采用电容式测湿传感器。检测电容常用且实用的电路即是555芯片组成的多谐振荡器。 如图,当电路通电时,电容HS0001被充电。当触发端2脚的电压上升到2*VCC5/3 图示中,输出端3变为低电平,同时电容通过7脚放电,2脚电平下降;当2脚电平下降到VCC5/3时,输出端3脚转变为高电平。电容HS0001放电所需时间为:Td=RH4*CHS0001*2 当放电结束时,VCC5将通过RH3、RH4向电容HS0001充电。2脚电压由VCC5/3上升到2*VCC5/3所需的时间为:Tu=(RH4+RH3)*CHS0001*2 当3脚上升到2*VCC5/3时,电路又翻转为低电平。如此周而复始,就在电路的输出端3脚得到一个周期性的矩形波,通过单片机的外部中断口可以检测这个矩形波并得到其频率,频率的计算公式如下:f=1/(Td+Tu)=1/(2*RH4+RH3)* CHS0001*2 进而得到电容值的计算公式:CHS0001=1/(2*RH4+RH3)*f*2 这样就能得到测湿电容CHS0001的电容值并与湿度一一对应起来了。 200 190 180 170电容F20 40 60 80 100 相对湿度%4 仿真调试4.1 程序流程图在本程序中包括了以下主要的程序,主程序,温湿度设定子程序,温湿度读取及转换子程序,显示温湿度子程序,比较温湿度子程序,显示切换子程序。主程序流程图如有图所示:开始初始化设温湿度采集计算比较处理显示结束温度设定子程序流程图如图4-2所示:图4-2 温度设定子程序流程图温度采集计算子程序如图4-3所示:图4-3 温度采集计算子程序流程图温湿度比较处理子程序流程图如图4-4所示读取实时温湿度值实时温湿度与设定温湿度相等吗?实时温湿度比设定值大?开启制冷或去湿开启加热或加湿N返回NYY图4-4 温湿度比较处理子程序流程图温湿度显

温馨提示

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

评论

0/150

提交评论