




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 百色百色职业职业学院学院 毕业设计 题目:数字温度计数字温度计 学生姓名: 专业:应用电子 指导教师 1: 班级:08 级 指导教师 2: 答辩通过时间 论文提交日期: 2 目目 录录 一、一、引言引言4 4 二、设计内容及性能指标二、设计内容及性能指标5 5 三、系统方案论证三、系统方案论证5 5 (一)、方案.5 四、系统器件选择四、系统器件选择66 (一)、 单片机的选择7 1、89s51 引脚功能介绍7 (二)、温度传感器的选择.9 1、ds18b20 简单介绍: .9 2、ds18b20 使用中的注意事项11 3、ds18b20 内部结构.12 4、ds18b20 测温原理.15 5、提高 ds1820 测温精度的途径.16 (三)、显示及报警模块器件选择.18 五、硬件设计电路五、硬件设计电路1818 (一)、主控制器.19 (二)、显示电路.20 (三)、 温度检测电路.20 (四)、温度报警电路26 3 六、六、 软件设计软件设计 (一)、 概述27 (二)、主程序模块.27 (三)、各模块流程设计28 1、 温度检测流程28 2、报警模块流程 .29 3、 中断设定流程30 七、七、自我评价自我评价3232 八、致谢八、致谢 3232 参考文献参考文献3333 4 摘要:摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个 领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于 89s51 单片机的测温系 统,详细描述了利用数字温度传感器 ds18b20 开发测温系统的过程,重点对传感器在单 片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也 一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上 下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗 低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模 块嵌入其它系统中,作为其他主系统的辅助扩展。ds18b20 与 at89c51 结合实现最简温度 检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有 广泛的应用前景。 一、引言一、引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有 了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的 发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计 算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我 国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环 境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温 度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传感器。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它 是微电子技术、计算机技术和自动测试技术(ate)的结晶,特点是能输出温度数据及 相关的温度控制量,适配各种微控制器(mcu)。社会的发展使人们对传感器的要求也 越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化 向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性 5 及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发 展,本文将介绍智能集成温度传感器ds18b20的结构特征及控制方法,并对以此传感 器,89s51单片机为控制器构成的数字温度测量装置的工作原理及程序设计作了详细 的介绍。与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度 采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控 制器使用atmel公司的at89s51单片机,测温传感器使用dallas公司ds18b20,用 液晶来实现温度显示。 二、设计内容及性能指标二、设计内容及性能指标 本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设 计,并对其各功能模块做了详细介绍,其主要功能和指标如下: 利用温度传感器(ds18b20)测量某一点环境温度 测量范围为-5599,精度为0.5 用液晶进行实际温度值显示 能够根据需要方便设定上下限报警温度 三、系统方案论证三、系统方案论证 该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面 将列出一种在日常生活中和工农业生产中经常用到的实现方案。 (一)、方案(一)、方案 采用数字温度芯片ds18b20 测量温度,输出信号全数字化。便于单片机处理及 控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用 做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏 度。ds18b20 的最大特点之一采用了单总线的数据传输,由数字温度计ds18b20和 微控制器at89s51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机 6 连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程 的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实 现简单,安装方便。既可以单独对多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 程序存储器既可在线编程(isp), 7 也可用传统方法进行编程,所以低价位 at89s51单片机可为提供许多高性价比的应 用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机 at89s51 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系 统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。主要特性 如下 与mcs-51 兼容 4k字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0hz-24hz 三级程序存储器锁定 128*8位内部ram 32可编程i/o线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 4.1 at89s51单片机引脚图 1 1、89s5189s51 引脚功能介绍引脚功能介绍 at89s51 单片机为40 引脚双列直插式封装。 其引脚排列和逻辑符号如图4.1 所示。 各引脚功能简单介绍如下: 8 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口当用于外部程序存储器或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外部输入) 9 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:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 (二)、(二)、温度传感器的选择温度传感器的选择 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需 要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用dallas 10 公司的数字温度传感器ds18b20作为测温元件。 1 1、ds18b20ds18b20 简单介绍简单介绍: : dallas 最新单线数字温度传感器ds18b20是一种新型的“一线器件”,其体 积更小、更适用于多种场合、且适用电压更宽、更经济。dallas 半导体公司的数 字化温度传感器ds18b20是世界上第一片支持“一线总线”接口的温度传感器。温度 测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达 0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在eeprom 中,掉电 后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在 远端引入,也可以采用寄生电源方式产生;多个ds18b20可以并联到3 根或2 根线上, cpu只需一根端口线就能与诸多ds18b20 通信,占用微处理器的端口较少,可节省 大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信 线,可以挂很多这样的数字温度计,十分方便。 ds18b20 的性能特点如下: 独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现 微处理器与ds18b20的双向通讯 ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组 网多点测温 ds18b20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如 一只三极管的集成电路内 适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电 温范围55125,在-10+85时精度为0.5 零待机功耗 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125 和0.0625,可实现高精度测温 在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在 11 750ms内把温度值转换为数字,速度更快 用户可定义报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 测量结果直接输出数字温度信号,以“一线总线“串行传送给cpu,同时可传送 crc校验码,具有极强的抗干扰纠错能力 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 以上特点使ds18b20非常适用与多点、远距离温度检测系统。 ds18b20内部结构主要由四部分组成:64位光刻rom、温度传感器、非挥发的温 度报警触发器th和tl、配置寄存器。ds18b20的管脚排列、各种封装形式如图 4.2 所示,dq 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也 可以向器件提供电源;gnd为地信号;vdd为可选择的vdd引脚。当工作于寄生电 源时,此引脚必须接地。其电路图 4.3所示.。 图 4.2 外部封装形式 图4.3 传感器电路图 2 2、ds18b20ds18b20 使用中的注意事项使用中的注意事项 12 ds18b20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点, 但在实际应用中也应注意以下几方面的问题: ds18b20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须 保证的,不然会出现转换错误的现象,使温度输出总是显示85。 在实际使用中发现,应使电源电压保持在5v 左右,若电源电压过低,会使所 测得的温度精度降低。 较小的硬件开销需要相对复杂的软件进行补偿,由于ds1820与微处理器间采用 串行数据传送,因此,在对ds1820进行读写编程时,必须严格的保证读写时序, 否则将无法读取测温结果。在使用pl/m、c等高级语言进行系统程序设计时, 对ds1820操作部分最好采用汇编语言实现。 在ds18b20的有关资料中均未提及单总线上所挂ds18b20 数量问题,容易使人 误认为可以挂任意多个ds18b20,在实际应用中并非如此,当单总线上所挂 ds18b20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多 点测温系统设计时要加以注意。 在ds18b20测温程序设计中,向ds18b20 发出温度转换命令后,程序总要等待 ds18b20的返回信号,一旦某个ds18b20 接触不好或断线,当程序读该 ds18b20 时,将没有返回信号,程序进入死循环,这一点在进行ds18b20硬件 连接和软件设计时也要给予一定的重视。 3 3、ds18b20ds18b20 内部结构内部结构 图为 ds1820 的内部框图,它主要包括寄生电源、温度传感器、64 位激光 rom 单 线接口、存放中间数据的高速暂存器(内含便笺式 ram) ,用于存储用户设定的温度 上下限值的 th 和 tl 触发器存储与控制逻辑、8 位循环冗余校验码(crc)发生器等 七部分。 ds18b20采用脚pr35 封装或脚soic封装,其内部结构框图如图 4.4所示 13 图 4.4 ds18b20内部结构框图 64 b 闪速 rom 的结构如下: 开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后 位是前面56 位的crc 检验码,这也是多个ds18b20 可以采用一线进行通信的原 因。温度报警触发器和,可通过软件写入户报警上下限。主机操作rom的 命令有五种,如表所列 指 令说 明 读rom(33h) 读ds1820的序列号 匹配rom(55h) 继读完64位序列号的一个命令,用 于多个ds1820时定位 跳过rom(cch) 此命令执行后的存储器操作将针对 在线的所有ds1820 搜rom(f0h) 识别总线上各器件的编码,为操作 各器件作好准备 报警搜索(ech) 仅温度越限的器件对此命令作出响 应 14 ds18b20 温度传感器的内部存储器还包括一个高速暂存和一个非易失性 的可电擦除的eeram。高速暂存ram 的结构为字节的存储器,结构如图 4.5所示。 图 4.5 高速暂存ram结构图 前个字节包含测得的温度信息,第和第字节和的拷贝,是易失的, 每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数 字转换分辨率。ds18b20 工作时寄存器中的分辨率转换为相应精度的温度数值。 温度低位温度高位thtl配置保留保留保留8 位 crc lsb msb 当 ds18b20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1,2 字节。单片机可 通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以 0.062 5 /lsb 形式表示。温度值格式如下: 这是 12 位转化后得到的 12 位数据,存储在 18b20 的两个 8 比特的 ram 中, 二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的 15 数值乘于 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.0625lsb 形式表示。表 2 是部分温度值对应的二进 制温度表示数据。 表 2 部分温度值 ds18b20 完成温度转换后,就把测得的温度值与 ram 中的 th、tl 字节内容作 比较,若 tth 或 ttl,则将该器件内的告警标志置位,并对主机发出的告警搜索命 令作出响应。因此,可用多只 ds18b20 同时测量温度并进行告警搜索。 在 64 位 rom 的最高有效字节中存储有循环冗余校验码(crc)。主机根据 rom 的前 56 位来计算 crc 值,并和存入 ds18b20 中的 crc 值做比较,以判断主 机收到的 rom 数 据是否正确。 4 4、ds18b20ds18b20 测温原理测温原理 ds18b20 的测温原理如图 2 所示,图中低温度系数晶振的振荡频率受温度的影响 很小用于产生固定频率的脉冲信号送给减法计数器 1,高温度系数晶振随温度变化其 震荡频率明显改变,所产生的信号作为减法计数器 2 的脉冲输入,图中还隐含着计数 16 门,当计数门打开时,ds18b20 就对低温度系数振荡器产生的时钟脉冲后进行计数, 进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首 先将-55 所对应的基数分别置入减法计数器 1 和温度寄存器中,减法计数器 1 和温 度寄存器被预置在-55 所对应的一个基数值。 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1,减法计数器 1 的预置将重新被装入,减法 计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计 数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温 图 2 中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数 器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度 值,这就是 ds18b20 的测温原理。 另外,由于 ds18b20 单线通信功能是分时完成的,他有严格的时隙概念,因此 读写时 序很重要。系统对 ds18b20 的各种操作必须按协议进行。操作协议为: 初始化 ds18b20 (发复位脉冲)发 rom 功能命令发存储器操作命令处理 数据。 图(2) ds18b20 测温原理图 在正常测温情况下,ds1820 的测温分辨力为 0.5,可采用下述方法获得高分辨 率的温度测量结果:首先用 ds1820 提供的读暂存器指令(beh)读出以 0.5为分辨 率的温度测量结果,然后切去测量结果中的最低有效位(lsb) ,得到所测实际温度的 整数部分 tz,然后再用 beh 指令取计数器 1 的计数剩余值 cs 和每度计数值 cd。考 虑到 ds1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 ts 17 可用下式计算: ts=(tz-0.25)+(cd-cs)/cd 5 5、提高、提高 ds1820ds1820 测温精度的途径测温精度的途径 (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 每度。 表 1 ds18b20 暂存寄存器分布 该字节各位的定义如下: tm r1 r0 1 1 1 1 1 18 低 5 位一直都是 1,tm 是测试模式位,用于设置 ds18b20 在工作模式还是在测试模式。在 ds18b20 出厂时该位被设置为 0,用户不要去改动,r1 和 r0 决定温度转换的精度位数,即是来 设置分辨率,如表 1 所示(ds18b20 出厂时被设置为 12 位)。 r1r0 分辨率温度最大转换时/mm 00 9 位 93.75 01 10 位 187.75 10 11 位 275.00 11 12 位 750.00 表 1 r1 和 r2 模式表 由表 1 可见,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在 实际应用中要在分辨率和转换时间权衡考虑。高速暂存存储器除了配置寄存器外,还 有其他 8 个字节组成,其分配如下所示。其中温度信息(第 1,2 字节) 、th和 tl值 第 3,4 字节、第 68 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个 字节的 crc 码,可用来保证通信正确。 根据 ds18b20 的通讯协议,主机控制 ds18b20 完成温度转换必须经过三个步骤: 每一次读写之前 都要对 ds18b20 进行复位,复位成功后发送一条 rom 指令, 最后发送 ram 指令,这样才能对 ds18b20 进行预定的操作。复位要求主 cpu 将数据 线下拉 500 微秒,然后释放,ds18b20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 cpu 收到此信号表示复位成功。 (2)、 测量数据比较 表 2 为采用直接读取测温结果方法和采用计算方法得到的测温数据比较,通过比 较可以看出,计算方法在 ds1820 测温中不仅是可行的,也可以大大的提高 ds1820 的测温分辨率。 表 2 ds18b20 直度测温结果与计算测温结果数据比较 19 (三)、(三)、显示及报警模块器件选择显示及报警模块器件选择 在本设计中温度测量范围为0125,精度为0.5,因此只需要液晶就 可以完成相关的显示功能,报警器可以用有源蜂鸣器配合三极管来代替。 五、硬件设计电路五、硬件设计电路 温度计电路设计原理图如图5.1所示,控制器使用单片机at89c2051,温度计传感器 使用ds18b20,用液晶实现温度显示。 本温度计大体分三个工作过程。首先,由ds18820温度传感器芯片测量当前的温 度,并将结果送入单片机。然后,通过89c205i单片机芯片对送来的测量温度读数进 行计算和转换,井将此结果送入液晶显示模块。最后,smc1602a芯片将送来的值显 示于显示屏上。 由图1可看到,本电路主要由dsl8820温度传感器芯片、smcl602a液 晶显示模块芯片和89c2051单片机芯片组成。其中,dsi8b20温度传感器芯片采用“一 线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。 20 图5.1 温度计电路设计原理图 (一)(一)、主控制器、主控制器 单片机at89c2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统 的设计需要,很合适携手特式产品的使用。主机控制ds18b20完成温度转换必须经过 三个步骤:初始化、rom操作指令、存储器操作指令。必须先启动ds18b20开始转换, 再读出温度转换值。 (二)、(二)、显示电路显示电路 显示电路采用smci602a液晶显示模块芯片该芯片可显示162个字符,比以前 的七段数码管led显示器在显示字符的数量上要多得多。另外,由于smcl602芯片编 21 程比较简单,界面直观,因此更加易于使用者操作和观测。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所示: 22 图 5.2 ds18b20与单片机的连接 外部电源供电方式是ds18b20最佳的工作方式,工作稳定可靠,抗干扰能力强, 而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开 发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根vcc引线。在外接电源 方式下,可以充分发挥ds18b20宽电源电压范围的优点,即使电源电压vcc 降到3v 时,依然能够保证温度量精度。 由于ds18b20 只有一根数据线,因此它和主机(单片机)通信是需要串行通信, 而at89s51 有两个串行端口,所以可以不用软件来模拟实现。经过单线接口访问 dc18b20 必须遵循如下协议:初始化、rom 操作命令、存储器操作命令和控制操 作。要使传感器工作,一切处理均严格按照时序。 主机发送(tx)-复位脉冲(最短为480s 的低电平信号)。接着主机便释放此 线并进入接收方式(rx)。总线经过4.7k的上拉电阻被拉至高电平状态。在检测到 i/o 引脚上的上升沿之后,ds18b20 等待1560s,并且接着发送脉冲(60240s 的低电平信号)。然后以存在复位脉冲表示ds18b20 已经准备好发送或接收,然后 给出正确的rom 命令和存储操作命令的数据。ds18b20 通过使用时间片来读出和写 入数据,时间片用于处理数据位和进行何种指定操作的命令。它有写时间片和读时间 片两种: 写时间片:当主机把数据线从逻辑高电平拉至逻辑低电平时,产生写时间片。 有两种类型的写时间片:写1 时间片和写0 时间片。所有时间片必须有60 微 秒的持续期,在各写周期之间必须有最短为1微秒的恢复时间. 23 读时间片:从ds18b20 读数据时,使用读时间片。当主机把数据线从逻辑高 电平拉至逻辑低电平时产生读时间片。数据线在逻辑低电平必须保持至少1 微秒;来自ds18b20 的输出数据在时间下降沿之后的15 微秒内有效。为了 读出从读时间片开始算起15微秒的状态,主机必须停止把引脚驱动拉至低电 平。在时间片结束时,i/o 引脚经过外部的上_鱯_9l_%拉电阻拉回高电 平,所有读时间片的最短持续期为60 微秒,包括两个读周期间至少1s 的 恢复时间。 一旦主机检测到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,接着通过拉低总线60240us,以产生应答 24 脉冲。 写时序均起始于主机拉低总线,产生写1 时序的方式:主机在拉低总线后,接着 必须在15us之内释放总线。产生写0 时序的方式:在主机拉低总线后,只需在整个时 序期间保持低电平即可(至少60us)。在写字节程序中的写一个bit 位的时候,没有按照 通常的分别写0时序和写1 时序,而是把两者结合起来,当主机拉低总线后在15us 之 内将要写的位c 给do:如果c 是高电平满足15us 内释放总线的要求,如果c是低电平, 则doc这条语句仍然是把总线拉在低电平,最后都通过延时58us 完成一个写时序 (写时序0或写时序1)过程。 写时间时序:当主机把数据从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。 有两种写时间隙,写1 时间隙和写0 时间隙。所有写时间隙必须最少持续60s,包 括两个写周期至少1s 的恢复时间。i/o线电平变低后,ds18b20 在一个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 读时间时序:当从ds18b20 读数据时,主机生成读时间隙。当主机把数据从高 电平拉到低电平时,写时间隙开始,数据线必须保持至少1s;从ds18b20输出的数 据在读时间隙的下降沿出现后15s 内有效。 因此,主机在读时间隙开始后必须把i/o 脚驱动拉为的电平保持15s,以读取 25 i/o 脚状态。在读时间隙的结尾,i/o 引脚将被外部上拉电阻拉到高电平。所有读时 间隙必须最少60s,包括两个读周期至少1s的恢复时间。 源程序: 假设要读1b 的数据, 且数据放在a 中。 readds1820:mov r7, # 08h ; 1 个字节8 位 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如下: 26 图 5.3 ds18b20的读写时序图 复位时序:复位要求主cpu将数据线下拉500微秒,然后释放,ds18b20收到信 号后等待1660 微秒左右,后发出60240 微秒的存在低脉冲,主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 ls djn z r6, mov r6, # 0a 0h djn z r6, setb tem pd n ; 释放总线 mov r6, # 32h ; 延时100 ls, 等待回应 djn z r6, mov r6, # 3ch loo p1820: mov c, tem pd n ; 采样总线信号 jc n itds1820ou t djn z r6,loo p1820 mov r6, # 064h djn z r6, sjm p n itds1820 ret in itds1820ou t: setb tem pd n ret 27 复位时序如图 5.3所示: (四)、(四)、温度报警电路温度报警电路 本设计采软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电。当所测温度 超过获低于所预设的温度时,数据口相应拉高电平,报警输出。(也可采用发光二级 管报警电路,如过需要报警,则只需将相应位置1,当参数判断完毕后,再看报警模 型单元alarm 的内容是否与预设一样,如不一样,则发光报警)报警电路硬件连接见 图 5.10。 图 5.10蜂鸣器电路连接图 28 六、六、 软件设计软件设计 (一)、(一)、 概述概述 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功 能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序), 它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件 (子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个 执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执 行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首 先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求, 合理地安排监控软件和各执行模块之间地调度关系。 (二)、(二)、主程序模块主程序模块 主程序需要调用4 个子程序,分别为数码管显示程序,温度测试及处理子程序, 报警子程序,中断设定子程序。各模块程序功能如下: 数码管显示程序:向数码的显示送数,控制系统的显示部分。 温度测试及处理程序:对温度芯片送过来的数据进行处理,进行判断和显示。 报警子程序:进行温度上下限判断及报警输出。 中断设定程序:实现设定上下限报警功能。 主程序流程见图6.1: 29 图 6.1 ds18b20初始化流程图 图 6.2主程序流程图 (三)、(三)、各模块流程设计各模块流程设计 下面对主要子程序的流程图做介绍 1 1、 温度检测流程温度检测流程 ds18b20在单片机控制下分三个阶段: 18b20 初始化:初始化流程图见 读18b20时序:读ds18b20流程见图 6.3: 30 写18b20时序:写18b20 流程见图6.4 图 6.3读ds18b20流程图 图 6.4写ds18b20流程图 2 2、报警模块流程、报警模块流程 流程见图6.5 31 图 6.5 报警模块子程序流程图 3 3、 中断设定流程中断设定流程 中断模块采用了外中断和内中断套用方法。当设计需要实现上下限报警时,利用 int0口进行中断,set 键进行上下限报警温度设定,进入温度设定状态后(按一下温 度设定键),首先会提示显示“up”字母,表示要用户设定高温报警温度,按s3 键 32 ,表示本位数字+1,按s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年调整型内衣行业研究报告及未来行业发展趋势预测
- 面向2025年电池储能系统热管理技术创新案例分析报告
- 2025年新能源光伏电站品牌忠诚度提升策略及案例分析报告
- 车辆抵押贷款合同法律范本
- 基于教育大数据的2025年教育行业市场趋势研究报告
- 2025年新能源汽车换电行业标准与国际接轨策略研究报告
- 新能源行业安全生产标准化建设与智能技术融合2025年应用报告
- 新能源行业上市公司2025年研发投入策略:技术创新与转化效率报告
- 2025年固态电池商业化量产技术进展与市场潜力报告
- 专业保安服务合同协议条款
- 综合测试01 识记默写(高考背诵课内分篇训练)高考语文一轮复习考点帮(北京专用)
- 《大学语文》普通高等院校语文课程完整全套教学课件
- 学校护学岗制度
- 燕子矶水厂改建工程(净水厂工程)环评报告表
- 北京导游资格考试外语口试题四
- 仁爱版英语九年级上下册单词(含音标)
- 高中数学必修一第一、二章综合测试卷(含解析)
- 1.3集合的基本运算(第1课时)课件高一上学期数学人教A版
- 《学前儿童卫生与保健》高职全套教学课件
- 植物生理学实验指导
- 第4课 中国历代变法和改革 学案
评论
0/150
提交评论