




免费预览已结束,剩余38页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 DS18B20 的数字温度计设计 摘 要 随着现代信息技术的飞速发展和传统工业改造的逐步实现 能够独立工作的温 度检测与显示系统应用于诸多领域 传统的温度检测以热敏电阻为温度敏感元件 热敏电阻的成本低 需要外加信号处理电路 而且可靠性相对较差 测温准确度低 检测系统也有一定的误差 与传统的温度计相比 这次设计的是基于 DS18B20 的数 字温度计 它具有读数方便 测温范围广 测温精确 数字显示 适用范围宽等特 点 在本设计中选用 AT89C51 型单片机作为主控制器件 采用 DS18B20 数字温度 传感器作为测温元件 通过 4 位共阳极 LED 数码显示管并行传送数据 实现温度显 示 本设计的内容主要分为两部分 一是对系统硬件部分的设计 包括温度采集电 路和显示电路 二是对系统软件部分的设计 应用 C 语言实现温度的采集与显示 通过 DS18B20 直接读取被测温度值 送入单片机进行数据处理 之后进行输出显示 最终完成了数字温度计的总体设计 其系统构成简单 信号采集效果好 数据处理 速度快 便于实际检测使用 关键词 单片机 AT89C51 温度传感器 DS18B20 LED 数码管 数字温度计 Design based Digital Thermometer DS18B20 Abstract Along with the present information technology s swift development and traditional industry transformation s gradual realization Able to work independently of the temperature detection and display system used in many other fields Traditional temperature examination take thermistor as temperature sensitive unit Thermistor s cost is low needs the sur signal processing electric circuit moreover the reliability is relatively bad the temperature measurement accuracy is low the examination system also has certain error Compares with the traditional thermometer what this design is based on the DS18B20 digital thermometer it has the reading to be convenient the temperature measurement scope is broad the temperature measurement is precise the digit demonstrated that applicable scope wide and so on characteristics Used in the design AT89C51 MCU as the main control device digital temperature sensor DS18B20 as the temperature components of the anode through the four LED digital display tube parallel transmission of data to achieve temperature display This design s content mainly divides into two parts first to system hardware part design including temperature gathering electric circuit and display circuit Second to the system software part s design realizes temperature gathering and the demonstration using the C language DS18B20 measured by direct reading temperature values and transfer Data into MCU and output to show this is the design of the Digital Thermometer Its system constitution is simple the effect of signal gathering is good the speed of data processing is quick at al it is advantageous for the actual examination use Keywords MCU AT89S51 Temperature Sensor DS18B20 LED Digital tube Digital Thermometer 目 录 摘 要 I ABSTRACT II 第一章 绪 论 1 1 1 课题背景 1 1 2 课题来源 2 1 3 课题内容及要求 2 第二章 基于 DS18B20 数字温度计设计的可行性分析 4 2 1 数字温度计设计方案论证 4 2 1 1 方案一 4 2 1 2 方案二 4 2 2 单线技术 4 第三章 系统的硬件选择及设计 6 3 1 核心处理器的设计 6 3 1 1 AT89C51 的简介 6 3 1 2 复位电路的设计 9 3 1 3 晶振电路的设计 10 3 2 温度采集电路的设计 10 3 2 1 DS18B20 的简介 11 3 2 2 DS18B20 内部结构 13 3 2 3 DS18B20 测温原理 17 3 2 4 温度采集电路 18 3 3 温度显示电路的设计 18 3 3 1 LED 数码管的操作 18 3 3 2 温度显示电路 20 第四章 系统的软件设计 21 4 1 概述 21 4 2DS18B20 的单线协议和命令 21 4 2 1 初始化 21 4 2 2 ROM 操作命令 21 4 2 3 内存操作命令 22 4 2 4 数据处理 23 4 3 温度采集程序的设计 25 4 3 1 程序流程图 25 4 3 2 采集程序 26 4 4 温度显示程序的设计 31 4 4 1 程序流程图 31 4 4 2 显示程序 31 结 论 33 致 谢 34 参考文献 35 附 录 A 36 第一章 绪 论 1 1 课题背景 单片机自 1976 年由 Intel 公司推出 MCS 48 开始 迄今已有三十多年了 由于单片机集成度高 功能强 可靠性高 体积小 功耗低 使用方便 价格 低廉等一系列优点 目前已经渗入到人们工作和生活的方方面面 几乎 无处不 在 无所不为 单片机的应用领域已从面向工业控制 通讯 交通 智能仪表 等迅速发展到家用消费产品 办公自动化 汽车电子 PC 机外围以及网络通讯 等广大领域 对各个行业的技术改造和产品更新换代起着重要的推动作用 单片机有两种基本结构形式 一种是在通用微型计算机中广泛采用的 将 程序存储器和数据存储器合用一个存储器空间的结构 称为普林斯顿结构 另 一种是将程序存储器和数据存储器截然分开 分别寻址的结构 一般需要较大 的程序存储器 目前的单片机以采用程序存储器和数据存储器截然分开的结构 为多 本设计讨论的单片机多功能定时器的核心是目前应用极为广泛的 51 系列单 片机 配置了外围设备 构成了一个可编程的计时定时系统 具有体积小 可 靠性高 功能强等特点 不仅能满足所需要求而且还有很多功能可供开发 有 着广泛的应用领域 1 20 世纪 80 年代中期以后 Intel 公司以专利转让的形式把 8051 内核技术转 让给许多半导体芯片生产厂家 如 ATMEL PHILIPS ANALOG DEVICES DALLAS 等 这些厂家生产的芯 片是 MCS 51 系列的兼容产品 准确地说是与 MCS 51 指令系统兼容的单片机 这些兼容机与 8051 的系统结构 主要是指令系统 相同 采用 CMOS 工艺 因而 常用 80C51 系列来称呼所有具有 8051 指令系统的单片机 它们对 8051 单片机 一般都作了一些扩充 使其更有特点 其功能和市场竞争力更强 其实不该把 它们直接称呼为 MCS 51 系列单片机 因为 MCS 只是 Intel 公司专用的单片机 系列型号 MCS 51 系列及 80C51 单片机有多种品种 它们的引脚及指令系统 相互兼容 主要在内部结构上有些区别 目前使用的 MCS 51 系列单片机及其 兼容产品通常分成以下几类 基本型 增强型 低功耗型 专用型 超 8 位型 片内闪烁存储器型 其中 ATMEL 公司的标准型 AT89 单片机因其与 MCS 51 的完全兼容性 优良的工作性能 使用的灵活性以及较高的性能价格比 成为 AT89 系列单片机的主流机型 在嵌入式控制系统中获得广泛应用 1 2 课题来源 众所周知 环境温度一直是生物能否较适宜生存的一个重要因素 而人们 对环境温度的感知也从单纯的身体感官的感受发展到用各种温度计来对环境温 度进行准确的测量 但是受限于技术等原因 温度计通常都有体积较大 精度 不高等各种缺陷 而数字温度测量芯片的出现则解决了这些问题 其中的一款 芯片 DS18B20 是 DALLAS 公司生产的 1 Wire 即单总线器件 具有线路简单 体积小的特点 因此 用它来组成一个测温系统 具有线路简单 在一根通信 线上可以挂载很多这样的数字温度芯片 十分方便 美国 Dallas 半导体公司的数字化温度传感器 DS1820 2 是世界上第一片支持 一线总线 接口的温度传感器 在其内部使用了在板 ON B0ARD 专利技术 全部传感元件及转换电路集成在形如一只三极管的集成电路内 一线总线 独特 而且经济的特点 使用户可轻松地组建传感器网络 为测量系统的构建引入全 新概念 现在 新一代的 DS18B20 体积更小 更经济 更灵活 使你可以充分 发挥 一线总线 的优点 同 DS1820 一样 DS18B20 也支持 一线总线 接口 测量温度范围为 55 C 125 C 在 10 85 C 范围内 精度为 0 5 C 现场 温度直接以 一线总线 的数字方式传输 大大提高了系统的抗干扰性 适合于 恶劣环境的现场温度测量 如 环境控制 设备或过程控制 测温类消费电子 产品等 与前一代产品不同 新的产品支持 3V 5 5V 的电压范围 使系统设 计更灵活 方便 而且新一代产品更便宜 体积更小 这就为用最低的成本制 作出用途更广 精度更高的便携带的数字温度计提供了可能 目前 国际上新型温度传感器正从模拟式向数字式 从集成化向智能化 网络化的方向飞速发展 1 3 课题内容及要求 本设计主要介绍了用单片机和数字温度传感器 DS18B20 相结合的方法来实 现温度的采集 以单片机 AT89C51 芯片为核心 辅以温度传感器 DS18B20 和 LED 数码管及必要的外围电路 构成了一个多功能单片机数字温度计 该装置 适用于人民的日常生活和工 农业生产的温度测量与报警 实现对温度的监测 其主要研究内容包括两方面 一是对系统硬件部分的设计 包括温度采集电路 和显示电路 二是对系统软件部分的设计 应用 C 语言实现温度的采集与显示 通过利用数字温度传感器 DS18B20 进行设计 能够满足实时检测温度的要求 同时通过 LED 数码管的显示功能 可以实现不间断的温度显示 并带有复位功 能 本次设计的主要思路是利用 51 系列单片机 数字温度传感器 DS18B20 和 LED 数码显示器 构成实现温度检测与显示的单片机控制系统 即数字温度计 通过对单片机编写相应的程序 达到能够实时检测周围温度的目的 通过对本课题的设计能够熟悉数字温度计的工作原理及过程 了解各功能 器件 单片机 DS18B20 LED 的基本原理与应用 掌握各部分电路的硬件连线 与程序编写 最终完成对数字温度计的总体设计 其具体的要求如下 1 根据设计要求 选用 AT89C51 单片机为核心器件 2 温度检测器件采用 DS18B20 数字式温度传感器 利用单总线式连接方式与 单片机的串行接口 P0 0 引脚相连 3 显示电路采用 4 个 LED 数码管显示器接 P1 口并行显示温度值 数码管由 P3 口 P3 0 P3 3 选通 动态显示 第二章 基于 DS18B20 数字温度计设计的可行性分析 2 1 数字温度计设计方案论证 2 1 1 方案一 由于本设计实现的是测温电路 首先我们可以使用热敏电阻之类的器件 利用其感温效应 将其随被测温度变化的电压或电流值采集过来 进行 A D 转 换后 就可以用单片机进行数据的处理 通过显示电路就可以将被测温度显示 出来 这种设计需要用到 A D 转换电路 感温电路比较麻烦 因此 我们引出 第二种方案 2 1 2 方案二 我们可以采用技术成熟 操作简单 精确度高的温度传感器 在此 可以 选用数字温度传感器 DS18B20 根据它的特点和测温原理 很容易就能直接读 取被测温度值并进行转换 这样就可以满足设计要求 从以上两种方案 很容易看出 采用方案二 电路比较简单 软件设计也 比较简单 故在本设计中采用了方案二 通过方案二设计的温度计总体电路图如附录图 C 所示 控制器采用单片机 AT89C51 温度传感器采用 DS18B20 用 4 位 LED 数码管以串口并行输出方 式传送数据实现温度显示 2 2 单线技术 目前 常用的微机和外设之间数据传输的串行总线 3 有 I2C 总线 SPI 总线 等 其中 I2C 总线采用同步串行双线 一根时钟线 一根数据线 方式 而 SPI 总 线采用同步串行三线 时钟线 输入线 数据输入线 方式 这两种总线需要至 少两根或两根以上的信号线 美国达拉斯半导体公司推出了一项特有的单线技 术 该技术于上述总线不同 它采用单根信号线 即可传输时钟 又能传输数 据 而且数据传输时是双向的 因而这种单线技术具有线路简单 硬件开销少 成本低廉 便于扩展的优点 单线技术适用以单主机系统 单主机能够控制一个或多个从机设备 主机 可以是微控制器 从机可以是单线器件 它们之间的数据交换 控制都由这根 线完成 主机或从机通过一个漏极开路或三态端口连至该数据线 以允许设备 在不发送数据时能够释放线 而让其它设备使用 单线通常要求外接一个约 5k 的上拉电阻 这样 当该线闲置时 器件状态为高电平 主机和从机之间的通信主要分为 3 个步骤 初始化单线器件 识别单线器 件和单线数据传输 由于只有一根线通信 所以它们必须是严格的主从结构 只有主机呼叫从机时 从机才能应答 主机访问每个单线器件都必须严格遵循 单线命令序列 从机遵守上述三个步骤的顺序 如果命令序列混乱 单线器件 将不会响应主机 4 所有的单线器件都有遵循严格的协议 以保证数据的完整性 单线协议有 复位脉冲 其他均由主机发起 并且所有命令和数据都是字节的地位在前 第三章 系统的硬件选择及设计 3 1 核心处理器的设计 3 1 1 AT89C51 的简介 对于单片机的选择 可以考虑使用 8031 与 8051 系列 由于 8031 没有内部 RAM 系统又需要大量内存存储数据 因而不适用 所以 我们选用 51 系列 单片机 AT89C51 AT89C51 是美国 ATMEL 公司生产的低功耗 高性能 CMOS8 位单片机 片内含 4kbytes 的可编程的 Flash 只读程序存储器 兼容标 准 8051 指令系统及引脚 并集成了 Flash 程序存储器 既可在线编程 ISP 也可用传统方法进行编程 因此 低价位 AT89C51 单片机可应用于许多高性价 比的场合 可灵活应用于各种控制领域 对于简单的测温系统已经足够 单片 机 AT89C51 具有低电压供电和体积小等特点 四个端口只需要两个口就能满足 电路系统的设计需要 很适合便携手持式产品的设计使用系统可用二节电池供 电 AT89C51 的主要特性如下 与 MCS 51 兼容 4K 字节可编程闪烁存储器 寿命 1000 写 擦循环 数据保留时间 10 年 全静态工作 0Hz 24Hz 三级程序存储器锁定 128 8 位内部 RAM 32 根可编程 I O 线 两个 16 位定时器 计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 1 AT89C51 引脚图 芯片 AT89C51 的引脚排列和逻辑符号如图 3 1 所示 图 3 1 AT89C51 单片机引脚图 2 AT89C51 引脚功能介绍 单片机芯片 AT89C51 为 40 引脚双列直插式封装 其各个引脚功能 5 介绍 如下 1 VCC 供电电压 2 GND 接地 3 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每个管脚可吸收 8TTL 门电流 当 P1 口的管脚写 1 时 被定义为高阻输入 P0 能够用于外部程序数据存储器 它可以被定义为数据 地址的第八位 在 FLASH 编程时 P0 口作为原码输入口 当 FLASH 进行校验时 P0 输出原码 此时 P0 外部电位必须被拉高 4 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4TTL 门电流 P1 口管脚写入 1 后 电位被内部上拉为高 可用作输入 P1 口 被外部下拉为低电平时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址接收 5 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚电位被内部上拉电阻拉高 且作为 输入 作为输入时 P2 口的管脚电位被外部拉低 将输出电流 这是由于内部 上拉的缘故 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存 取时 P2 口输出地址的高八位 在给出地址 1 时 它利用内部上拉的优势 当对外部八位地址数据存储器进行读写时 P2 口输出其特殊功能寄存器的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 6 P3 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电 流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入时 由于外部下拉为低电平 P3 口将输出电流 ILL 也是由于上拉的缘故 P3 口 也可作为 AT89C51 的一些特殊功能口 同时 P3 口同时为闪烁编程和编程校验 接收一些控制信号 其具体功能如表 3 1 所示 表 3 1 P3 口的特殊功能 端口定义符号表示功能描述 P3 0RXD串行输入口 P3 1TXD串行输出口 P3 2INT0外部中断 0 P3 3INT1外部中断 1 P3 4T0定时器 0 外部输入 P3 5T1定时器 1 外部输入 P3 6WR 外部数据存储器写 选通 P3 7RD 外部数据存储器读 选通 7 RST 复位输入端 当振荡器复位时 要保持 RST 脚两个机器周期的高电平 时间 8 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频 率周期输出正脉冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部输出 的脉冲或用于定时目的 然而要注意的是 每当用作外部数据存储器时 将跳 过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令时 ALE 才起作用 另外 该引脚被略微 拉高 如果微处理器在外部执行状态 ALE 禁止 置位无效 9 PSEN 外部程序存储器的选通信号 在由外部程序存储器取址期间 每个机器周 期 PSEN 两次有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将 不出现 10 EA VPP 当 EA 保持低电平时 访问外部 ROM 注意加密方式 1 时 EA 将内部锁 定为 RESET 当 EA 端保持高电平时 访问内部 ROM 在 FLASH 编程期间 此引脚也用于施加 12V 编程电源 VPP 11 XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 12 XTAL2 来自反向振荡器的输出 3 1 2 复位电路的设计 单片机复位电路的设计如图 3 2 所示 该复位电路采用手动复位与上电复 位相结合的方式 当按下按键 S1 时 VCC 通过 R1 电阻给复位输入端口一个高 电平 实现复位功能 即手动复位 上电复位就是 VCC 通过电阻 R2 和电容 C 构成回路 该回路是一个对电容 C 充电和放电的电路 所以复位端口得到一个 周期性变化的电压值 并且有一定时间的电压值高于 CPU 复位电压 实现上电 复位功能 7 图 3 2 单片机复位电路 3 1 3 晶振电路的设计 单片机晶振电路的设计如图 3 3 所示 XTAL1 X1 为反向振荡放大器的 输入及内部时钟工作电路的输入 XTAL2 X2 是来自反向振荡器的输出 按照 理论上 AT89C51 使用的是 12MHz 的晶振 但实测使用 11 0592MHz 所以设 计者通常用的是 11 0592MHz 3 2 温度采集电路的设计 由于传统的热敏电阻等测温元件测出的一般都是电压 再转换成对应的温 度 需要比较多的外部元件支持 且硬件电路复杂 制作成本相对较高 这里 采用 DALLAS 公司的数字温度传感器 DS18B20 作为测温元件 图 3 3 单片机晶振电路 3 2 1 DS18B20 的简介 DALLAS 最新单线数字温度传感器 DS18B20 是一种新型的 一线器件 其体积更小 更适用于多种场合 且适用电压更宽 更经济 DALLAS 半导体 公司的数字化温度传感器 DS18B20 是世界上第一片支持 一线总线 接口的温度 传感器 温度测量范围为 55 125 摄氏度 可编程为 9 位 12 位转换精度 测温分辨率可达 0 0625 摄氏度 分辨率设定参数以及用户设定的报警温度存储 在 EEPROM 中 掉电后依然保存 被测温度用符号扩展的 16 位数字量方式串 行输出 其工作电源既可以在远端引入 也可以采用寄生电源方式产生 多个 DS18B20 可以并联到 3 根或 2 根线上 CPU 只需一根端口线就能与诸多 DS18B20 通信 占用微处理器的端口较少 可节省大量的引线和逻辑电路 因 此用它来组成一个测温系统 具有线路简单 在一根通信线 可以挂很多这样 的数字温度计 十分方便 6 DS18B20 的性能特点如下 独特的单线接口方式 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 的管脚排列 各种封 装形式如图 3 4 所示 其中 DQ 为数据输入 输出引脚 也可用作开漏单总线 接口引脚 当被用在寄生电源工作方式下 可以向器件提供电源 GND 为地信 号 VDD 为可选择的电源引脚 当工作于寄生电源时 此引脚必须接地 其电 路图 3 5 所示 图 3 4 外部封装形式 图 3 5 传感器电路图 3 2 2 DS18B20 内部结构 图 3 6 为 DS1820 的内部结构框图 它主要包括寄生电源 温度传感器 64 位激光 ROM 单线接口 存放中间数据的高速暂存器 内含便笺式 RAM 用于 存储用户设定的温度上下限值的 TH 和 TL 触发器存储与控制逻辑 8 位循环冗 余校验码 CRC 发生器等七部分 DS18B20 采用 3 脚 PR 35 封装或 8 脚 SOIC 封装 其中 64 bit 闪速 ROM 的结构如下 8bit 校验 CRC48bit 序列号8bit 工厂代码 10H MSB LSBMSB LSBMSB LSB 开始的 8 位是产品类型的编号 接着是每个器件的惟一的序号 共有 48 位 最后 8 位是前面 56 位的 CRC 检验码 这也是多个 DS18B20 可以采用一线进 行通信的原因 温度报警触发器 TH 和 TL 可通过软件写入户报警上下限 主 机操作 ROM 的命令有五种 如表 3 2 所示 图 3 6 DS18B20 内部结构框图 温度传感器 DS18B20 的内部存储器还包括一个高速暂存 RAM 和一个非易 失性的可电擦除的 EERAM 高速暂存 RAM 的结构为 8 字节的存储器 结构如 图 3 7 所示 图 3 7 高速暂存 RAM 结构图 其中 前 2 个字节包含测得的温度信息 第 3 和第 4 字节 TH 和 TL 的拷贝 是 易失的 每次上电复位时被刷新 第 5 个字节 为配置寄存器 它的内容用于 确定温度值的数字转换分辨率 DS18B20 工作时寄存器中的分辨率转换为相应 精度的温度数值 暂存存储器的第 5 个字节是配置寄存器 可以通过相应的写命令进行配置 其内容如下 0R1R0111111 MSB LSB 其中 R0 和 R1 是温度值分辨率位 可按表 3 3 进行配置 表 3 3 温度值分辨率配置表 R1R0分辨率最大转换时间 ms 009 位93 75ms tconv 8 0110 位183 50ms tconv 4 1011 位375ms tconv 2 1112 位750ms tconv 当 DS18B20 接收到温度转换命令后 开始启动转换 转换完成后的温度值 就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1 2 字节 单片机可通过单线接口读到该数据 读取时低位在前 高位在后 数据格式以 0 0625 LSB 形式表示 温度值格式如下 低232221202 12 22 32 4 高SSSSS262524 MSB LSB 这是 12 位转化后得到的 12 位数据 存储在 DS18B20 的两个 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 形式表示 表 3 4 是部分温度 值对应的二进制温度表示数据 表 3 4 部分温度的二进制数表示 温度数字输出 二进制 数字输出 16 进制 125 00000111 1101000007D0H 85 00000101 010100000550H 25 0625 00000001 100100010191H 10 125 00000000 1010001000A2H 0 5 00000000 000010000008H 0 00000000 000000000000H 0 5 11111111 11111000FFF8H 10 125 11111111 01011110FFE5H 25 0625 11111110 01101111FF6FH 55 11111100 10010000FC90H DS18B20 完成温度转换后 就把测得的温度值与 RAM 中的 TH TL 字节内容 作比较 若 T TH 或 T 0 480us 1 2 响应 DS18B20 检测到该上升沿后 延时 15 60us 通过拉低总线 60 240us 来产 生应答脉冲 DQ 1 15 60us 0 60 240us 3 接收响应 主机接收到从机的应答脉冲后 说明有单线器件在线 至此 初始化完成 DQ 0 4 2 2 ROM 操作命令 当主机检测到应答脉冲 便可发起 ROM 操作命令 共有 5 类 ROM 操作命 令 如表 4 1 所示 表 4 1 ROM 操作命令 指令类型命令字节功能说明 Read Rom 读 ROM 33H读取激光 ROM 中的 64 位 只能用于总线上单个 DS18B20 器件情况 多挂时会发生数据冲突 Match Rom 匹配 ROM 55H此命令后跟 64 位 ROM 序列号 寻址多挂总线上的 对应 DS18B20 只有序列号完全匹配的 DS18B20 才 能响应后面的内存操作命令 其他不匹配的将等待复 位脉冲 可用于单挂或多挂两种情况 Skip Rom 跳过 ROM CCH可无须提供 64 位 ROM 序列号即可运行内存操作命 令 只能用于单挂 Search Rom 搜索 ROM F0H通过一个排除法过程 识别出总线上所有器件的 ROM 序列号 AlarmSearch 报警搜索 ECH命令流程与 Search Rom 相同 但 DS18B20 只有最近 的一次温度测量时满足了报警触发条件的 才会响应 此命令 4 2 3 内存操作命令 在成功执行 ROM 操作命令后 才可使用内存操作命令 共有 6 种内存操 作命令 如表 4 2 所示 表 4 2 内存操作命令 指令类型命令字 节 功能说明 Write Scratchpad 写暂存器 4EH写暂存器中地址 2 地址 4 的 3 个字节 TH TL 和配置 寄存器 在发起复位脉冲之前 3 个字节都必须要写 Read Scratchpad 读暂存器 BEH读取暂存器内容 从字节 0 一直到字节 8 共 9 个字 节 主机可随时发起复位脉冲 停止此操作 通常我 们只需读前 5 个字节 Copy Scratchpad 复制暂存器 48H将暂存器中的内容复制进 EERAM 以便将温度告警 触发字节存入非易失内存 如果此命令后主机产生读 时隙 那么只要器件还在进行复制都会输出 0 复制 完成后输出 1 Convert T 温度转换 44H开始温度转换操作 若在此命令后主机产生时隙 那 么只要器件还在进行温度转换就会输出 0 转换完成 后输出 1 Recall E2 重调 E2 暂存器 B8H将存储在 EERAM 中的温度告警触发值和配置寄存器 值重新拷贝到暂存器中 此操作在 DS18B20 加电时 自动产生 Read Power Supply 读供电方式 B4H主机发起此命令后每个读数时隙内 DS18B20 会发信 号通知它的供电方式 0 寄生电源 1 外部供电 4 2 4 数据处理 DS18B20 要求有严格的时序来保证数据的完整性 在单线 DQ 上存在复位 脉冲 应答 写 0 写 1 读 0 和读 1 几种型号类型 其中除了应答脉冲以外 均有主机产生 6 1 DS18B20 的复位时序 图 4 1 DS18B20 的复位时序 数据位的读和写则是通过使用读 写是时序实现的 首先来看写时序 时 序图如图 4 2 所示 当主机将数据线从高电平拉至低电平时产生写时序 有两 种类型的写时序 写 1 和写 0 所有写时序必须在 60us 以上 即有高拉低后持 续 60us 以上 各个写时序之间必须保证最短 1us 的恢复时间 DS18B20 在 DQ 线变低后的 15us 至 60us 的窗口时间内对 DQ 线进行采样 如果为高电平就写 为 1 如果为低电平就写为 0 对于主机产生写 1 时隙的情况 数据线必须 先被拉低 然后释放 在写时序开始后的 15us 内允许 DQ 线拉至高电平 对于 主机产生写 0 时隙的情况 DQ 线必须被拉至低电平且至少保持低电平 60us 的 时间 图 4 2 写时序 再来看读时序 时序图如图 4 3 所示 当主机从 DS18B20 读数据时 把数 据线从高电平拉至低电平 产生读时序数据线 DQ 必须保持低电平至少 1us 来 自 DS18B20 的输出数据在读时序下降沿之后 15us 内有效 因此在此 15us 内 主机必须停止将 DQ 引脚置低 在读时序结束时 DQ 引脚将通过外部上拉电 阻拉回至高电平 所有的读时序最短必须持续 60us 各个读时序之间必须保证 最短 1us 的回复时间 8 图 4 3 读时序 所有的读写时序至少需要 60us 且每两个对立的时序之间至少需要 1us 的 回复时间 在写时序中 主机将在拉低总线 15us 内释放总线 并向 DS18B20 写 1 若主机拉低总线后能保持至少 60us 的低电平 则向单总线器件写 0 DS18B20 仅在主机发出读时序时才向主机传送数据 所以当主机向 DS18B20 发出读数据命令后 必须马上产生读时序 以便 DS18B20 能传输数据 4 3 温度采集程序的设计 4 3 1 程序流程图 温度采集程序流程图如图 4 4 所示 开始 初始化 DS18B20 应答脉冲 发起 Skip Rom 命令 发起 Convert T 命令 延时 1s 等待温度转换完成 初始化 DS18B20 应答脉冲 发起 Read Scratchapad 命令 读取第 1 2 字节即为 温度数值 No No 图 4 4 温度采集流程 4 3 2 采集程序 主要程序代码及其说明 见注释语句 如下 uchar tplsb tpmsb 温度值低位 高位字节 sbit DQ P0 0 数据通信线 延时 t 毫秒 void delay uint t uint i while t 对于 11 0592Hz 时钟 约延时 1 毫秒 for i 0 i0 i DQ 1 产生上升沿 i 4 while i 0 i 等待应答脉冲 void RxWait void uint i while DQ while DQ 检测到应答脉冲 i 4 while i 0 i 读取数据的一位 满足读时序要求 bit RdBit void uint i bit b DQ 0 i 保持低至 1us DQ 1 i i 延时 15us 以上 读时序下降沿后 15us DS18B20 输出数据才有效 b DQ i 8 while i 0 i 读时隙不低于 60us return b 读取数据的一个字节 uchar RdByte void uchar i j b b 0 for i 1 I 8 i j RdBit b j 1 return b 写数据的一个字节 满足写 1 和写 0 的设计要求 void WrByte uchar b uint i uchar j bit btmp for j 1 j 1 取下一位 由低位向高位 if btmp 写 1 DQ 0 i i 延时 使得 15us 以内拉高 DQ 1 i 8 while i 0 i 整个写 1 时序不低于 60us else 写 0 DQ 0 i 8 while i 0 i 保持低电平在 60us 到 120us 之间 DQ 1 i i 启动温度转换 void convert void TxTeset 产生复位脉冲 初始化 DS18B20 RxWait 等待 DS18B20 给出应答脉冲 delay 1 延时 WrByte 0 xcc skip rom 命令 WrByte 0 x44 convert T 命令 读取温度值 void Rdtemp void TxReset 产生复位脉冲 初始化 DS18B20 RxWait 等待 DS18B20 给出应答脉冲 delay 1 延时 WrByte 0 xcc skip rom 命令 WrByte 0 xbe read scratchpad 命令 tplsb RdByte 温度值低位字节 其中低 4 位为二进制的 小数 部分 tpmsb RdByte 主程序 读取的温度值最终存放在 tplsb 和 tpmsb 变量中 tplsb 其中低 4 位为二进制的 小数 部分 tpmsb 其中高 5 位为符号位 真正通过数码管输出时 需要进行到十进制有符号实数 包括小数部分 的转换 void main void do delay 1 延时 1ms convert 启动温度转换 需要 750ms delay 1000 延时 1s RdTemp 读取温度 while 1 4 4 温度显示程序的设计 4 4 1 程序流程图 温度显示程序流程图如图 4 5 所示 图 4 5 LED 显示流程图 4 4 2 显示程序 void display unsigned char lp 显示 unsigned char i 定义变量 P3 0 LED 段选共阴极送 1 点亮某段 P1 0 LED 位选共阴极送 0 选中某位 P3 0 xfe 先用 1111 1110 显示第一位 P1 table lp 0 开始 点亮所有数码管 选中 LED1 显符号 延迟 选中 LED2 显十位 延迟 选 LED3 显个位 延迟 选 LED4 显小数 结束 delay 延时 5 个空指令 P1 0 P3 0 xfd 1111 1101 显示第二位 P1 table lp 1 delay 延时 5 个空指令 P1 0 P3 0 xfb 1111 1011 显示第三位 P1 table lp 2 0 x80 delay 延时 5 个空指令 P1 0 P3 0 xf7 1111 0111 显示第四位 P1 table lp 3 P1 P1 发光二极管 用来显示小数点后一位 的数字段 送 0 点亮 所以不亮的灯就是 段码 delay 延时 5 个空指令 P2 1 结 论 本设计介绍了基于 DS18B20 的数字温度计的工作原理及实现过程 本人在 这几个月的时间内阅读大量有关数字温度计原理及设计的相关资料 设计了系 统所需的电路原理图及实现采集与显示功能的软件程序 完成了基于 DS18B20 的数字温度计的设计 设计中采用最常用的单片机 AT89C51 作为主控模块 单 总线数字温度传感器 DS18B20 用来测量温度 温度数据采用数码管 LED 显示 本设计的特点是构成系统的硬件器件少 操作简单 数据处理功能强 通过这次毕业设计使我学习到了很多的东西 不仅加深了对专业知识的理 解 而且更好地把理论知识与实践相结合 提高了自身的动手能力和实践水平 增强了学习单片机系统开发与设计的兴趣 由于本人的知识有限 在本设计中不可避免存在一些不足之处 我会在以 后的学习生活中不断加以完善 相信本次毕业设计的经历一定会在我今后的学 习生活中产生巨大的推动作用 致 谢 经过几个月的紧张忙碌 我的毕业设计也已经接近尾声 在这段毕业设计 期间 我的老师给了我很大的帮助 在此 我要衷心感谢我的指导教师赫健老 师 在毕业设计期间我的设计和论文都是在赫老师全面 具体的指导下进行的 老师对论文的选题 构思 资料收集到最后定稿的各个阶段都给了我很大的宝 贵意见和悉心指导 认真帮助我纠正设计上的错误和写作论文上的不规范之处 在赫老师的指导和帮助下我才得以顺利地完成了毕业设计 她严谨的治学态度 诲人不倦的师者风范 忘我的工作精神深深感动了我 同时也要感谢赵磊 陈海树 赵彩虹等同学 他们在我的毕业设计期间给 我提供了很大的帮助 在他们的帮助下我少走了许多弯路 提高了工作效率 最后 感谢在百忙之中抽时间来对我的毕业设计论文进行审阅 评议和参 加论文答辩的各位老师 参考文献 1 于永 51 单片机 C 语言常用模块与综合系统设计实例精讲 M 北京 电子 工业出版社 2008 2 戴永成等 基于 DS18B20 的数字温度测量仪 J 北华航天工业学院学报 2008 3 廖常初 现场总线概述 J 电工技术 1999 4 张越等 基于 DS18B20 温度传感器的数字温度计 J 微电子学 2007 5 李朝青 单片机原理及接口技术 简明修订版 杭州 北京航空航天大学 出版社 1998 6 黄河 基于 DS18B20 的单总线数字温度计 J 湘潭师范学院学报 2008 7 李广弟 单片机基础 北京 北京航空航天大学出版社 1994 8 王建强等 基于 DSP 控制器与 DS18B20 的温度测量方法 J 仪器仪表与检 测技术 2009 附 录 A 系统的硬件电路图如图 A 所示 图 A 系统的硬件电路图经典经典婚庆主持词婚庆主持词 炮竹声声贺新婚炮竹声声贺新婚 欢声笑语迎嘉宾欢声笑语迎嘉宾 尊敬各位来宾尊敬各位来宾 各位领导各位领导 各位亲朋好友各位亲朋好友 先生们先生们 女士们女士们 活泼可爱的小朋友们活泼可爱的小朋友们 大家好大家好 好歌好语好季节好歌好语好季节 好人好梦好姻缘好人好梦好姻缘 来宾们今天是公元来宾们今天是公元 年年 月月 日日 农历六月初八农历六月初八 是良辰吉日是良辰吉日 在这大吉大利吉祥喜庆在这大吉大利吉祥喜庆 的日子里的日子里 我们怀着十二分的真诚的祝福相聚在我们怀着十二分的真诚的祝福相聚在 酒楼一楼婚宴大厅共同庆贺酒楼一楼婚宴大厅共同庆贺 先生与先生与 小姐新婚典礼小姐新婚典礼 首先我们给予掌声的恭喜首先我们给予掌声的恭喜 大家都知道结婚是人生中的一件大事大家都知道结婚是人生中的一件大事 而婚礼而婚礼 更是人生中最幸福神圣的时刻更是人生中最幸福神圣的时刻 尤其婚礼上浪漫尤其婚礼上浪漫温馨温馨高雅别致的婚礼仪式以及亲朋好友的高雅别致的婚礼仪式以及亲朋好友的良良 好
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法学习课件
- 北京舞蹈考试题库及答案
- 结核病治疗方案
- 人工智能:新质生产力的技术引擎
- 打造新质生产力的人才磁场
- 乡镇过去五年进展工作总结及将来五年工作方案
- 新质生产力本质属性
- 幼儿园班级疫情防控活动方案
- 干部如何服务新质生产力发展
- 新质生产力看莞深智造
- 2024-2030年中国电解二氧化锰(EMD)行业市场发展趋势与前景展望战略分析报告
- 初中+物理运动的描述++人教版八年级物理上册+
- 计算机科学实习合同模板
- 人身损害三期评定规范
- 《我与地坛》教学设计 统编版高中语文必修上册
- 工业固废运输处置投标方案(技术标)
- 上海市语文新初一均衡分班试卷
- 中医培训课件:《放血疗法》
- KA-T 20.1-2024 非煤矿山建设项目安全设施设计编写提纲 第1部分:金属非金属地下矿山建设项目安全设施设计编写提纲
- 医务人员职业暴露的预防与处理应急预案
- 《古建筑构件制作(榫卯、斗拱)》课程标准
评论
0/150
提交评论