基于DS1820组件的数字温度计设计.doc_第1页
基于DS1820组件的数字温度计设计.doc_第2页
基于DS1820组件的数字温度计设计.doc_第3页
基于DS1820组件的数字温度计设计.doc_第4页
基于DS1820组件的数字温度计设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

河北工业大学 毕业设计说明书(论文) 作 者: 王亮王亮 学 号: 078303 系 : 电电子系子系 专 业: 电子信息工程电子信息工程 题 目: 基于基于 DS1820 组件的数字温度计设计组件的数字温度计设计 指导者: 庞晶庞晶 (姓 名) (专业技术职务) 评阅者: (姓 名) (专业技术职务) 20102010 年 5 5 月 2121 日 河北工业大学 毕 业 论 文 作 者: 王亮王亮 学 号: 078303 系 : 电电子系子系 专 业: 电子信息工程电子信息工程 题 目: 基于基于 DS1820 组件的数字温度计设计组件的数字温度计设计 指导者: (姓 名) (专业技术职务) 评阅者: (姓 名) (专业技术职务) 20102010 年 5 5 月 2121 日 1 题题 目:目:基于基于 DS1820DS1820组件的组件的数字温度计设计 摘要: 随着时代的进步和发展传感器技术已经普及到我们生活、工作、科研、各个领域,已经 成为一种比较成熟的技术, 本文主要介绍了一个基于 DS1820 组件的测温系统,详细描述了 利用数字温度传感器 DS1820 开发测温系统的过程,重点对传感器在单片机下的硬件连接, 软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统 可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来 相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活 和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统 的辅助扩展。DS1820 与 AT89C51 结合实现最简温度检测系统,该系统结构简单,抗干扰能 力强,适合于恶劣环境下进行现场温度测量或远程测控,有广泛的应用前景。 关键词关键词:单片机;温度检测;AT89S51;DS1820; 2 Title DS1820 component-based design of digital thermometer Abstract: As the times progress and development of sensor technology has spread to our lives, work, research in various fields has become a relatively mature technology, this paper presents a component based on the DS1820 temperature measurement system, a detailed description of the use of digital temperature sensor DS1820 temperature measurement system development process, focusing on the sensor under the SCM hardware connections, software programming, and the module system process and a detailed analysis of the various parts of the circuits were introduced one by one, the system can easily achieve achieve temperature acquisition and display, and can be arbitrarily set upper and lower alarm temperature, it is very convenient to use, high accuracy, wider range, high sensitivity, small size, low power consumption, suitable for our daily life and work agricultural production in the temperature measurement, temperature processing module can also be embedded as other systems, as other supporting expansion of the main system. DS1820 with AT89C51 combined to realize the most simple temperature detection system, Gai system is simple, anti-jamming capability, suitable for harsh environments Xia Jin Xing field temperature measurements or remote monitoring and control, there Guangfan the application prospects. Keywords: microcontroller; temperature detection; AT89S51; DS1820; 3 目 次 1、引言4 2、设计内容及性能指标5 3、系统方案论证与比较5 3.1、方案一 .5 3.2、方案二 .6 4、系统器件选择9 4.1、 单片机的选择 .7 4.11 、AT89S51 引脚功能介绍 8 4.2、温度传感器的选择 .10 4.21、DS1820 简单介绍: 10 4.22 、DS1820 使用中的注意事项 11 4.23 、 DS1820 内部结构 .12 4.24、DS1820 测温原理14 4.25、提高 DS1820 测温精度的途径 .16 4.3、显示及报警模块器件选择 .17 5、硬件设计电路17 5.1、主控制器 .17 5.2、显示电路 .17 5.3、 温度检测电路 .18 5.4、温度报警电路 .23 6、 软件设计21 6.1、 概述 .24 6.2、主程序模块 .24 6.3、各模块流程设计 .25 6.31、 温度检测流程 .26 6.32、报警模块流程 26 6.33、 中断设定流程 .27 7.总结28 附录29 4 1 1、引言、引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级 的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三 大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器 属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛, 可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,不仅在工业生产过 程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装 置具有重要现实意义。 温度的测量关键在测,先测才能有量。传感器就是测得工具。 温度传感器的发展经历了三个发展阶段: 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在 20 世纪 90 年代中期问世的,它是微 电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度 控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的 温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向 飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网 络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器 DS1820 的结构特征及控制方法,并对以此传感器,AT89S51 单片机为控制器构成的数字温度 测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便, 测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或 5 科研实验室使用,或远程测控。该设计控制器使用 ATMEL 公司的 AT89S51 单片机,测温传感 器使用 DALLAS 公司 DS1820,用 LED 数码管来实现温度显示。 2 2、设计内容及性能指标、设计内容及性能指标 本设计主要是介绍了在单片机控制下的测温系统,能够直观显示出温度数值。当温度超 过上限或低于下限能够报警。 3 3、系统方案论证与比较、系统方案论证与比较 该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出 两种实现方案。 3.13.1、方案一、方案一 采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起 的异金属导线所组成(热电偶的构成如图 3.1),热电偶产生的热电势由两种金属的接触电 势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出 检测结点的温度。数据采集部分则使用带有 A/D 通道的单片机,在将随被测温度变化的电 压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上, 就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也 存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计 需要用到 A/D 转换电路,感温电路比较麻烦。 图 3.1 热电偶电路图 系统主要包括对 A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这几 项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。 6 故现场输入硬件有手动复位键、A/D 转换芯片,处理芯片为 51 芯片,执行机构有 4 位数码 管、报警器等。系统框图如图 3.2 所示: 图 3.2 热电偶温差电路测温系统框图 3.23.2、方案二、方案二 采用数字温度芯片 DS1820 测量温度,输出信号全数字化。便于单片机处理及控制,省 去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件, 此元件线形较好。在 0100 摄氏度时,最大线形偏差小于 1 摄氏度。DS1820 的最大特点 之一采用了单总线的数据传输,由数字温度计 DS1820 和微控制器 AT89S51 构成的温度测量 装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单, 体积也不大。采用 51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术 算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多 DS1820 控制工作,还可以与 PC 机通信上传数据,另外 AT89S51 在工业控制上也有着广泛的应 用,编程技术及外围功能电路的配合使用都很成熟。 该系统利用 AT89S51 芯片控制温度传感器 DS120 进行实时温度检测并显示,能够实现快 速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设 计中加入时钟芯片 DS1302 以获取时间数据,在数据处理同时显示时间,并可以利用 AT24C16 芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调 时和温度查询,获得的数据可以通过 MAX232 芯片与计算机的 RS232 接口进行串口通信,方 7 便的采集和整理时间温度数据。 系统框图如图 3.3 所示 图 3.3 DS1820 温度测温系统框图 从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差 较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次 设计采用了方案二。 4 4、系统器件选择、系统器件选择 4.14.1、 单片机的选择单片机的选择 对于单片机的选择,可以考虑使用 8031 与 8051 系列,由于 8031 没有内部 RAM,系统 又需要大量内存存储数据,因而不适用。AT89S51 是美国 ATMEL 公司生产的低功耗,高性 能 CMOS 8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器既可在线编程(ISP),也可用传统方法进行编程, 所以低价位 AT89S51 单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领 域,对于简单的测温系统已经足够。单片机 AT89S51 具有低电压供电和体积小等特点,四 个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统 可用二节电池供电。主要特性如下 与 MCS-51 兼容 4K 字节可编程闪烁存储器 8 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 4.1 AT89S51 单片机引脚图 AT89S51 引脚功能介绍 AT89S51 单片机为 40 引脚双列直插式封装。 其引脚排列和逻辑符号如图 4.1 所示。 各引脚功能简单介绍如下: VCC:供电电压 GND:接地 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每个管脚可吸收 8TTL 门电流。当 P1 口的管脚写“1”时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义 为数据/地址的第八位。在 FLASH 编程时,P0 口作为原码输入口,当 FLASH 进行校验时,P0 输出原码,此时 P0 外部电位必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1 口被外部下 拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作 为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输 入时,P2 口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2 口当用于 9 外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出 地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2 口输 出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。 当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉 为低电平,P3 口将输出电流(ILL),也是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特 殊功能口: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断 0) P3.3 INT1(外部中断 1) P3.4 T0(记时器 0 外部输入) P3.5 T1(记时器 1 外部输入) P3.6 WR (外部数据存储器写选通) P3.7 RD (外部数据存储器读选通) 同时 P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位 字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输 出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目 的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的 输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令时 ALE 才起作用。另 外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期 PSEN 两次有效。但在访问外部数据存储器时,这两次有效的 PSEN 信号将不出现。 EA/VPP:当 EA 保持低电平时,访问外部 ROM;注意加密方式 1 时,EA 将内部锁定为 RESET;当 EA 端保持高电平时,访问内部 ROM。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 10 XTAL2:来自反向振荡器的输出。 4.24.2、温度传感器的选择、温度传感器的选择 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较 多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用 DALLAS 公司的数字温 度传感器 DS1820 作为测温元件。 4.21 DS1820 简介: DALLAS 最新单线数字温度传感器 DS1820 是一种新型的“一线器件”,其体积更小、更 适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为 9 位12 位转换精度,测温分辨率可达 0.0625 摄氏度,分辨率设定参数 以及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。被测温度用符号扩展的 16 位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多 个 DS1820 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与诸多 DS1820 通信,占 用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具 有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS1820 的性能特点如下: 独特的单线接口方式,DS1820 在与微处理器连接时仅需要一条口线即可实现微处理 器与 DS1820 的双向通讯 DS1820 支持多点组网功能,多个 DS1820 可以并联在唯一的三线上,实现组网多点测 温 DS1820 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三 极管的集成电路内 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电 温范围55125,在-10+85时精度为0.5 零待机功耗 11 可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温 在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快 用户可定义报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 测量结果直接输出数字温度信号,以“一线总线“串行传送给 CPU,同时可传送 CRC 校 验码,具有极强的抗干扰纠错能力 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 以上特点使 DS1820 非常适用与多点、远距离温度检测系统。 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警 触发器 TH 和 TL、配置寄存器。DS1820 的管脚排列、各种封装形式如图 4.2 所示,DQ 为数 据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源; GND 为地信号;VDD 为可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。其电路 图 4.3 所示.。 图 4.3 传感器电路图 图 4.2 外部封装形式 4.22 DS1820 使用中的注意事项 DS1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实 际应用中也应注意以下几方面的问题: DS1820 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的, 12 不然会出现转换错误的现象,使温度输出总是显示 85。 在实际使用中发现,应使电源电压保持在 5V 左右,若电源电压过低,会使所测得的 温度精度降低。 较小的硬件开销需要相对复杂的软件进行补偿,由于 DS1820 与微处理器间采用串行 数据传送,因此,在对 DS1820 进行读写编程时,必须严格的保证读写时序,否则将无法读 取测温结果。在使用 PL/M、C 等高级语言进行系统程序设计时,对 DS1820 操作部分最好采 用汇编语言实现。 在 DS1820 的有关资料中均未提及单总线上所挂 DS1820 数量问题,容易使人误认为 可以挂任意多个 DS1820,在实际应用中并非如此,当单总线上所挂 DS1820 超过 8 个时, 就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 在 DS1820 测温程序设计中,向 DS1820 发出温度转换命令后,程序总要等待 DS18B20 的返回信号,一旦某个 DS1820 接触不好或断线,当程序读该 DS1820 时,将没有返回信号, 程序进入死循环,这一点在进行 DS1820 硬件连接和软件设计时也要给予一定的重视。 4.23 DS1820 内部结构 图为 DS1820 的内部框图,它主要包括寄生电源、温度传感器、64 位激光 ROM 单线接口、 存放中间数据的高速暂存器(内含便笺式 RAM) ,用于存储用户设定的温度上下限值的 TH 和 TL 触发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分。 DS18B20 采用脚 PR35 封装或脚 SOIC 封装,其内部结构框图如图 4.4 所示 图 4.4 DS1820 内部结构框图 64 b 闪速 ROM 的结构如下: I/O 64 位 ROM 和 单 线 接 口 存 储 区 存储器与控制逻辑 温度传感器 高温触发器 TH 低温触发器 TL 8 位 CRC 发生器 13 开始位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后位是 前面 56 位的 CRC 检验码,这也是多个 DS1820 可以采用一线进行通信的原因。温度报警触 发器和,可通过软件写入户报警上下限。主机操作 ROM 的命令有五种,如下: 指 令说 明 读ROM(33H) 读DS1820的序列号 匹配ROM(55H) 继读完64位序列号的一个命令,用 于多个DS1820时定位 跳过ROM(CCH) 此命令执行后的存储器操作将针对 在线的所有DS1820 搜ROM(F0H) 识别总线上各器件的编码,为操作 各器件作好准备 报警搜索(ECH) 仅温度越限的器件对此命令作出响 应 DS1820 温度传感器的内部存储器还包括一个便笺式 RAM 和一个非易失性的可电擦除的 EERAM。便笺式 RAM 的结构为字节的存储器,结构如图 4.5 所示。 图 4.5 便笺式 RAM 结构图 前个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次 上电复位时被刷新。便笺式 RAM 的第 4、5 字节保留未用,表现为全逻辑。第字节读出 前面所有字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。 。DS1820 工作时 寄存器中的分辨率转换为相应精度的温度数值。 该字节各位的定义如下: 当 DS1820 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符 TM R1 R0 1 1 1 1 1 14 号扩展的二进制补码形式存储在便笺式 RAM 的第 1,2 字节。单片机可通过单线接口读到该 数据,读取时低位在前,高位在后,数据格式以 0.062 5 /LSB 形式表示。温度值格式如 下: 这是 12 位转化后得到的 12 位数据,存储在 DS1820 的两个 8 比特的 RAM 中,二进制中 的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。图中,S 表示位。对应的温度计算:当符号位 S=0 时,表示测得的温度 植为正值,直接将二进制位转换为十进制;当 S=1 时,表示测得的温度植为负值,先将补码 变换为原码,再计算十进制值。例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H,-25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H。 DS1820 温度传感器主要用于对温度进行测量,数据可用 16 位符号扩展的二进制补码读 数形式提供,并以 0.0625LSB 形式表示。表 1 是部分温度值对应的二进制温度表示数据。 表 1 部分温度值 DS1820 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较,若 TTH 或 TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此, 可用多只 DS1820 同时测量温度并进行告警搜索。 在 64 位 ROM 的最高有效字节中存储有循环冗余校验码(CRC) 。主机根据 ROM 的前 56 15 位来计算 CRC 值,并和存入 DS1820 中的 CRC 值做比较,以判断主机收到的 ROM 数 据是否正 确。 4.24 DS1820 测温原理 DS1820 的测温原理如图 4.6 所示,图中低温度系数晶振的振荡频率受温度的影响很小 用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明 显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开 时,DS1820 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门 的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入 减法计数器 1 和温度寄存器中,减法计数器 1 和温度寄存器被预置在-55 所对应的一个基 数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置 值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法计数器 1 重新 开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时, 停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图 2 中的斜率累加器用于补 偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭 就重复上述过程,直至温度寄存器值达到被测温度值,这就是 DS1820 的测温原理。 另外,由于 DS1820 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时 序很重要。系统对 DS1820 的各种操作必须按协议进行。操作协议为:初始化 DS1820 (发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。 16 图 4.6 DS1820 测温原理图 4.25 提高 DS1820 测温精度的途径 (1)、DS1820 高精度测温的理论依据 DS1820 正常使用时的测温分辨率为 0.5,这对于水轮发电机组轴瓦温度监测来讲略 显不足,在对 DS1820 测温原理详细分析的基础上,我们采取直接读取 DS1820 内部暂存寄存 器的方法,将 DS1820 的测温分辨率提高到 0.10.01 DS1820 内部暂存寄存器的分布如表 1 所示,其中第 7 字节存放的是当温度寄存器停止 增值时计数器 1 的计数剩余值,第 8 字节存放的是每度所对应的计数值,这样,我们就可以 通过下面的方法获得高分辨率的温度测量结果。首先用 DS1820 提供的读暂存寄存器指令 (BEH)读出以 0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得 到所测实际温度整数部分 T 整数,然后再用 BEH 指令读取计数器 1 的计数剩余值 M 剩余和每 度计数值 M 每度,考虑到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系, 实际温度 T 实际可用下式计算得到:T 实际=(T 整数0.25)+(M 每度M 剩余)/M 每度。 根据 DS1820 的通讯协议,主机控制 DS1820 完成温度转换必须经过三个步骤: 每一次读写之前 都要对 DS18B0 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS1B20 进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒, 然后释放,DS1B20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲, 主 CPU 收到此信号表示复位成功。 (2)、 测量数据比较 17 表 2 为采用直接读取测温结果方法和采用计算方法得到的测温数据比较,通过比较可以 看出,计算方法在 DS1820 测温中不仅是可行的,也可以大大的提高 DS1820 的测温分辨率。 表 2 DS1820 直度测温结果与计算测温结果数据比较 4.34.3 显示及报警模块器件选择显示及报警模块器件选择 在本设计中温度测量范围为 0125,精度为0.5,因此只需要数码管就可以 完成相关的显示功能,报警器可以用蜂鸣器配合三极管来代替。 5 5 硬件设计电路硬件设计电路 温度计电路设计总框图如图 5.1 所示,控制器使用单片机 AT89C2051,温度计传感器使用 DS1820,用 LED 数码管实现温度显示。 本温度计大体分三个工作过程。首先,由 DS1820 温度传感器芯片测量当前的温度,并 将结果送入单片机。然后,通过 89C205I 单片机芯片对送来的测量温度读数进行计算和转换, 经显示电路显示于 LED 数码管上本电路主要由 DSl820 温度传感器芯片、LED 显示电路和 AT89C2051 单片机芯片组成。其中,DSI820 温度传感器芯片采用“一线制”与单片机相连, 它独立地完成温度测量以及将温度测量结果送到单片机的工作。 5.15.1、主控制器、主控制器 单片机 AT89C2051 具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计 需要,很合适携手特式产品的使用。主机控制 DS1820 完成温度转换必须经过三个步骤:初 传感器A/D 转换器显示器控制器 18 始化、ROM 操作指令、存储器操作指令。必须先启动 DS1820 开始转换,再读出温度转换值。 5.25.2、显示电路、显示电路 常用的 LED 显示驱动电路有并行译码方式、串行并行转换方式、显示驱动接口芯片方 式等. 5.21 并行译码显示方式 右图为单片机 AT89C2051 输出显示的一个例子,4 位 BCD 码 数据从其 P1.0P1.3 并行输出,经 7 段 LED 显示驱动电路 CD4511 译码后驱动 LED 显示,这样只需向 P1.0P1.3 写入欲显 示数字的 BCD 码,即可显示出相应的数字。这种方式虽然简单,但占用单片机口线较多,资 源利用率低,因此不常采用。 5.22 串行译码显示方式 右图所示为 AT89C2051 的串口驱动数码管的电路,其中串口 工作在方式 0,74LS164 是 8 位串入并出移位寄存器,负责将 RXD 输出的串行数据转换成并行信号。显然,这种方式显示同样的位 数使用单片机的口线大大减少,并且可以让 LED 显示 BCD 码以外 的字符(如 A、B、C、D 等),但是,当要显示的位数较多时,仍需占用较多的口线,并且在 许多情况下需要串口工作在 UART 方式,以便进行串行通信,从而限制了这种方式的使用范 围。 本设计显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用 p3 口的 RXD,和 TXD,串口的发送和接收,四只数码管采用 74LS164 右移寄存器驱动,显示比 较清晰。 5.35.3 温度检测电路温度检测电路 DS1820 最大的特点是单总线数据传输方式,DS1820 的数据 I/O 均由同一条线来完成。 DS1820 的电源供电方式有 2 种: 外部供电方式和寄生电源方式。工作于寄生电源方式时, VDD 和 GND 均接地, 他在需要远程温度探测和空间受限的场合特别有用, 原理是当 1 W ire 总线的信号线 DQ 为高电平时, 窃取信号能量给 DS1820 供电, 同时一部分能量给内部电容 19 充电, 当 DQ 为低电平时释放能量为 DS1820 供电。但寄生电源方式需要强上拉电路, 软件 控制变得复杂(特别是在完成温度转换和拷贝数据到 E2PROM 时) , 同时芯片的性能也有所 降低。因此, 在条件允许的场合, 尽量采用外供电方式。无论是内部寄生电源还是外部供电, I/O 口线要接 5K 左右的上拉电。在这里采用前者方式供电. 外部电源供电方式是 DS1820 最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电 路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开发中使用外部 电源供电方式,毕竟比寄生电源方式只多接一根 VCC 引线。在外接电源方式下,可以充分发 挥 DS1820 宽电源电压范围的优点,即使电源电压 VCC 降到 3V 时,依然能够保证温度量精 度。 由于 DS1820 只有一根数据线,因此它和主机(单片机)通信是需要串行通信,而 AT89S51 有两个串行端口,所以可以不用软件来模拟实现。经过单线接口访问 DS1820 必须 遵循如下协议:初始化、ROM 操作命令、存储器操作命令和控制操作。要使传感器工作,一 切处理均严格按照时序。 主机发送(Tx)-复位脉冲(最短为 480s 的低电平信号)。接着主机便释放此线并 进入接收方式(Rx)。总线经过 4.7K 的上拉电阻被拉至高电平状态。在检测到 I/O 引脚上 的上升沿之后,DS1820 等待 1560s,并且接着发送脉冲(60240s 的低电平信号)。 然后以存在复位脉冲表示 DS1820 已经准备好发送或接收,然后给出正确的 ROM 命令和存储 操作命令的数据。DS1820 通过使用时间片来读出和写入数据,时间片用于处理数据位和进 行何种指定操作的命令。它有写时间片和读时间片两种: 写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生写时间片。有两种类 型的写时间片:写 1 时间片和写 0 时间片。所有时间片必须有 60 微秒的持续期,在各写 周期之间必须有最短为 1 微秒的恢复时间. 读时间片:从 DS1820 读数据时,使用读时间片。当主机把数据线从逻辑高电平拉至逻 辑低电平时产生读时间片。数据线在逻辑低电平必须保持至少 1 微秒;来自 DS1820 的输出 数据在时间下降沿之后的 15 微秒内有效。为了读出从读时间片开始算起 15 微秒的状态, 主机必须停止把引脚驱动拉至低电平。在时间片结束时,I/O 引脚经过外部的上_鱯_9L_%拉 电阻拉回高电平,所有读时间片的最短持续期为 60 微秒,包括两个读周期间至少 1s 的 恢复时间。 一旦主机检测到 DS1820 的存在,它便可以发送一个器件 ROM 操作命令。所有 ROM 操 作命令均为 8 位长。 20 所有的串行通讯,读写每一个 bit 位数据都必须严格遵守器件的时序逻辑来编程,同 时还必须遵守总线命令序列,对单总线的 DS1820 芯片来说,访问每个器件都要遵守下列命 令序列:首先是初始化;其次执行 ROM 命令;最后就是执行功能命令(ROM 命令和功能命令 后面以表格形式给出)。如果出现序列混乱,则单总线器件不会响应主机。当然,搜索 ROM 命令和报警搜索命令,在执行两者中任何一条命令之后,要返回初始化。 基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲 和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机,且准备就绪。 在主机检测到应答脉冲后,就可以发出 ROM 命令。这些命令与各个从机设备的唯一 64 位 ROM 代码相关。在主机发出 ROM 命令,以访问某个指定的 DS1820,接着就可以发出 DS1820 支持的某个功能命令。这些命令允许主机写入或读出 DS1820 便笺式 RAM、启动温度 转换。软件实现 DS1820 的工作严格遵守单总线协议: (1)主机首先发出一个复位脉冲,信号线上的 DS1820 器件被复位。 (2)接着主机发送 ROM 命令,程序开始读取单个在线的芯片 ROM 编码并保存在单片机数 据存储器中,把用到的 DS1820 的 ROM 编码离线读出,最后用一个二维数组保存 ROM 编码, 数据保存在 X25043 中。 (3)系统工作时,把读取了编码的 DS1820 挂在总线上。发温度转换命令,再总线复位。 (4)然后就可以从刚才的二维数组匹配在线的温度传感器,随后发温度读取命令就可以 获得对应的度值了。 在主机初始化过程,主机通过拉低单总线至少 480us,来产生复位脉冲。接着,主机释 放总线,并进入接收模式。当总线被释放后,上拉电阻将单总线拉高。在单总线器件检测到 上升沿后,延时 1560us,接着通过拉低总线 60240us,以产生应答脉冲。 写时序均起始于主机拉低总线,产生写 1 时序的方式:主机在拉低总线后,接着必须 在 15us 之内释放总线。产生写 0 时序的方式:在主机拉低总线后,只需在整个时序期间保 持低电平即可(至少 60us)。在写字节程序中的写一个 bit 位的时候,没有按照通常的分别 写 0 时序和写 1 时序,而是把两者结合起来,当主机拉低总线后在 15us 之内将要写的位 c 给 DO:如果 c 是高电平满足 15us 内释放总线的要求,如果 c 是低电平,则 DOc 这条语 句仍然是把总线拉在低电平,最后都通过延时 58us 完成一个写时序(写时序 0 或写时序 1) 过程。 21 写时间时序:当主机把数据从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两 种写时间隙,写 1 时间隙和写 0 时间隙。所有写时间隙必须最少持续 60s,包括两个写 周期至少 1s 的恢复时间。I/O 线电平变低后,DS1820 在一个 15s 到 60s 的窗口内 对 I/O 线采样。如果线上事高电平,就是写 1,如果是低电平,就是写 0。主机要生成一个 写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开始后的 15s 内允许数据线 拉到高电平。主机要生成一个写 0 时间隙,必须把数据线拉到低电平并保存 60s。 每个读时隙都由主机发起,至少拉低总线 1us,在主机发起读时序之后,单总线器件才 开始在总线上发送 0 或 1。所有读时序至少需要 60us。 源程序: 假设要写 1 B 的数据, 且数据放在 A 中。 SETB TEM PDN NOP NOP WRITEDS1820LOP: CLR TEM PD IN MOV R6, # 08H ; 延时 15 Ls DJN Z R6, RRC A ; 将要写数据存入 C MOV TEM PD IN , C ; 将数据写入总线 MOV R6, # 14H ; 延时 40 Ls DJN Z R6, SETB TEM PD IN ; 释放总线 DJN Z R7,WR ITEDS1820LO P ; 写 8 位 RET 读时间时序:当从 DS1820 读数据时,主机生成读时间隙。当主机把数据从高电平拉到 低电平时,写时间隙开始,数据线必须保持至少 1s;从 DS1820 输出的数据在读时间隙的 下降沿出现后 15s 内有效。 因此,主机在读时间隙开始后必须把 I/O 脚驱动拉为的电平保持 15s,以读取 I/O 脚状态。在读时间隙的结尾,I/O 引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最 少 60s,包括两个读周期至少 1s 的恢复时间。 源程序: 假设要读 1B 的数据, 且数据放在 A 中。 READDS1820:MOV R7, # 08H ; 1 个字节 8 位 22 SETB TEM PD IN NO P NO P READDS1820LOO P: CLR TEM PD IN NO P SETB TEM PD IN ; 释放总线 MOV R6, # 05H ; 延时 10 Ls DJN Z R6, MOV C, TEM PD N ; 采样总线数据 MOV R6, # 14H ; 延时 40 Ls DJN Z R6, RRC A ; 采样数据存入 A SETB TEM PD IN ; 释放总线 DJN Z R7, READDS1820LOO P ; 采样下一位 MOV R6, # 14H ; 延时 40 Ls DJN Z R6, RET 读/写时序如图 5.3 如下: 23 图 5.3 DS1820 的读写时序图 复位时序:复位要求主 CPU 将数据线下拉 500 微秒,然后释放,DS1820 收到信号后等 待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成 功。 源程序: 其中 TEM PD IN 定义为 DS1820 的数据管脚, 主机为 A T89C2051。 N ITDS1820: SETB TEM PD N NO P NO P CLR TEM PD N MOV R

温馨提示

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

评论

0/150

提交评论