1、 综合课程设计报告 报 告 题 目 : 基于 DS18B20 温度传感器 的 温度显示及报警系统 作者所在系部: 机械工程系 作者所在专业: 测控技术与仪器 作者所在班级: B09122 作 者 姓 名 : 雷苏力 作 者 学 号 : 20094012216 指导教师姓名: 康会峰 、 赵 保 亚 完 成 时 间 : 2013 年 1 月 3 日 北华航天工业学院教务处制 1 基于 DS18B20温度 传感器的显示及报警系统 摘 要 随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与 显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,需
2、 要外 加 信号处理电路, 而且 可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比, 这次设计的是基于 DS18B20 的数字温度计,它 具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。 在本设计中 选用 STC89C52 型单片机作为主控制器件, 采用 DS18B20 数字温度传感器作为测温 元件, 通过 4 位共阳极 LED 数码 显示 管 并行 传送数据,实现温度显示。 通过按键设置温度上下限报警值,然后用不同颜色的 LED 灯报警。 本设计的内容主要分为两部分,一是对系统硬件部分的设计,包括 串口下载电路、按键输入电路、 温 度采集电路和显示电路
3、;二是对系统软件部分的设计,应用 C 语言实现 温度上下限报警值的设定、 温度的采集与显示。 通过 DS18B20 直接读取被测温度值, 送入单片机 进行数据 处理 , 之后进行输出显示, 最终完成该系统 的总体设计。其系统构成简单,信号采集效果好,数据处理速度快,便于实际 监测 使用。 关键词 : 单片机 STC89C52;温度传感器 DS18B20; LED 数码管;数字温度计 2 Abstract Along with the present information technologys swift development and traditional industry transf
4、ormations gradual realization, able to work independently of the temperature detection and display system used in many other fields. Traditional temperature examination takes thermistor as temperature sensitive unit. Thermistors cost is low, needs the signal processing electric circuit, moreover the
5、 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
6、is broad, the temperature measurement is precise, the digit demonstrated that applicable scope wide and so on characteristics. Used in the design STC89C52MCU as the main control device, digital temperature sensor DS18B20 as the temperature components of the anode through the four LED digital display
7、 tube parallel transmission of data, to achieve temperature display. This designs 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 parts design, realizes temperature gath
8、ering and the demonstration using the C language. DS18B20 measured by direct reading temperature values and transfer Data into MCU and output to show his is the design of the Digital Thermometer. Its system constitution is simple, the effect of signal gathering is good, the speed of data processing
9、is quick at al it is advantageous for the actual examination use. Keywords: MCU STC89S52; DS18B20; LED; Digital Thermometer 3 目 录 第一章 绪论 . 4 1.1 课题背景及来源 . 4 1.2 课题内容及要求 . 4 第二章 系统整体设计 . 5 2 1 系统设计 方案论证 . 5 第三章 系统的硬件选择及设计 . 6 3.1 主控制器的设计 . 6 3.2 温度采集电路的设计 . 6 3.3 温度显示电路的设计 .10 第四章 系统的软件设计 .12 4.1 概述
10、.13 4.2 程序流程图 .13 4.3 控制源程序 .15 第五章 系统调试 .15 结 论 .37 致 谢 .37 参考文献 .38 4 第一章 绪论 1.1 课题背景及来源 单片机自 1976 年由 Intel 公司推出 MCS-48 开始,迄今已有三十多年了。由于单片机集成度高、功能强 、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎 “ 无处不在,无所不为 ” 。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、 PC 机外围以及网络通讯等广大领域,对各个行业的技术改造和产品
11、更新换代起着重要的推动作用。 众所周知,环境温度一直是生物能否较适宜生存的一个重要因素,而人们对环境温度的感知也从单纯的身体感官的感受发展到用各种温度计来对环境温度进行准确的测量。但是受限于技术等原因,温度计通常都有体积较 大,精度不高等各种缺陷。而数字温度测量芯片的出现则解决了这些问题,其中的一款芯片 DS18B20 是 DALLAS 公司生产的 1-Wire,即单总线器件,具有线路简单,体积小的特点。因此 , 用它来组成一个测温系统,具有线路简单,在一根通信线 上 可以挂 载 很多这样的数字温度 芯片, 十分方便。 目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方
12、向飞速发展。 1.2 课题内容及要求 本 设计 主要介绍了用单片机和 数字温度传感器 DS18B20 相结合的方法 来实现温度的采集 , 以 单片机 STC89C52 芯片为核心,辅以温 度传感器 DS18B20 和 LED 数码管及必要的外围电路,构成了一个多功能单片机 数字温度计 ;并且可以通过按键设置上下限报警值,超过限值是通过 LED 报警 。 该装置适用于人民的日常生活和工、农业生产的温度测量与报警,实现对温度的监测。其主要研究内容包括两方面,一是对系统硬件部分的设计,包括温度采集电路和显示电路;二是对系统软件部分的设计,应用 C 语言实现温度的采集与显示。 通过对本课题的设计能够熟
13、悉数字温度计的工作原理及过程,了解各功能器件 (单片机、 DS18B20、 LED)的基本原理与应用,掌握各部分电路的硬件连线与程 序编写,最终完成对数字温度计的总体设计。其具体的要求如下: 1、 根据设计要求,选用 STC89C52 单片机为核心器件 ; 2、 温度检测器件采用 DS18B20 数字式温度传感器 ,利用单总线式连接方式 与单片机的 串行 接口 P2.2 引脚 相连; 3、显示电路 采用 4 个 LED 数码管显示器接 P0 口并行显示温度值,数码管由 P3 口 (P3.4P3.7)选通,动态显示。 5 第二章 系统整体设计 2 1 系统设计方案论证 2.1.1 方案一 由于本
14、设计 实现的 是测温电路, 首先我们 可以使用热敏电阻之类的器件 , 利用其感温效应,将 其 随被测温度变化 的电压或电流 值 采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理, 通过 显示电路就可以将被测温度显示出来,这种设计需要用到 A/D转换电路,感温电路比较麻烦。 因此,我们引出第二种方案。 2.1.2 方案 二 我们可以采用技术成熟、操作简单、精确度高的温度传感器, 在此,可以选用数字温度传感器 DS18B20,根据它的特点和测温原理, 很容易 就能 直接读取被测温度值并进行转换,这样就可以满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比
15、较简单,故在本设计中采用了方案二。 通过方案二设计 的温度计总体 设计方框图如图 2.1 所示,控制器采用单片机STC89C52,温度传感器采用 DS18B20,用 4 位 LED 数码管以 串口并行输出方式 传送数据实现温度显示。 系统硬件电路图见附录 A。 图 2.1 总体设计方框图 主 控 制 器 LED 显示 报警装置 温 度 传 感 器 单片机复位 时钟振荡 6 第 三 章 系统的硬件选择及设计 3.1 主控制器的设计 3.1.1 STC89C52的简介 STC89C52 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机,片内含4kbytes 的可编程的 Flash
16、 只读程序存储器,兼容标准 8051 指令系统及引 脚,并集成了 Flash 程序存储器,既可在线编程 (ISP),也可用传统方法进行编程,因此,低价位 STC89C52单片机 可应用于许多高性价比的场合 ,可灵活应用于各种控制领域,对于简单的测温系统已经足够。单片机 STC89C52 具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。 3.2 温度采集电路的设计 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较 高。这里采用 DALLAS
17、 公司的数字温度传感器 DS18B20 作为测温元件。 3.2.1 DS18B20 的简介 DS18B20 温度传感器是美国 DALLAS 半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。 DS18B20 的性能特点如下: DS18B20 的性能特点如下: 独特的单线接口仅需一个端口引脚进行通讯 每个器件有唯一的 64 位的序列号存储在内部存储器中 简单的多点分布式测温应用 无需外部器件 可通过数据线供电。供电范围为 3.0V到 5.5V。 测温范围为 -55 125( 67 257) 在
18、10 85范围内精确度为 5 7 温度计分辨率可以被使用者选择为 9 12位 最多在 750ms 内将温度转换为 12 位数字 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 与 DS1822兼容的软件 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 DS18B20内部结构主要由四部分组成: 64位 光刻 ROM、温度传感器、非挥发的温度报警触发器 TH和 TL、配置寄存器。 DS18B20的管脚排列、各种封装形式如图 3.2 所示。其中, DQ 为 数据输入 /输出引脚 ,也可用作 开漏单总线接 口引脚 , 当被用 在寄生电源 工作
19、方式 下,可以向器件提供电源 ; GND为 地信号 ; VDD为 可选择的 电源 引脚 , 当工作于寄生电源时,此引脚必须接地。 其电路图 3.3所示 。 图 3.2 外部封装形式 图 3.3 传感器电路图 3.2.2 DS18B20 内部结构 图 3.4 为 DS1820 的内部 结构 框图,它主要包括寄生电源、温度传感器、 64 位激光ROM 单线接口、存放中间数据的高速暂存器 (内含便笺式 RAM),用于存储用户设定的温度上下限值的 TH 和 TL 触发器存储与控制逻辑、 8 位循环冗余校验码 (CRC)发生器等七部分。 DS18B20 采用 3 脚 PR 35 封装或 8 脚 SOIC
20、 封装。 8 I/O C VDD 图 3.4 DS18B20 内部结构框图 温度传感器 DS18B20 的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图 3.5 所示。 Byte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 Byte8 图 3.5 高速暂存 RAM 结构图 其中, 前 2 个字节包含测得的温度信息,第 3 和第 4 字节 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 DS
21、18B20 工作时寄存器中的分辨率转换为相应精度的温度数值。 暂存存储器的第 5 个字节是配置寄存器,可以通过相应的写命令进行配置,其内容如下: 温度 LSB 温度 MSB TH 用户字节 1 TL 用户字节 2 配置寄存器 保留位( FFh) 保留位( 0Ch) 保留位( 10h) CRC TH 用户字节 1 TL 用户字节 2 配置寄存器 64 位 Rom 和 单 总 线 接 口 存储器与逻辑控制 高 速 缓 存 温度传感器 高温触发器 TH 低温触发器 TL 配置寄存器 8 位 CRC 发生器 9 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 其中 R0
22、 和 R1 是温度值分辨率位,可按表 3.3 进行配置 。 表 3.3 温度值分辨率配置表 R1 R0 分辨率 最大转换时间 (ms) 0 0 9 位 93.75ms(tconv/8) 0 1 10 位 183.50ms(tconv /4) 1 0 11 位 375ms(tconv /2) 1 1 12 位 750ms(tconv) 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16位带符号扩展的二进制补码形式存储在高速暂存存储器的第 1、 2 字节。单片 机 可通过单线接口读到该数据,读取时低位在前 、 高位在后,数据格式以 0.0625 /LSB 形式表示
23、。温度值 格式如下: Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 LS Byte 23 22 21 20 2-1 2-2 2-3 2-4 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 MS Byte S S S S S 26 25 24 这是 12 位转化后得到的 12 位数据,存储在 DS18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度; 如果温度小于 0,这 5 位为 1,测到的数值需要取
24、反加 1 再乘于 0.0625 即可得到实际温度 。 格式 中, S 表示位。 对应的温度计算:当符号位 S=0 时,表示测得的温度植为正值, 直接将二进制位转换为十进制;当 S=1 时, 表示测得的温度植为负值, 先将补码变换为原码,再计算十进制值。例如 +125 的数字输出为 07D0H,+25.0625 的数字输出为 0191H, -25.0625 的数字输出为 FF6FH, -55 的数字输出为FC90H。 DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、 TL 字节内容 作比较,若 TTH 或 TTL, 则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行告警搜索。在 64 位 ROM 的最高有效字节中存储有循环冗余校验码 (CRC)。主机根据 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM 数据是否正确。 3.2.3 温度采集电路 设计的温度采集电路如图 3.6 所示 : 0 R1 R0 1 1 1 1 1