《基于单片机的数字温度计设计_毕业设计论文(47页).doc》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计设计_毕业设计论文(47页).doc(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于单片机的数字温度计设计_毕业设计论文-第 43 页基于单片机的数字温度计设计摘 要在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。我们采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55125,最高分辨率可达0.0625。DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,
2、减少了外部的硬件电路,具有低成本和易使用的特点。本文介绍一种基于AT89C52单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0+100,使用LCD模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C52单片机功能和应用。该电路设计新颖、功能强大、结构简单。关键词:温度测量,AT89C52,DS18B20,系统仿真Design of Digital Thermometer Based on SCMABSTRACTIn daily life and industrial production
3、process, often used in the detection and control of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter. Traditional thermocouple and temperature components are the second resistor. The thermocouple and thermal resistan
4、ce are generally measured voltage, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively simple way to measure. We use the United States following DALLAS Semiconductor DS1820 imp
5、roved after the introduction of a smart temperature sensor DS18B20 as the detection element, a temperature range of -55125, up to a maximum resolution of 0.0625. DS18B20 can be directly read out the temperature on the north side, and three-wire system with single-chip connected to a decrease of the
6、external hardware circuit, with low-cost and easy use. The introduction of a cost-based AT89C52 SCM a temperature measurement circuits, the circuits used DS18B20 high-precision temperature sensor, measuring scope 0+100, can set the warning limitation, the use of seven segments LCD that can be displa
7、y the current temperature. The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the functions and applications of AT89C52 .This circuit design innovative, powerful, can be expansionary strong. KEY WORDS: Temperature measurement,AT89C52,D
8、S18B20,System simulation目录前言1第1章 绪论21.1 设计背景21.1.1 温度计的介绍21.1.2 温度传感器的发展状况31.2 选题的目的和意义41.2.1 选题的目的41.2.2 选题的意义4第2章 系统概述52.1 设计方案的选择52.1.1 方案一52.1.2 方案二62.2 系统设计原理6第3章 系统硬件的设计83.1 AT89C52的介绍83.2 DS18B20的介绍113.2.1 DS18B20的引脚排列113.2.2 DS18B20内部结构123.2.3 DS18B20的测温原理163.2.4 DS18B20使用的注意事项173.3 数字温度计电路设
9、计183.3.1 数字温度计原理图183.3.2 时钟电路的设计183.3.3 复位电路的设计193.3.4 接口电路的设计203.3.5 显示电路的设计203.3.6 报警电路的设计23第4章 系统软件的设计244.1软件Proteus与Keil244.1.1 Proteus软件244.1.2 Keil软件274.2 系统主程序294.2.1 主程序294.2.2 DS18B20初始化304.2.3 温度转换命令子程序304.2.4 温度数据的计算处理方法314.3 源程序31第5章 仿真325.1 仿真结果32结论34谢 辞35参考文献36附录37外文资料翻译46前言随着科技的不断发展,现
10、代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工、农业生产过程中需要实时测量温度,因此研究温度的测量方法和装置具有重要的意义。传统的温度传感器大多以热敏电阻作为温度传感器,但热敏电阻的可靠性差,准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理,而这需要比较多的
11、外部的硬件的支持,硬件电路复杂(需要用到A/D转换电路,感温电路),软件调试也复杂,制作成本也非常高。目前的数字温度传感器是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片机测温系统等高科技的方向迅速发展。本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,
12、并对以此传感器,AT89C52单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示等优点。 第1章 绪论1.1 设计背景1.1.1 温度计的介绍随着科学技术的发展和现代工业技术的需要,测温技术也不断地改进和提高。由于测温范围越来越广,根据不同的要求,又制造出不同需要的测温仪器。下面介绍几种常用的温度计。气体温度计:多用氢气或氦气作测温物质,因为氢气和氦气的液化温度很低,接近于绝对零度,故它的测温范围很广。这种温度计精确度很高,多用于精密测量。 电阻温度计:分为金属电阻温度计和半导体电阻温度计,都是
13、根据电阻值随温度的变化这一特性制成的。金属温度计主要有用铂、金、铜、镍等纯金属的及铁、磷青铜合金的;半导体温度计主要用碳、锗等。电阻温度计使用方便可靠,已广泛应用。电阻温度计的测量范围为-260600左右。 指针式温度计:是形如仪表盘的温度计,也称寒暑表,用来测室温,是用金属的热胀冷缩原理制成的。它是以双金属片作为感温元件,用来控制指针。双金属片通常是用铜片和铁片铆在一起,且铜片在左,铁片在右。由于铜的热胀冷缩效果要比铁明显的多,因此当温度升高时,铜片牵拉铁片向右弯曲,指针在双金属片的带动下就向右偏转(指向高温);反之,温度变低,指针在双金属片的带动下就向左偏转(指向低温)。 压力式温度计:压
14、力式温度计是利用封闭容器内的液体,气体受热后产生体积膨胀或压力变化作为测信号。它的基本结构是由温包、毛细管和指示表三部分组成。压力式温度计的优点是:结构简单,机械强度高,不怕震动。价格低廉,不需要外部能源。缺点是:测温范围有限制,一般在-80400;热损失大响应时间较慢。 水银温度计:水银温度计是膨胀式温度计的一种,水银的凝固点是 -38.87,沸点是 356.7,用来测量0150或500以内范围的温度,它只能作为就地监督的仪表。用它来测量温度,不仅比较简单直观,而且还可以避免外部远传温度计的误差。1.1.2 温度传感器的发展状况单片机在测控领域中具有十分广泛的应用,它既可以直接处理电信号,也
15、可以间接处理温度、湿度、压力等非电信号。由于该特点,因而被广泛应用于工业控制领域1。 由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、压力等这类非电信号的信息处理,必须使用对应的传感器进行A/D或D/A转换,最后再传输给单片机进行最终的数据处理和显示。在测温领域,人们通常使用温度传感器,将温度信息转换为电流或电压进行输出,进而完成数据的处理和显示2。本文正是基于温度传感器和单片机而构建的电路,进而完成温度的测量和显示。 温度传感器的发展经历了三个发展阶段:(1) 传统的分立式温度传感器。(2) 模拟集成温度传感器。(3) 智能集成温度传感器。目前使用最广的是智能温度传感器(亦称数字
16、温度传感器),是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配于各种微控制器(MCU) 3。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展4。本文将介绍温度传感器DS18B20的结构特征及控制方法,并以此传感器为测温元件,AT89C52单片机为控制核心,构成的数字温度测量装置,并对其工作原理及程序设计作
17、详细的介绍。1.2 选题的目的和意义1.2.1 选题的目的利用单片机AT89C52和温度传感器DS18B20设计一个设计温度计,能够测量-2080之间的温度值,并且小于20和大于32时报警,用LCD液晶屏显示,测量精度为0.1。通过本次设计能够理解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识5。1.2.2 选题的意义随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以ATMEL公司的AT89
18、C52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器6。本课题研究的重要意义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平7。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关8。第2章 系统概述2.1 设计方案的选择该系统主要由温度测量和数据采集
19、两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。2.1.1 方案一采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成9。数据采集部分则使用带有A/D通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据处理,通过显示电路,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D转换电路
20、,感温电路比较麻烦。系统主要包括对ADC0809的数据采集,温度的测量,此外还有复位电路,晶振电路,启动电路等。处理芯片为51芯片,执行机构有4位数码管、报警电路等。系统框图如图2-1所示。 图2-1 热电偶温差电路测温系统框图2.1.2 方案二采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100时,最大线形偏差小于1。DS18B20的最大特点之一采用了单总线的数据传输,由温度传感器DS18B20和单片机AT89C52构成的温度测量装置,它直接输出温度的数字
21、信号,可直接与计算机连接10。这样,测温系统的结构就比较简单,体积也不大。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外,AT89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89C52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片以获取时间数据,在数据处理同时显示时间,并可以利用AT89C5
22、2芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过芯片与计算机的接口进行串口通信,方便的采集和整理时间温度数据11。从以上两种方案中,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2.2 系统设计原理本课题以是AT89C52单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成12。利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性
23、,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警13。同时处理后的数据送到LCD中显示。系统框图如图2-2所示。图2-2 系统基本方框图1. 主控制器单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2. 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100,时,最大线形偏差小于1,采用单总线的数据传输,可直接与计算机连接
24、。用单片机AT89C52芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。获得的数据可以通过芯片与计算机的接口进行串口通信,方便的采集和整理时间温度数据。3. 显示电路显示电路采用LCD液晶显示数码管,从P3口RXD,TXD串口输出段码14。显示电路是使用的串口显示,这种显示最大的优点就是使用资源比较少,只用P3口的RXD和TXD串口发送和接收,显示比较清晰。第3章 系统硬件的设计3.1 AT89C52的介绍1. AT89C52简介AT89C52是一种带8K字节闪速可编程可擦除只读存储器(FPEROMFlash Programm
25、able and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机15。AT89C52是一种带8KB的闪速可编程可擦除只读存储器的单片机,AT89C52是一种高效微控制器。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C52引脚排列如图3-1所示。 图3-1 AT89C52的管脚排列图2. 主要特性:(1) 与MCS-51兼容。 (2) 4K字节可编程闪烁存储器。 (3) 寿命长:1000写/擦循环。 (4) 数据保留时间:10年。 (5) 全静态工作:0Hz-24MHz。 (6) 三级程序存储器锁定。 (
26、7) 1288位内部RAM。(8) 32可编程I/O线。 (9) 两个16位定时器/计数器。 (10) 5个中断源。 (11) 可编程串行通道。 (12) 低功耗的闲置和掉电模式。 (13) 片内振荡器和时钟电路。 3. 管脚说明VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏极开路双向I/O口,每个管脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻抗输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的
27、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”时,它利用内部上拉优势,当对外部八位地址数据
28、存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是带8个内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。 P3口也可作为AT89C52的一些特殊功能口,如下表3-1所示。表3-1 P3口的一些特殊功能口口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(
29、外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(片外数据存储器“写选通控制”输出)P3.7/RD(片外数据存储器“读选通控制”输出)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR
30、8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指令时,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-0FFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平(接VCC端)时,CPU则执行内部程序存储器中的程序。在FLASH ROM编程期间,此引脚也用于施加12V编程电源(VPP)
31、。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2 DS18B20的介绍Dallas半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测
32、量,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。DS18B20测量温度范围为-55+125,在-10+85范围内,精度为0.5。DS18B20可以程序设定912位的分辨率,及用户设定的报警温度存储在E2PROM中,掉电后依然保存。3.2.1 DS18B20的引脚排列如图3-2所示,DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与TTL电平兼容。VDD:可接电源,也可接地。因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD接地。图3-2 DS18B20引脚排列3.2.2 D
33、S18B20内部结构DS18B20内部结构主要由四部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL及配置寄存器。DS18B20内部结构图如3-3图所示。图3-3 DS18B20内部结构图1.64位ROM。64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表3-2所示。表3-2 64位ROM标识8位循环冗余检验48位序列号8位分类编号(10H)MSB LSBMSB LSBMSB LSB开始8位表示产品分类编号,接着48位是该DS18B20自身的序列号,最后8位为前56位的CRC循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使
34、每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。2. 温度传感器。温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量。通过软件编程可将-55125范围内的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5、0.25、0.125、0.0625,即最高分辨率为0.0625。芯片出厂时默认为12位的转换精度。当接收到温度转换命令后,开始转换,转换完成后的温度以16位带符号扩展的二进制补码形式表示,存储在高速缓存器RAM的第0,1字节中,二进制数的前5位是符号位。如果测得的温度大于0
35、,这5位为0,只要将测得的数值乘上0.0625即可得到实际温度;如果温度小于0,这5位为1,测得的数值需要取反加1再乘上0.0625即可得到实际温度。温度数据格式如表3-3所示。表3-3 温度数据格式232221202-12-22-32-4LS Byte SSSSS262524MS Byte 其中“S”为符号位,对应的温度计算:当符号位S0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表3-4是一部分温度值对应的二进制温度数据。表3-4 一部分温度对应值温度/ 二进制表示 十六进制表示 +125 000
36、0 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0000 0191H +10.125 0000 0000 1010 0001 00A2H +0.5 0000 0000 0000 0010 0008H 0 0000 0000 0000 1000 0000H -0.5 1111 1111 1111 0000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0625 1111 1110 0110 1111 FE6FH -55 1111 1100 1001
37、0000 FC90H DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PROM,后者存放高温度和低温度触发器TH、TL和结构寄存器。高速暂存RAM包含了8个连续字节,前2个字节是测得的温度信息,第3和第4字节是TH和TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的字节定义如表3-5所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。表3-5 DS18B20字节定义TM R1 R0 1 1 1 1 1 DS1
38、8B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,详见表3-6(DS18B20出厂时被设置为12位)。表3-6 DS18B20分辨率设置R1 R0 分辨率/位温度最大转向时间/ms 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 由表3-6可见,分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。3. 温度报警触发器TH和TLDS18B20依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个RO
39、M 操作命令之一:(1) 读ROM。(2) 匹配ROM。(3) 搜索ROM。(4) 跳过ROM。(5) 报警搜索。成功执行完一条ROM 操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。一条控制操作命令指示DS18B20完成一次温度测量。测量结果放在DS18B20的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH和TL各由一个E2PROM字节构成。可以用一条存储器操作命令对TH和TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。4. 配置寄存器。配置寄存器的内容用于确定温度值
40、的数字转换率。DS18B20工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第5个字节。3.2.3 DS18B20的测温原理如图3-4所示,图中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图3-4 DS18B20测温原理图 图中还隐含着计数门,当计数门打开时,DS18B20就对低温系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55所对应的一个基数分别置入减法计数器1和温度寄存器中,
41、减法计数器和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,并重新开始对低温度系数振荡器产生的脉冲信号进行计数。如此循环,直到减法计数器2计数到0时,停止温度计数器值的累加,此时温度寄存器中的数值就是所测温度值。图中的斜率累加器用于补偿和修正测温过程的非线形性,直到温度寄存器达到被测温度值。另外,DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:(
42、1) 每一次读写之前都必须要对DS18B20进行复位。(2) 复位成功后发送一条ROM指令。(3) 最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1560微秒左右后发出60240微秒的低脉冲,主CPU收到此信号表示复位成功。3.2.4 DS18B20使用的注意事项DS18B20虽然具有测温系统简单、测温精度高、连接方便、用线少等优点,但在实际应用中也应注意以下几方面的问题: 1. 较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编
43、程时,必须严格的保证读/写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行程序设计时,对DS18B20部分最好采用汇编语言实现。 2. 在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3. 连接DS18B20的总线电缆是有长度限制的。当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次
44、数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 2. 在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3.3 数字温度计电路设计3.3.1 数字温度计原理图温度计电路设计原理图如图3-5所示,控制器使用单片机AT89C52,温度计传感器使用DS18B20,用液晶实现温度显示。本温度计大体分三个工作过程。首先,由DS18B20温度传感器芯片测量当前的温度,并将结果送入单片机。然后,通过AT89C52单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。最后,SMC1602A芯片将送来的值显示于显示屏上。其中,DS18B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。图3-5 温度计电路设计