毕业设计80南京信息工程大学基于单片机的数字温度计设计.doc

毕业设计80南京信息工程大学基于单片机的数字温度计设计

收藏

压缩包内文档预览:(预览前20页/共35页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:545490    类型:共享资源    大小:550.77KB    格式:ZIP    上传时间:2015-12-01 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
电气电子毕业设计论文
资源描述:
毕业设计80南京信息工程大学基于单片机的数字温度计设计,电气电子毕业设计论文
内容简介:
毕业 论文 题 目 基于单片机的 数字温度计设计 学生姓名 查雅丽 学 号 20043305022 院 系 职业技术学院 专 业 电子信息工程 指导教师 周欣 2008 年 5 月 日 nts目 录 一、引言 4 二、 设计内容及性能指标 5 三、 系统方案论证与比较 5 (一)、 方案一 . 5 (二)、 方案二 . 6 四、 系统器件选择 7 (一) 、 单片机的选择 . 7 1、 89S51 引脚功能介绍 . 8 (二)、 温度传感器的选择 . 10 1、 DS18B20 简单介绍 : . 10 2、 DS18B20 使用中的注意事项 . 12 3、 DS18B20 内部结构 . 13 4、 DS18B20 测温原理 . 16 5、提高 DS1820 测温精度的途径 . 17 (三)、显示及报警模块器件选择 . 19 五、 硬件设计电路 19 (一)、主控制器 . 20 (二)、显示电路 . 20 (三)、 温度检测电路 . 21 (四)、 温度报警电路 . 27 nts六、 软件设计 27 (一)、 概述 . 28 (二)、 主 程序模块 . 28 (三)、 各模块流程设计 . 29 1、 温度检测流程 . 29 2、 报警模块流程 . 30 3、 中断设定流程 . 31 七、总结和体会 33 八、 致谢 33 参考文献 32 nts基于单片机的 数字温度计设计 查雅丽 南京信息工程大学职业技术学院,南京 210044 摘要: 随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术 , 本文主要介绍了一个基于 89S51 单片机的测温系统,详细描述了利用数字温度传感器 DS18B20 开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系 统流程进行了详尽分析,对各部分的电路也一一进行了介绍 ,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。 DS18B20 与 AT89C51 结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词: 单片机;温度检测; AT89S51; DS18B20; 一、 引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集 (即传感器技术 )、信息传输 (通信技术 )和信息处理 (计算机技术 )中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传感器。 目前的智能温度传感器 (亦称数字温度传感器 )是在 20世纪 90年代中期问世的,它是微电子技术、计算机技术和自动测试技术 (ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器 (MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高 可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅nts速发展,本文将介绍智能集成温度传感器 DS18B20的结构特征及控制方法,并对以此传感器, 89S51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用 ATMEL公司的 AT89S51单片机,测温传感器使用DALLAS公司 DS18B20,用 液晶 来 实现温度显示。 二、 设计 内容及性能指标 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下: 利用温度传感器( DS18B20)测量某一点环境温度 测量范围为 -55 99,精度为 0.5 用液晶进行实际温度值显示 能够根据需要方便设定上下限报警温度 三、 系统方案论证与比较 该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。 (一) 、 方案一 采用热电偶温差电路测温, 温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成(热电偶的构成如图 3.1),热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有 A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到 A/D 转换电路,感温电路比较麻烦。 nts 图 3.1热电偶电路图 系统主要包括对 A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这几项功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。故现场输入硬件有手动复位键、 A/D 转换芯片,处理芯片为 51 芯片,执行机构有 4 位数码管、报警器等。系统框图如图 3.2所示: 图 3.2热电偶温差电路测温系统框图 (二) 、 方案二 采用数字温度芯片 DS18B20 测量温度,输出信号全数 字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在 0 100 摄氏度时,最大线形偏差小于 1 摄氏度。 DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计 DS18B20和微控制器 AT89S51构成的温度测量装置 ,它直接输出温度的数字信号 ,可直接与计算机连接。这样 ,测温系统的结构就比较简单 ,体积也不大。采用 51 单片机控制,软件编程nts的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多 DS18B20 控制工作,还可以与 PC 机通信上传数据,另外 AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 该系统利用 AT89S51芯片控制温度传感器 DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片 DS1302以获取时间数据,在数据处理同时显示时间,并可以利用 AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查 询,获得的数据可以通过 MAX232芯片与计算机的 RS232接口进行串口通信,方便的采集和整理时间温度数据。 系统框图如图 3.3所示 图 3.3 DS18B20温度测温系统框图 从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。 四、 系统器件选择 (一) 、 单片机的选择 对于单片机的选择,可以考虑使用 8031与 8051系列,由于 8031没有内部 RAM,系统又需要大量内存存储数 据,因而不适用。 AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含 4kbytes 的可编程的 Flash 只读程序存储器 ,兼容标准 8051 指令系统及引脚。它集 Flash 程nts序存储器既可在线编程( ISP),也可用传统方法进行编程,所以低价位 AT89S51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机 AT89S51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产 品的设计使用系统可用二节电池供电。主要特性如下 与 MCS-51 兼容 4K字节可编程闪烁存储器 寿命: 1000写 /擦循环 数据保留时间: 10年 全静态工作: 0Hz-24Hz 三级程序存储器锁定 128*8位内部 RAM 32可编程 I/O线 两个 16位定时器 /计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 4.1 AT89S51单片机引脚图 1、 89S51 引脚功能 介绍 AT89S51 单片机为 40 引脚双列直插式封装。 其引脚排列和逻辑符号如图 4.1 所示。 各引脚功能简单介绍如下: VCC:供电电压 GND:接地 nts 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口当用于外部程序存储器或 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。因此它可用作对外部输出的脉nts冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 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:反向振荡放大器的输入及内部时钟工作电路的输入 。 XTAL2:来自反向振荡器的输出。 ( 二 ) 、 温度传感器的选择 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用 DALLAS公司的数字温度传感器 DS18B20作为测温元件。 1、 DS18B20 简单介绍 : DALLAS 最新单线数字温度传感器 DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。 DALLAS 半导体公司的数字化温度传感器 DS18B20是世界上第一片支持“一线 总线”接口的温度传感器。温度测量范围为 -55 +125 摄氏度,可编程为 9位 12 位转换精度,测温分辨率可达 0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。被测温度用符号扩展的 16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个 DS18B20可以并联到 3 根或 2 根线上, CPU只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。 因此用它来组成一个测温系统,具有线路简单,在一根通信 线,可以挂很多这样的数字温度计,十分方便。 ntsDS18B20 的性能特点如下: 独特的单线接口方式, DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 DS18B20支持多点组网功能,多个 DS18B20可以并联在唯一的三线上,实现组网多点测温 DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 适应电压范围更宽,电压范围: 3.0 5.5V,在寄生电源方式下可由数据线供电 温范围 55 125 ,在 -10 +85 时精度为 0.5 零待机功耗 可编程的分辨率为 9 12位,对应的可分辨温度分别为 0.5 、 0.25 、 0.125 和 0.0625 ,可实现高精度测温 在 9位分辨率时最多在 93.75ms内把温度转换为数字, 12位分辨率时最多在 750ms内把温度值转换为数字,速度更快 用户可定义报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 测量结果直接输出数字温度信号,以 一线总线 串行传送给 CPU,同时可传送 CRC校验码,具有极强的抗干扰纠错能力 负电压特性,电源极性接反时,温度计 不会因发热而烧毁,但不能正常工作 以上特点使 DS18B20非常适用与多点、远距离温度检测系统。 DS18B20内部结构主要由四部分组成: 64位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH和 TL、配置寄存器。 DS18B20的管脚排列、各种封装形式如图 4.2 所示, DQ 为 数据输入 /输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源 ; GND为 地信号 ; VDD为 可选择的 VDD引脚。当工作于寄生电源时,此引脚必须接地。 其电路图 4.3所示 .。 nts 图 4.2 外部封装形式 图 4.3 传感器电路图 2、 DS18B20 使用中的注意事项 DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示 85。 在实际使用中发现,应使电源电压保持在 5V 左右,若电源电压过低,会使所测得的温度精度降低。 较小的硬件开销 需要相对复杂的软件进行补偿,由于 DS1820与微处理器间采用串行数据传送,因此,在对 DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用 PL/M、 C等高级语言进行系统程序设计时,对 DS1820操作部分最好采用汇编语言实现。 在 DS18B20的有关资料中均未提及单总线上所挂 DS18B20 数量问题,容易使人误认为可以挂任意多个 DS18B20,在实际应用中并非如此,当单总线上所挂 DS18B20 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注 意。 nts在 DS18B20测温程序设计中,向 DS18B20 发出温度转换命令后,程序总要等待 DS18B20的返回信号,一旦某个 DS18B20 接触不好或断线,当程序读该 DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行 DS18B20硬件连接和软件设计时也要给予一定的重视。 3、 DS18B20 内部结构 图为 DS1820 的内部框图,它主要包括 寄生电源 、 温度传感器 、 64 位激光 ROM 单线接口 、 存放中间数据的高速暂存器 (内含便笺式 RAM),用于存储用户设定的温度上下限值的 TH 和 TL 触发器存储与控制逻辑、 8 位循环冗余校验码( CRC)发生器等七部分。 DS18B20采用脚 PR 35 封装或脚 SOIC封装,其内部结构框图如图 4.4所示 图 4.4 DS18B20内部结构框图 64 b 闪速 ROM 的结构如下: nts开始位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位,最后位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。 主机操作 ROM的命令有 五种,如表所列 DS18B20 温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存 RAM 的结构为字节的存储器,结构如图 4.5所示。 图 4.5 高速暂存 RAM结构图 前个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS18B20 工作时寄存器中的分辨率转换为 相应精度的温度数值。 温度低位 温度高位 TH TL 配置 保留 保留 保留 8 位 CRC LSB MSB 指 令 说 明 读 ROM( 33H) 读 DS1820的序列号 匹配 ROM( 55H) 继读完 64位序列号的一个命令 ,用于多个 DS1820时定位 跳过 ROM( CCH) 此命令执行后的存储器操作将针对在线的所有 DS1820 搜 ROM( F0H) 识别总线上各器件的编码,为操作各器件作好准备 报警搜索( ECH) 仅温度越限的器件对此命令作出响应 nts当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1, 2 字节。单片 机 可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以 0.062 5 /LSB 形式表示。温度值格式如下: 这是 12位转化后得到的 12位数据,存储在 18B20的两个 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。 DS18B20 温度传感器主要用于对温度进行测量,数据可用 16 位符号扩展的二进制补码读数形式提供,并以 0.0625 LSB 形式表示 。 表 2 是 部分温度值对应的二进制温度表示数据。 表 2 部分温度值 DS18B20 完成温度转换后,就把测 得的温度值与 RAM 中的 TH、 TL 字节内容 作比较,若 TTH或 TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS18B20 同时测量温度并进行告警搜索。 nts在 64 位 ROM 的最高有效字节中存储有循环冗余校验码( CRC)。主机根据 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM 数 据是否正确。 4、 DS18B20 测温原理 DS18B20 的测温原理如图 2 所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉 冲信号送给减法计数器 1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数门,当计数门打开时, DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量 .计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将 -55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1和温度寄存器被预置在 -55 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0时温度寄存器的值将加 1, 减法计数器 1 的预置将重新被装入 ,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数 ,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图 2 中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就 是 DS18B20 的测温原理。 另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,因此读写时 序很重要。系统对 DS18B20 的各种操作必须按协议进 行。操作协议为:初始化 DS18B20 (发复位脉冲) 发 ROM 功能命令 发存储器操作命令 处理数据。 图( 2) DS18B20 测温原理图 nts在正常测温情况下, DS1820 的测温分辨力为 0.5,可采用下述方法获得高分辨率的温度测量结果:首先用 DS1820 提供的读暂存器指令( BEH)读出以 0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位( LSB),得到所测实际温度的整数部分 Tz,然后再用 BEH 指令取计数器 1 的计数剩余值 Cs 和每度计数值 CD。考虑到 DS1820 测量温度的整数部分以 0.25、 0.75为进位界限的关系,实际温度 Ts 可用下式计算: Ts=( Tz-0.25) +(CD-Cs)/CD 5、 提高 DS1820 测温精度的途径 ( 1) 、 DS1820 高精度测温的理论依据 DS1820 正常使用时的测温分辨率为 0.5 ,这对于水轮发电机组轴瓦温度监测来讲略显不足,在对 DS1820 测温原理详细分析的基础上,我们采取直接读取 DS1820 内部暂存寄存器的方法,将DS1820 的测温分辨率提高到 0.1 0.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 每度 。 表 1 DS18B20 暂存寄存器分布 该字节各位的定义如下: nts 低 5位一直都是 1, TM是测试模式位,用于设置 DS18B20在工作模式还是在测试模式。在 DS18B20出厂时该位被设置为 0,用户不要去改动, R1 和 R0 决定温度转换的精度位数 , 即是来设置分辨率,如表 1 所示( DS18B20 出厂时被设置为 12 位)。 R1 R0 分辨率 温度最大转换时 /mm 0 0 9 位 93.75 0 1 10 位 187.75 1 0 11 位 275.00 1 1 12 位 750.00 表 1 R1 和 R2 模式表 由表 1 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除了配置寄存器外,还有其他 8 个字节组成,其分配如下所示。其中温度信息(第 1, 2 字节)、 TH 和 TL 值第 3, 4 字节、第 6 8 字节未用,表现为全逻辑1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信正确。 根据 DS18B20 的通讯协议,主机控制 DS18B20 完成温度转换必须经过三个步骤:每 一次读写之前 都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20进行预定的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后释放, DS18B20 收到信号后等待 1660 微秒左右,后发出 60 240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 ( 2) 、 测量数据比较 表 2 为采用直接读取测温结果方法和采用计算方法得到的测温数据比较,通过比较可以看出,计算方法在 DS1820 测温中不仅是可行的,也可以大大的提高 DS1820 的测温分辨率。 表 2 DS18B20 直度测温结果与计算测温结果数据比较 TM R1 R0 1 1 1 1 1 nts (三)、显示及报警模块器件选择 在本设计中温度测量范围为 0 125,精度为 0.5,因此只需要液晶就可以完成相关的显示功能,报警器可以用有源蜂鸣器配合三极管来代替。 五、 硬件设计电路 温度计电路设计原理图如图 5.1所示 ,控制器使用单片机 AT89C2051,温度计传感器使用 DS18B20,用液晶实现温度显示。 本温度计大体分三个工作过程。首先,由 DS18820温度传感器芯片测量当前的温度,并将结果送入单片机。然后,通过 89C205I单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。最后, SMC1602A芯片将送来的值显示于显示屏上 。 由图 1可看到,本电路主要由DSl8820温度传感器芯片、 SMCl602A液晶显示模块芯片和 89C2051单片机芯片组成。其中, DSI8B20温度传感器芯片采用 “一线制 ”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。 nts 图 5.1 温度计电路设计原理图 (一)、 主控制器 单片机 AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很合适携手特式产品的使用。 主机控制 DS18B20完成温度转换必须经过三个步骤:初始化、 ROM操作指令、存储器操作指令。必须先启动 DS18B20开始转换,再读出温度转换值 。 (二)、显示电路 显示电路采用 SMCI602A液晶显示模块芯片该芯片可显示 162个字符,比以前的七段数码管LED显示器在显示字符的数量上要多得多。另外,由于 SMCl602芯片编程比较简单,界面直观,因此nts更加易于使用者操作和观测。 SMCl602A芯片的接口信号说明如表 1所列。 表 1 SMCl602A芯片的接口信号说明 ( 三 )、 温度检测电路 DS18B20 最大的特点是单总线数据传输方式, DS18B20 的数据 I/O 均由同一条线来完成。DS18B20 的电源供电方式有 2 种 : 外部供电 方式和寄生电源方式。工作于寄生电源方式时 , VDD 和GND 均接地 , 他在需要远程温度探测和空间受限的场合特别有用 , 原理是当 1 W ire 总线的信号线DQ 为高电平时 , 窃取信号能量给 DS18B20 供电 , 同时一部分能量给内部电容充电 , 当 DQ为低电平时释放能量为 DS18B20 供电。但寄生电源方式需要强上拉电路 , 软件控制变得复杂 (特别是在完成温度转换和拷贝数据到 E2PROM 时 ) , 同时芯片的性能也有所降低。因此 , 在条件允许的场合 , 尽量采用外供电方式。 无论是内部寄生电源还是外部供电, I/O口线要接 5K左右的上拉电。在这里采用前者方式供电。 DS18B20与芯片连接电路如图 5.2所示: nts 图 5.2 DS18B20与单片机的连接 外部电源供电方式是 DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根 VCC引线。在外接电源方式下,可以充分发挥 DS18B20宽电源电压范围的优点,即使电源电压 VCC 降到 3V 时,依然能够保证温度量精度 。 由于 DS18B20 只 有一根数据线,因此它和主机(单片机)通信是需要串行通信,而 AT89S51 有两个串行端口,所以可以不用软件来模拟实现。经过单线接口访问 DC18B20 必须遵循如下协议:初始化、 ROM 操作命令、存储器操作命令和控制操作。要使传感器工作,一切处理均严格按照时序。 主机发送( Tx) -复位脉冲(最短为 480 s 的低电平信号)。接着主机便释放此线并进入接收方式( Rx)。总线经过 4.7K的上拉电阻被拉至高电平状态。在检测到 I/O 引脚上的上升沿之后, DS18B20 等待 15 60 s,并且接着发送脉冲( 60 240 s 的低电平信号)。然后以存在复位脉冲表示 DS18B20 已经准备好发送或接收,然后给出正确的 ROM 命令和存储操作命令的数据。 DS18B20 通过使用时间片来读出和写入数据,时间片用于处理数据位和进行何种指定操作的命令。它有写时间片和读时间片两种: 写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生写时间片。有两种类型的写时间片:写 1 时间片和写 0 时间片。所有时间片必须有 60 微秒的持续期,在各写周期之间必须有最短为 1微秒的恢复时间 . 读时间片:从 DS18B20 读数据时,使用读时间片。当主 机把数据线从逻辑高电平拉至逻辑nts低电平时产生读时间片。数据线在逻辑低电平必须保持至少 1 微秒;来自 DS18B20 的输出数据在时间下降沿之后的 15 微秒内有效。为了读出从读时间片开始算起 15微秒的状态,主机必须停止把引脚驱动拉至低电平。在时间片结束时, I/O 引脚经过外部的上 _鱯 _9L_ %拉电阻拉回高电平,所有读时间片的最短持续期为 60 微秒,包括两个读周期间至少 1 s 的恢复时间。 一旦主机检测到 DS18B20 的存在,它便可以发送一个器件 ROM 操作命令。所有 ROM 操作命令均为 8位长。 所有的串行通 讯,读写每一个 bit 位数据都必须严格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的 DS18B20 芯片来说,访问每个器件都要遵守下列命令序列:首先是初始化;其次执行 ROM 命令;最后就是执行功能命令 (ROM 命令和功能命令后面以表格形式给出 )。如果出现序列混乱,则单总线器件不会响应主机。当然,搜索 ROM命令和报警搜索命令,在执行两者中任何一条命令之后,要返回初始化。 基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道, 总线上有从机,且准备就绪。 在主机检测到应答脉冲后,就可以发出 ROM 命令。这些命令与各个从机设备的唯一 64 位 ROM 代码相关。在主机发出 ROM命令,以访问某个指定的 DS18B20,接着就可以发出 DS18B20支持的某个功能命令。这些命令允许主机写入或读出 DS18B20便笺式 RAM、启动温度转换。软件实现 DS18B20的工作严格遵守单总线协议: (1)主机首先发出一个复位脉冲,信号线上的 DS18B20 器件被复位。 (2)接着主机发送 ROM命令,程序开始读取单个在线的芯片 ROM编码并保存在单片机数据存储器中,把用到的 DS18B20 的 ROM 编码离线读出,最后用一个二维数组保存 ROM 编码,数据保存在 X25043中。 (3)系统工作时,把读取了编码的 DS18B20 挂在总线上。发温度转换命令,再总线复位。 (4)然后就可以从刚才的二维数组匹配在线的温度传感器,随后发温度读取命令就可以获得对应的度值了。 在主机初始化过程,主机通过拉低单总线至少 480us,来产生复位脉冲。接着,主机释放总线,并进入接收模式。当总线被释放后,上拉电阻将单总线拉高。在单总线器件检测到上升沿后,延时 1560us,接着通过拉低总线 60 240us,以产生应答脉冲。 写时序均起始于主机拉低总线,产生写 1 时序的方式:主机在拉低总线后,接着必须在 15us之内释放总线。产生写 0 时序的方式:在主机拉低总线后,只需在整个时序期间保持低电平即可 (至少 60us)。在写字节程序中的写一个 bit 位的时候,没有按照通常的分别写 0时序和写 1 时序,而是把两者结合起来,当主机拉低总线后在 15us 之内将要写的位 c 给 DO:如果 c 是高电平满足 15us 内释放总线的要求,nts如果 c是低电平,则 DO c这条语句仍然是把总线拉在低电平,最后都通过延时 58us 完成 一个写时序(写时序 0或写时序 1)过程。 写时间时序:当主机把数据从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两种写时间隙,写 1 时间隙和写 0 时间隙。所有写时间隙必须最少持续 60 s,包括两个写周期至少 1 s 的恢复时间。 I/O线电平变低后, DS18B20 在一个 15 s 到 60 s 的窗口内对 I/O 线采样。如果线上事高电平,就是写 1,如果是低电平,就是写 0。主机要生成一个写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开始后的 15 s 内允许数据线拉到高电平。主机要生成一个写 0 时间隙,必须 把数据线拉到低电平并保存 60 s。 每个读时隙都由主机发起,至少拉低总线 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 读时间时序:当从 DS18B20 读数据时,主机生成读时间隙。当主机把数据从高电平拉到低电平时,写时间隙开始,数据线必须保持至少 1 s;从 DS18B20输出的数据在 读时间隙的下降沿出现后 15 s 内有效。 因此,主机在读时间隙开始后必须把 I/O 脚驱动拉为的电平保持 15 s,以读取 I/O 脚状态。在读时间隙的结尾, I/O 引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少 60 s,包括两个读周期至少 1 s的恢复时间。 源程序 : 假设要读 1B 的数据 , 且数据放在 A 中。 READDS1820:MOV R7, # 08H ; 1 个字节 8 位 SETB TEM PD IN NO P ntsNO 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如下: nts 图 5.3 DS18B20的读写时序图 复位时序:复位要求主 CPU将数据线下拉 500微秒,然后释放, DS18B20收到信号后等待 16 60 微秒左右,后发出 60 240 微秒的存在低脉冲,主 CPU 收到此信号表 示复位成功。 源程序 : 其中 TEM PD IN 定义为 DS18B20 的数据管脚 , 主机为 A T89C2051。 N ITDS1820: SETB TEM PD N NO P NO P CLR TEM PD N MOV R6, # 0A 0H ; 延时 640
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:毕业设计80南京信息工程大学基于单片机的数字温度计设计
链接地址:https://www.renrendoc.com/p-545490.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!