多点温度测量.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流多点温度测量.精品文档. 检测理论与应用课程设计题 目 室内温度监控系统设计 学院(部) 工业制造学院 专 业 测控技术与仪器 学生姓名 刘洪 学 号 201110114214 年级 2011 指导教师 莫莉 职称 讲师 2014 年3 月10室内温度监控系统设计摘要确定了温度监控系统的总体设计方案,包括系统各组成硬件、系统电路设计及系统软件设计等方面。利用单片机结合传感器技术而开发设计了这一温度监控系统。对传感器理论单片机实际应用有机结合进行了研究,详细地讲述了利用热敏电阻作为热敏传感器探测环境温度的过程,以及实现热电转换的原理过程。电路及软件设计方面,利用了Protel 99 软件对系统的电路原理图进行了设计,并生成了电路板。对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控。传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。关键词温度;传感器;显示目录第一章 绪论11.1研究课题的目的与意义11.2当前室内温度监控系统的发展形势11.2.1温度计的分类11.2.2国内外研究现状21.3课程设计的主要内容3第二章 室内温度监控系统的设计42.1室内温度监控系统的设计原理42.2室内温度监控系统的设计方案42.2.1设计方案结构框图42.2.2设计方案电路图52.2.3设计方案实施程序5第三章 室内温度监控系统设计方案主要器件简介163.1 AT89S51单片机163.2 DS18B20温度传感器193.2.1 简介193.2.2 DS18B20的测温原理213.3液晶显示屏162022第四章 设计方案的电路模块分析264.1单片机及外围电路264.2温度采集模块硬件分析274.3显示模块硬件分析27第五章 仿真结果295.1 DS18B20采集的温度值295.2显示结果295.3硬件调试故障30第六章 总结31致谢32参考文献33附录34第一章 绪论1.1研究课题的目的与意义温度(temperature)是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。随着近代工业的不断发展,很多的领域对温度监控的要求越来越高,而且监控范围越来越广,因此,对温度监控技术的要求的也越来越高。现在的温度监控系统已经应用于很多的地方,如实验室温度监控、储藏室温度监控、大棚温室的温度监控等。在不同的场合对温度监控系统的要求也不尽相同,要求的精度也越来越高。1.2当前室内温度监控系统的发展形势1.2.1温度计的分类 常见的几种测温方法(接触式,非接触式,热像仪原理)。1.膨胀式温度计利用气体、液体、固体热胀冷缩的性质测量温度。 (1)气体温度计:利用一定质量的气体作为工作物质的温度计。用气体温度计来体现理想气体温标为标准温标。用气体温度计所测得的温度和热力学温度相吻合。气体温度计是在容器里装有氢或氮气(多用氢气或氦气作测温物质,因为氢气和氦气的液化温度很低,接近于绝对零度,故它的测温范围很广),它们的性质可外推到理想气体。这种温度计有两种类型:定容气体温度计和定压气体温度计。定容气体温度计是气体的体积保持不变,压强随温度改变。定压气体温度计是气体的压强保持不变,体积随温度改变。 (2)液体温度计:利用作为介质的感温液体随温度变化而体积发生变化与玻璃随温度变化而体积变化之差来测量温度。温度计所显示的示值即液体体积与玻璃毛细管体积变化的差值。玻璃液体温度计的结构基本上是由装有感温液(或称测温介质)的感温泡、玻璃毛细管和刻度标尺三部分组成。 (3)双金属温度计:双金属温度计是一种测量中低温度的现场检测仪表。可以直接测量各种生产过程中的-80+500范围内液体蒸汽和气体介质温度。双金属温度计的工作原理是利用二种不同温度膨胀系数的金属,为提高测温灵敏度,通常将金属片制成螺旋卷形状,当多层金属片的温度改变时,各层金属膨胀或收缩量不等,使得螺旋卷卷起或松开。由于螺旋卷的一端固定而另一端和一可以自由转动的指针相连,因此,当双金属片感受到温度变化时,指针即可在一圆形分度标尺上指示出温度来。2.电阻温度计根据导体电阻随温度而变化的规律来测量温度的温度计。最常用的电阻温度计都采用金属丝绕制成的感温元件,主要有铂电阻温度计和铜电阻温度计,在低温下还有碳、锗和铑铁电阻温度计。精密的铂电阻温度计是目前最精确的温度计,温度覆盖范围约为14903K,其误差可低到万分之一摄氏度,它是能复现国际实用温标的基准温度计。我国还用一等和二等标准铂电阻温度计来传递温标,用它作标准来检定水银温度计和其他类型的温度计。3. 温差电偶温度计利用温差电偶来测量温度的温度计。将两种不同金属导体的两端分别连接起来,构成一个闭合回路,一端加热,另一端冷却,则两个接触点之间由于温度不同,将产生电动势,导体中会有电流发生。因为这种温差电动势是两个接触点温度差的函数,所以利用这一特性制成温度计。若在温差电偶的回路里再接入一种或几种不同金属的导线,所接入的导线与接触点的温度都是均匀的,对原电动势并无影响,通过测量温差电动势来求被测的温度,这样就构成了温差电偶温度计。这种温度计测温范围很大。1.2.2国内外研究现状自70年代以来,由于工业控制的需要,特别是在微电子技术和计算机技术的迅猛发展以及自动控制理论和设计方法的推动,国外温度监控系统发展迅速,并在智能化,自适应,参数自整定等方面取得的成就,在这方面,日本、美国、德国、瑞典等国走到了世界的前列,掌握了领先的技术,并且都已经生产出了一批商品化的、性能优异的温度控制器和仪器仪表,在各个行业广泛应用。其特点是适应于大惯性、大滞后等复杂温度监控系统,具有参数自整定功能和自学功能,即温控器控制对象,控制参数及特性进行自动整定,并根据历史经验及控制对象变化的情况,自动调整相关控制参数,以保证控制效果的最优化。温度监控系统具有控制精度高、抗干扰能力强的特点等。目前,国外温度控制仪表正朝着高精度、智能化、小型化等方向的发展。我国对于温度监控技术的研究与应用起步比较晚,主要为实验室、存储室和大棚温室等。我国工程技师人员在吸收发达国家温度监控技术的基础,才掌握了人工气候室内微机监控技术,该技术仅限于温度、湿度和CO2浓度等单项环境因子的控制。我国室内设施计算机应用,在总体上正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展。在技术上,以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统,与发达国家相比,存在较大差异。1.3课程设计的主要内容温度是一个基本的物理量,它是生产过程中最普遍最重要的工艺参数之一。科学技术的不断进步与发展,使得温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,且由过去的单点测量向多测量发展。目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和AD转换器的弊端,大多数多点测温控制系统采用数字传感器,并大大方便了系统的设计。比较有代表性的数字温度传感器有DS18B20、MAX6575、DS1722、MAX6635、SMT160-30等。在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需要占用一个通用I/0端口即可完成与微处理器的通信;在-10+85温度范围内具有05精度;用户可编程设定912位的分辨率。以上特性使得DS18B20非常适用于构建高精度、多点温度测量系统。本课题主要是实现对温度进行多点同时测量并准确显示。整个系统由单片机控制,要能够接收DS18B20温度传感器的数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的传感器,并由LCD1602进行温度实时显示。设计一种合理、可行的单片机监控软件,完成多点测量和显示的任务,并编写硬件底层驱动程序。第二章 室内温度监控系统的设计2.1室内温度监控系统的设计原理本课题主要是实现对温度进行多点同时测量并准确显示。整个系统由单片机控制,要能够接收DS18B20温度传感器的数据并显示出来,系统根据命令,选择对应的传感器,并由LCD1602进行温度实时显示。设计一种合理、可行的单片机监控软件,完成多点测量和显示的任务,并编写硬件底层驱动程序。系统整体目标利用STC89C52单片机设计一个能够对不同环境多点温度同时进行测量的系统。该系统能够同时对多个点的温度进行测量采集,通过LCD1602进行实时显示。2.2室内温度监控系统的设计方案2.2.1设计方案结构框图设计方案流程图:如图1所示整体系统的构思硬件电路的选材控制界面的编程电路的焊接C51软件的编辑系统调试图1设计方案的选择:方案一:DS18B20一对一连接方案,就是一个I/O口连接一个DS18B20。方案二:DS18B20单线连接方案,就是四个DS18B20连接到单片机的一个I/0口上,这种方案只用到单片机的一个I/O口,大大的节约了单片机I/O口资源。由于本方案比较简单,为了节约单片机的I/O口资源,最终小组讨论选择了方案二。2.2.2设计方案电路图设计方案电路图如图2所示: 图22.2.3设计方案实施程序主函数:#include "1602.H"#include "DS18B20.H"#include "reg52.h"char number=0;int temp=0;TEMPDATA m_TempData;/定义一个结构体/延时500ms子函数void Delay500ms1()uchar a, b, c;for (a = 0; a < 250; a+)for (b = 0; b < 220; b+)for (c = 0; c < 3; c+);/数据处理子程序void DataProcess()m_TempData = ReadTemperature();temp=m_TempData.btThird*1000+m_TempData.btSecond*100+m_TempData.btFirst*10+m_TempData.btDecimal;DisplayOne(1, 3, number, 1);DisplayOne(1, 4,':', 0);if (m_TempData.btNegative) DisplayOne(1, 6, '-', 0);else DisplayOne(1, 6, m_TempData.btThird, 1);DisplayOne(1, 7, m_TempData.btSecond, 1);DisplayOne(1, 8, m_TempData.btFirst, 1);DisplayOne(1, 10, m_TempData.btDecimal, 1);void main()/GetROMSequence();Clear();Init();DisplayString(0, 0, " Temperature");DisplayOne(1, 9, '.', 0);while (1) DataProcess();DS18B20驱动程序:/头文件包含#include <AT89X51.H>#include <Intrins.h>#include "DS18B20.H"extern char number;/引脚定义sbit DQ = P10;/数据线端口/DS18B20序列号,通过调用GetROMSequence()函数在P1口读出(读8次)const uchar code ROMData18 = 0x28, 0x33, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0xD7;/U1const uchar code ROMData28 = 0x28, 0x30, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0x8E;/U2const uchar code ROMData38 = 0x28, 0x31, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0xB9;/U3const uchar code ROMData48 = 0x28, 0x32, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0xE0;/U4const uchar code ROMData58 = 0x28, 0x34, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0x52;/U5const uchar code ROMData68 = 0x28, 0x35, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0x65;/U6const uchar code ROMData78 = 0x28, 0x36, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0x3C;/U7const uchar code ROMData88 = 0x28, 0x37, 0xC5, 0xB8, 0x00, 0x00, 0x00, 0x0B;/U8/延时16us子函数void Delay16us()uchar a;for (a = 0; a < 4; a+);/延时60us子函数void Delay60us()uchar a;for (a = 0; a < 18; a+);/延时480us子函数void Delay480us()uchar a;for (a = 0; a < 158; a+);/延时240us子函数void Delay240us()uchar a;for (a = 0; a < 78; a+);/延时500ms子函数void Delay500ms()uchar a, b, c;for (a = 0; a < 250; a+)for (b = 0; b < 3; b+)for (c = 0; c < 220; c+);/芯片初始化void Initialization()while(1)DQ = 0;Delay480us(); /延时480usDQ = 1;Delay60us();/延时60usif(!DQ) /收到ds18b20的应答信号DQ = 1;Delay240us();/延时240usbreak;/写一个字节(从低位开始写)void WriteByte(uchar btData)uchar i, btBuffer;for (i = 0; i < 8; i+)btBuffer = btData >> i;if (btBuffer & 1)DQ = 0;_nop_();_nop_();DQ = 1;Delay60us();elseDQ = 0;Delay60us();DQ = 1;/读一个字节(从低位开始读)uchar ReadByte()uchar i, btDest;for (i = 0; i < 8; i+)btDest >>= 1;DQ = 0;_nop_();_nop_();DQ = 1;Delay16us();if (DQ) btDest |= 0x80; Delay60us();return btDest;/序列号匹配void MatchROM(const uchar *pMatchData)uchar i;Initialization();WriteByte(MATCH_ROM);for (i = 0; i < 8; i+) WriteByte(*(pMatchData + i);/得到64位ROM序列(在P1口显示,必须与Proteus联调且在单步调试下才能得到)/*void GetROMSequence()uchar i;Initialization();WriteByte(READ_ROM);for (i = 0; i < 8; i+)P1 = ReadByte();/读取温度值TEMPDATA ReadTemperature()TEMPDATA TempData;uint iTempDataH;uchar btDot, iTempDataL;static uchar i = 0;TempData.btNegative = 0;/为0温度为正i+; number+;if (number = 9) number = 1;if (i = 9) i = 1;Initialization();WriteByte(SKIP_ROM);/跳过ROM匹配WriteByte(TEMP_SWITCH);/启动转换Delay500ms(); /调用一次就行 Initialization();/多个芯片的时候用MatchROM(ROMData)换掉WriteByte(SKIP_ROM)switch (i)case 1 : MatchROM(ROMData1); break;/匹配1case 2 : MatchROM(ROMData2); break;/匹配2case 3 : MatchROM(ROMData3); break;/匹配3case 4 : MatchROM(ROMData4); break;/匹配4case 5 : MatchROM(ROMData5); break;/匹配5case 6 : MatchROM(ROMData6); break;/匹配6case 7 : MatchROM(ROMData7); break;/匹配7case 8 : MatchROM(ROMData8); break;/匹配8/WriteByte(SKIP_ROM);/跳过ROM匹配(单个芯片时用这句换掉上面的switch)WriteByte(READ_MEMORY);/读数据iTempDataL = ReadByte();iTempDataH = ReadByte();iTempDataH <<= 8;iTempDataH |= iTempDataL;if (iTempDataH & 0x8000)TempData.btNegative = 1;iTempDataH = iTempDataH + 1;/负数求补/为了省去浮点运算带来的开销,而采用整数和小数部分分开处理的方法(没有四舍五入)btDot = (uchar)(iTempDataH & 0x000F);/得到小数部分 低四位是小数部分iTempDataH >>= 4;/得到整数部分高十二位是整数部分btDot *= 5; /btDot*10/16得到转换后的小数数据btDot >>= 3;/数据处理TempData.btThird = (uchar)iTempDataH / 100; /百位TempData.btSecond = (uchar)iTempDataH % 100 / 10;/十位TempData.btFirst = (uchar)iTempDataH % 10; /个位TempData.btDecimal = btDot; /小数部分return TempData;1602驱动程序:#include "1602.H"#include <AT89X51.H>/接口定义sbit RS=P27;sbit RW=P26;sbit E=P25;#defineDATAP0/判断忙指令void Busy()DATA = 0xff;RS = 0;RW = 1; while(DATA & 0x80)E = 0; E = 1; E = 0;/写指令程序void WriteCommand(uchar btCommand)Busy();RS = 0;RW = 0;E = 1;DATA = btCommand;E = 0;/写数据程序void WriteData(uchar btData)Busy();RS = 1;RW = 0;E = 1;DATA = btData;E = 0;/清屏显示void Clear()WriteCommand(1);/初始化void Init()WriteCommand(0x0c);/开显示,无光标显示WriteCommand(0x06);/文字不动,光标自动右移WriteCommand(0x38);/设置显示模式:8位2行5x7点阵/显示单个字符void DisplayOne(bit bRow, uchar btColumn, uchar btData, bit bIsNumber)if (bRow) WriteCommand(0xc0 + btColumn);else WriteCommand(0x80 + btColumn);if (bIsNumber) WriteData(btData + 0x30); /bIsNumber为1就以ascall码显示else WriteData(btData); /直接显示符号/显示字符串函数void DisplayString(bit bRow, uchar btColumn, uchar *pData)while (*pData != '0') if (bRow) WriteCommand(0xc0 + btColumn);/显示在第1行 else WriteCommand(0x80 + btColumn);/显示在第0行WriteData(*(pData+);/要显示的数据btColumn+;/列数加一程序流程图:见附录一第三章 室内温度监控系统设计方案主要器件简介3.1 AT89S51单片机AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。主要性能特点:1、4k Bytes Flash片内程序存储器;2、128 bytes的随机存取数据存储器(RAM);3、32个外部双向输入/输出(I/O)口;4、2个中断优先级、2层中断嵌套中断;5、5个中断源;6、2个16位可编程定时器/计数器;7、2个全双工串行通信口;8、看门狗(WDT)电路;9、片内振荡器和时钟电路;10、与MCS-51兼容;11、全静态工作:0Hz-33MHz;12、三级程序存储器保密锁定;13、可编程串行通道;14、低功耗的闲置和掉电模式。管脚说明:VCC:电源电压输入端。GND:电源地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。PDIP封装的AT89S51管脚如图3所示 图3P1口: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”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为普通I/O口,还有第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(T0定时器的外部计数输入)P3.5 T1(T1定时器的外部计数输入)P3.6 /WR(外部数据存储器的写选通)P3.7 /RD(外部数据存储器的读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51的P0、P1、P2、P3口作为输入时都是准双向口。除了P1口外P0、P2、P3口都还有其他的功能。RST:复位输入端,高电平有效。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:外部程序存储器访问允许。当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:片内振荡器反相放大器和时钟发生器的输入端。XTAL2:片内振荡器反相放大器的输出端。3.2 DS18B20温度传感器3.2.1 简介DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。技术性能描述、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。、测温范围 55+125,固有测温误差(注意,不是分辨率,这里之前是错误的)1。、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。、工作电源: 3.05.5V/DC (可以数据线寄生电源)、在使用中不需要任何外围元件、测量结果以912位数字量方式串行传送、不锈钢保护管直径 6、适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温、标准安装螺纹 M10X1, M12X1.5, G1/2”任选、PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20管脚排列如图4所示。 图4DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。3.2.2 DS18B20的测温原理测温原理如图5所示:低温度系统晶振斜率累加器计数器1高温度系统晶振 =0比较预置温度寄存器=0计数器2加1停止LSB置位清除 图5图中低温度系数晶振的震荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1.高温度系数晶振随温度变化其震荡率明显改变,所产生的的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55所对应的的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置值将重新被装入,计数器1重新开始对低温度系晶振产生的脉冲信号进行计数,如此循环直到计数器2技术到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。温度的转换:例如当DS18B20采集到+125的实际温度后,输出为07D0H,则:实际温度=07D0H0.0625=20000.0625=1250C。例如当DS18B20采集到-55的实际温度后,输出为FC90H,则应先将11位数据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0625=550C。3.3液晶显示屏16021602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。管脚功能:如图6所示。图61602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电