1、河南师范大学本科毕业论文 - 1 - 前 言 随着电子技术的发展, 特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,单片机在工业控制系统诸多领域得到了极为广泛的应用。特别是其中的 C51 系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。 在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生 活中都会见到温度控制的影子,温度控制将更好的服务于社
2、会 .而今,空调等家用电器随着生产技术的发展和生活水平的提高越来越普及,一个简单,稳定的温度控制系统能更好的适应市场。当人们的生活日趋数字化的时候,多功能的数字温度计可以给我们的生活带来很大的方便。 温度测量与控制是工业控制中最常碰到的问题之一,而对于温度的测量可以采用模拟温度传感器加 AD 的方式获取,也可以通过数字式温度传感器的方式获取。 支持 “ 一线总线 ” 接口的温度传感器 简化了数字温度计的设计,降低了成本;以美国 MAXIM/DALLAS 半导体公司的单总线温度传 感器 DS18B20 为核心,以 ATMEL 公司的 AT89S52 为控制器设计的 DS18B20 温度控制器结构
3、简单、测温准确、具有一定控制功能的智能温度控制器。本设计就是一个基于 DS18B20的温度控制系统的设计。 河南师范大学本科毕业论文 - 2 - 第 1 章 总体设计 1.1 方案论证 1.1.1 温度传感器 方案一:采用热敏电阻可满足测温要求,但热敏电阻精度低,重复性和可靠性较差,对于精度要求较高的测温不适用,而且采用热敏电阻要求复杂的电路和算法,增加了设计复杂度。 方案二:采用专用的集成温度传感器(如 AD590、 LM35/LM45)和数 字化温度传感器( DS18B20、 DS1620)测温,数字化温度传感器具有接口简单、直接数字量输出、精确度高等优点。 DS18B20 是美国 DAL
4、LAS 半导体公司推出的一款智能温度传感器,与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现 9 12 位的数字值读数方式。可以分别在 93.75 750ms 内完成 9 12 位的数字量,并且从 DS18B20 读出的信息或写入 DS18B20 的信息仅需要一根线的读写,温度变换功率来源于数据总线,数据总线本身也可以向所挂接的 DS18B20 供电,而无须额外电 源。它是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,它的测量温度范围为 55 125,在 10 85范围内,精度为 0.5,现场温度直接以“
5、一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等, DS18B20 支持 +3 +5.5V 的电压范围,使系统设计更灵活、更方便、更便宜、体积更小。 DS18B20 可以程序设定 9 12 位的分辨率,精度为 0.5,分辨率设定及用 户设定的报警温度存储在 E2PROM 中,掉电后依然保存。因此,本方案选用 DS18B20 作为温度测量传感器。 1.1.2 单片机系统 目前比较流行 51 系列单片机和凌阳单片机。凌阳十六位单片机虽然可以更好的完成控制功能,但较 51 系列单片机价格昂贵,而且编程以及外围功能电路
6、的设计都不及 51 系列单片机成熟。因此,限于作者手头所有,选用飞利浦公司的 AT89S52 八位单片机作为温度采集的控制部分。 1.1.3 电源模块 采用普通的直流电源实现电路简单,而且采用集成电源芯片设计的直流电源电压比较稳定,完全满足系统各模块的供电要 求,但是普通直流电源体积比较大,变压器的散热对测温河南师范大学本科毕业论文 - 3 - 精度也有影响,所以,选用锂离子手机充电电池和配套的锂电池充电器作为系统的供电模块。手机用的 锂 电池 标称 电压 3.7V, 限定充电电压 4.2V,可以满足 AT89S52(工作电压范围 5V)和 DS18B20 等各部分的工作电压需要。 1.1.4
7、 显示模块 由于系统要求实现测量环境温度、测量体温、过界报警设置、温度存储再现等多种功能,要显示的信息不仅仅是温度值,所以采用数码管显示几乎不可能。另外,手机电池电量有限,而数码管耗电较大,不符合设计要求。因此,选用常见的 HS1602 液晶显示模块显示测温结果。 1.1.5 确定方案 为了不失通用性和智能性,本方案采用 AT89S52 单片机作为控制器,单总线温度传感器DS18B20 进行温度采集。电源部分没有采用普通的直流电源而利用锂离子手机充电电池和配套的锂电池充电器,由于手机电池电量有限,显示模块使用 HS1602 液晶显示模块而没有使用数码管。 1.2 总体设计 本方案设计的系统由按
8、键控制模块、单片机系统、温度传感器模块、液晶显示模块、存储模块、串口通信模块和电源模块组成,其总体架构如图 1.1。 图 1.1 系统总体设计 单片机系统 电源模块 温度传感器模块 液晶显示模块 串口通信模块 按键模块 存储模块 程序控制 河南师范大学本科毕业论文 - 4 - 第 2 章 硬件设计 2.1 温度传感器模块 2.1.1 DS18B20 特点 独特的单线接口方式: DS18B20 与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双线通信。 在使用中不需要任何外围元件。 可用数据线供电,电压范围: +3.0 - +5.5 V。 测温范围: -55 - +125 。固
9、有测温分辨率为 0.5 。 通过编程可实现 9 - 12 位的数字读数方式。 用户可自设定非易失性的报警上下限值。 支持多点组网功能,多个 DS18B20 可以并联在 唯一的三线上,实现多点测温。 负压特性,电源极性接反时,温度计不会应发热而烧毁,但不能正常工作。 2.1.2 DS18B20 原理 DS18B20 采用 3 脚 PR-35 封装或 8 脚 SOIC 封装,管脚排列如图 2.1 所示。图中 GND 为地, DQ 为数据输入 /输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平, Vcc 是外部 +5V 电源端,不用时应接地, NC 为空脚。 图 2.1 DS18B20 的外
10、部结构 DS18B20 内部结构主要包括寄生电源、温度灵敏元件、 64 位激光 ROM 单线接口、存放中河南师范大学本科毕业论文 - 5 - 间数据的 高速暂存器(内含便笺式 RAM),用于存储用户设定的温度上下限值的 TH 和 TL 解发器存储与控制逻辑、 8 位循环冗余校验码( CRC)发生器等七部分,内部结构如图 2.2。 图 2.2 DS18B20内部结构 ( 1)寄生电源。寄生电源由二极管 VD1、 VD2 和寄生电容 C 组成,电源检测电路用于判定供电方式,寄生电源供电时, VDD 端接地,器件从单线总线上获取电源,在 DQ 线呈低电平时,改由 C 上的电压 Vc 继续向器件供电。
11、该寄生电源有两个优点:第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读 ROM。若采 用外部电源 VDD,则通过 VD2 向器件供电。 图 2.3 64 位 ROM 的结构 表 2.1 DS18B20的 ROM指令表 指令 功能 读 ROM( 33H) 当总线上只有一个节点时,读此节点 ROM 中 64 位地址 匹配 ROM( 55H) 此命令后跟着 64 位 ROM 地址,总线上只有 64 位 ROM 地址与此值相同的 DS18B20 才会做出反应,地址不匹配的 DS18B20 被忽略。该指令是为了选中某个 DS18B20,然后为该 DS18B20 的读写做准备。 跳过 ROM(
12、 0CCH) 忽略 64 位 ROM 地址,直接向 DS18B20 发温 度变换命令。它只用于总线上只有一个节点的情况。 搜 ROM( 0F0H) 用于确定挂接在总线上 DS18B20 的个数和识别所有 64 位 ROM 地址 报警搜索( 0ECH) 此指令与搜索 ROM 基本相同,差别在于只有温度超过设定值上限或下限的片子才做出响应。 ( 2) 64 位 ROM。 光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20的地址序列码 ,其作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。这一点很像每一个网卡芯片都
13、有一个各不相同的 MAC 地址。如图 2.3 所河南师范大学本科毕业论文 - 6 - 示, 开始 8 位( 28H)是产品类型标号,接着的 48 位是 DS18B20 自身的序列号,最后 8位是前面 56 位的循环冗余校验码( CRC=X8+X5+X4+1)。 主机操作 ROM 的命令有五种,如表 2.1 所示。 ( 3)温度灵敏元件。温度灵敏元件完成对温度的测量,测量后的结果存储在两个 8比特的温度寄存器中,这两个温度寄存器的定义如图 2.4 所示。温度存储器高位的前 5 位是符号位,但温度大于 0 时,这 5位为 0,而当温度小于 0 时,这 5位是 1。高位剩下的 3 位和低位的前 4
14、位是温度的整数位,低位的后四位是温度的小数位,当温度大于 0时它们以原码的形式存储,而当温度小于 0 时都以二进制的补码形式存储 。 不难看出,当转换位为 12 位时,温度的精度为 0.0625 ,当转换位数为 11 时,温度的精度为 0.125,以此类推。 LS字节 MS字节 图 2.4 DS18B20 温度值存储器格式表 DS18B20 测量温度时使用特有的温度测量技术。其内部的低温度系数振荡器能产生稳定的频率信号 f0,高温度系数振荡器则将被测温度转换成频率信号 f。当计数门打开 时, DS18B20 对 f0 计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率
15、的非 5 线性予以被偿。测量结果存入温度寄存器中。对于温度的计算,以 12 位转换位数为例,对于正的温度值,只要将测到的数值乘以 0.0625 即可得到实际温度;如果温度小于零,测到的数值需要取反加 1再乘以 0.0625 即可得到实际温度,从温度值推算到二进制的方法就是相反的过程。其它位数的转换以此类推。 表 2.2 DS1820 的温度转换值和温度的对照表 (位 7) 位 6 位 5 位 4 位 3 位 2 位 1 位 0 S S S S S 位 10 位 9 位 8 河南师范大学本科毕业论文 - 7 - 例如,当转换的最大值 07D0H 对应的温度是 +125,则 +25的数字输出为 0
16、190H, -55的数字输出为 FC90H。由此不难推出 DS18B20 的温度转换值和温度的对应表,如表 2.2 所示。 ( 4) DS18B20 内部存储器。 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EEPROM, 后者存放高温度和低温度触发器 TH、 TL和 配置 寄存器。高速 暂存存储器 由 9个字节 组成 , 其分配如表 2.3 所示。当温度转换命令发布后经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0和第 1 个字节中。单片机可通过单线接口读到该数据,读取时低位在前 ,高位在后。故 前两个字节是测得的温度信息,第 0
17、 个字节的内容是温度的低 8 位,第 1 个字节是温度的高 8位 。 第 2 个和第 3个字节是 TH、 TL 的易失性拷贝, 即高低温度的报警值,它们是不含小数位的。 第 4 个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新 , 第 5、 6、 7个字节用于内部计算 ,第 8个字节是冗余检验字节 。 表 2.3 DS18B20 高速暂存存储器构成 寄存器内容 字节地址 温度最低数字位( LS 字节) 0 温度最高数字位( MS 字节) 1 高温限制( TH) 2 低温限制 (TL) 3 配置 寄存器 4 保留 5 保留 6 保留 7 CRC 校验值 8 其中配置寄存器
18、(也即高速暂存 RAM 的第 4 个字节)其 各位的意义 为 TM R1 R0 1 1 1 1 1 ,低五位一直都是 1 , TM 是测试模式位,用于设置 DS18B20 在工作模式 还是在 测试模式 。 在DS18B20 出厂时该位被设置为 0,用户不 用 改动 。 R1 和 R0 用来设置分辨率 , DS18B20 出厂时被设置为 12 位,分辨率设置如表 2.4 所示 。 表 2.4 分辨率设置表 R1 R0 分辨率 温度最大转换时间 0 0 9 位 93.75ms 0 1 10 位 187.5ms 1 0 11 位 375ms 1 1 12 位 750ms 河南师范大学本科毕业论文 -
19、 8 - 2.1.3 DS18B20 控制流程 根据 DS18B20 的通讯协议,主机控制 DS18B20 完成 一次 温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位 操作 ,复位成功后发送一条 ROM 指令,最后发送 RAM指令,这样才能对 DS18B20 进行预定的操作。复位要求主 CPU 将数据线下拉 至少 480 微秒 ,然后释放, DS18B20 收到信号后等待 15 60 微秒左右,后发出 60 240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功 。 ROM 指令和暂存器 RAM 的指令如表 2.1 和表 2.5 所示。 表 2.5 DS18B2
20、0 暂存器 RAM 的指令表 指令 说明 温度转换( 44H) 启动在线 DS18B20 做温度 A/D 转换,结果存入内部 RAM 中。 读数据( 0BEH) 从高速暂存器读 9bits 温度值和 CRC 值 写数据( 4EH) 写上下限温度报警数据和配置数据到内部 RAM 的 2、 3、 4 字节。此指令后跟的就是以上三个数据。 复制( 48H) 将 RAM 中第 2、 3、 4 字节的上下限温度报警数据和配置寄存器内容复制到 EEPROM 中。 读 EERAM( 0B8H) 将 EEPROM上下限温度报警数据和配置寄存器内容恢复到 RAM中得第 2、3、 4 字节。 读电源供电方式( 0
21、B4H) 了解 DS18B20 的供电方式 表 2.6 整个流程的操作指令解释 主机模式 数据(低位在前) 说明 发送 Reset 主机发送复位信号 接收 Presence Pulse 主机接收来自 DS18B20 的应答信号 发送 CCH 跳过 ROM 指令,主机直接对总线上唯一的 DS18B20 操作 发送 3 个字节数据 报警上下限、配置寄存器的值 发送 Reset 主机发送复位信号 接收 Presence Pulse 主机接收来自 DS18B20 的应答信号 发送 CCH 跳过 ROM 指令,主机直接对总线上唯一的 DS18B20 操作 发送 48H 把报警上下限、配置寄存器的值写入
22、EEPROM 发送 Reset 主机发送复位信号 接收 Presence Pulse 主机接收来自 DS18B20 的应答信号 发送 CCH 跳过 ROM 指令,主机直接对总线上唯一的 DS18B20 操作 发送 44H 主机发送转换命令 发送 Reset 主机发送复位信号 接收 Presence Pulse 主机接收来自 DS18B20 的应答信号 发送 CCH 跳过 ROM 指令,主机直接对总线上唯一的 DS18B20 操作 发送 BEH 主机读取指令 接收 9 个或少于 9 字节的数据 DS18B20 发送转换结果等 9 个字节数据给主机。主机可以在任何时候通过复位信号中断数据通信,只读
23、取关心的数据。 河南师范大学本科毕业论文 - 9 - 比如进行如下操作:先送报警上下限值,并写入 EEPROM,然后让 DS18B20 做温度转换,最后读取温度值。整个流程的操作解释指令如上表所示。 2.1.4 DS18B20 电路连接 由于 DS18B20 工作在单总线方式,其硬件接口非常简单,仅需利用系 统的一条 I/O线与DS18B20 的数据总线相连即可,如图 2.5 所示。 图 2.5 DS18B20 基本电路连接图 DS18B20 定期进行温度转换,并把此温度转换数据定期发送给 PC 机进行处理。 2.1.5 DS18B20 使用中的注意事项 1)由于 DS18B20 与微处理器间
24、采用无时钟同步的串行数据传送,因此在对 DS18B20 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。 2)总线上的 DS18B20数量较少时,典型的应用连接就能胜任。但是当单总线上所挂 DS18B20超过 8 个时,就需要解决微处理器 的总线驱动问题。 3)连接 DS18B20 的总线电缆是有长度限制的。对于普通信号电缆传输长度不宜超过 50m;对于双绞线带屏蔽电缆的传输长度也不能超过 150m,因此在用 DS18B20 进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 4)在 DS18B20 测温程序设计中,向 DS18B20 发出温度转换命令后,程序总要等
25、待, DS18B20的返回信号,一旦某个 DS18B20 接触不好或断线,在程序读该 DS18B20 时,将没有返回信号,程序进入死循环。所以程序设计中要对此进行一定的处理,比如可以加入超时退出等可 靠行设计。 2.2 单片机系统 2.2.1 单片机 AT89S52 的主要性能 (1) 与 MCS-51单片机产品兼容 (2) 8K字节在系统可编程 Flash存储器 (3) 1000次擦写周期 (4) 全静态操作: 0Hz 33Hz 河南师范大学本科毕业论文 - 10 - (5) 三级加密程序存储器 (6) 32个可编程 I/O口线 (7) 三个 16位定时器 /计数器 (8) 八个中断源 (9
26、) 全双工 UART串行通道 (10) 低功耗空闲和掉电模式 (!) 掉电后中断可唤醒 (12) 看门狗定时器 (13) 双数据指针 (14) 掉电标识符 2.2.2 AT89S52 的功能特性描述 AT89S52是一种低功耗、高性能 CMOS8位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方
27、案。 AT89S52具有以下标准功能: 8k字节 Flash, 256字节 RAM32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器 /计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下, CPU停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.2.3 AT89S52 的引脚结构 图 2.6AT89S52 的结构 1、 AT89S52 的结构如图 2.6 所示。