基于单片机的多点无线温度监控系统设计-毕业设计_第1页
基于单片机的多点无线温度监控系统设计-毕业设计_第2页
基于单片机的多点无线温度监控系统设计-毕业设计_第3页
基于单片机的多点无线温度监控系统设计-毕业设计_第4页
基于单片机的多点无线温度监控系统设计-毕业设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 基于单片机的多点无线温度监控系统设计 前言 在工业生产中 电流 电压 温度 压力 流量 流速和开关量都是常用的主要 被控参数 其中 温度控制也越来越重要 在工业生产的很多领域中 人们都需要对 各类加热炉 热处理炉 反应炉和锅炉中的温度进行检测和控制 采用单片机对温度 进行控制不仅具有控制方便 简单和灵活性大等优点 而且可以大幅度提高被控温度 的技术指标 从而能够大大的提高产品的质量和数量 因此 单片机对温度的控制问 题是一个工业生产中经常会遇到的控制问题 单片机是一种集 CPU RAM ROM I O 接口和中断系统等部分于一体的器件 只需 要外加电源和晶振就可实现对数字信息的处理和控制 因此 单片机广泛用于现代工 业控制中 随着 信息时代 的到来 作为获取信息的手段 传感器技术得到了显著的进 步 其应用领域越来越广泛 对其要求越来越高 需求越来越迫切 传感器技术已成 为衡量一个国家科学技术发展水平的重要标志之一 因此 了解并掌握各类传感器的 基本结构 工作原理及特性是非常重要的 由于传感器能将各种物理量 化学量和生物量等信号转变为电信号 使得人们可 以利用计算机实现自动测量 信息处理和自动控制 但是它们都不同程度地存在温漂 和非线性等影响因素 传感器主要用于测量和控制系统 它的性能好坏直接影响系统 的性能 因此 不仅必须掌握各类传感器的结构 原理及其性能指标 还必须懂得传 感器经过适当的接口电路调整才能满足信号的处理 显示和控制的要求 而且只有通 过对传感器应用实例的原理和智能传感器实例的分析了解 才能将传感器和信息通信 和信息处理结合起来 适应传感器的生产 研制 开发和应用 另一方面 传感器的 被测信号来自于各个应用领域 每个领域都为了改革生产力 提高工效和时效 各自 都在开发研制适合应用的传感器 于是种类繁多的新型传感器及传感器系统不断涌现 温度传感器是其中重要的一类传感器 其发展速度之快 以及其应用之广 并且还有 很大潜力 为了提高对传感器的认识和了解 尤其是对温度传感器的深入研究以及其用法与 用途 基于实用 广泛和典型的原则而设计了本系统 本文利用单片机结合传感器技 术而开发设计了这一温度监控系统 文中传感器理论与单片机实际应用有机结合 详 细地讲述了基于单片机 AT89S51 和温度传感器 DS18B20 的温度控制系统的设计方案 与软硬件实现方案 系统包括数据采集模块 单片机控制模块 显示模块和温度设置 2 模块 驱动电路五个部分 文中对每个部分功能 实现过程作了详细介绍 本设计应 用性比较强 系统稍微改装可以作为生物培养液温度监控系统 可以做热水器温度调 节系统 实验室温度监控系统等等 设计后的系统具有操作方便 控制灵活等优点 1 概述 1 1 课题研究的目的及意义 随着社会的发展 温度的测量及控制变得越来越重要 温度是生产过程和科学实 验中普遍而且重要的物理参数 在工业生产过程中为了高效地进行生产 必须对生产 工艺过程中的主要参数 如温度 压力 流量 速度等进行有效的控制 其中温度的 控制在生产过程中占有相当大的比例 准确测量和有效控制温度是优质 高产 低耗 和安全生产的重要条件 在工业的研制和生产中 为了保证生产过程的稳定运行并提 高控制精度 采用微电子技术是重要的途径 它的作用主要是改善劳动条件 节约能 源 防止生产和设备事故 以获得好的技术指标和经济效益 本课题采用 51 单片机来对温度进行控制 不仅具有控制方便 组态简单和灵活性 大等优点 而且可以大幅度提高被控温度的技术指标 作为控制系统中的一个典型实验设计 单片机温度控制系统综合运用了微机原理 自动控制原理 传感器原理 模拟电子技术 数字控制技术 键盘显示技术等诸多方 面的知识 是对所学知识的一次综合测试 1 2 课题研究现状分析 由于现代工艺越来越多的需要对实时温度进行监测和控制 而且需要的精度越来 越高 所以温度控制系统国内外许多有关人员的重视 得到了十分广泛的应用 温度 控制系统发展迅速 而且成果显著 由于单片微处理器的性能日益提高 价格又不断 降低 使其性能价格比的优势非常明显 因此 如何将单片微处理器应用到锅炉温度 自动控制领域 为越来越多的生产厂家所重视 目前先进国家各种炉窑自动化水平较高 装备有完善的检测仪表和计算机控制系 统 其计算机控制系统已采用集散系统和分布式系统的形式 大部分配有先进的控制 算法 能够获得较好的工艺性能指标 单片微型计算机是随着超大规模集成电路的技 术的发展而诞生的 由于它具有体积小 功能强 性价比高等优点 所以广泛应用于 电子仪表 家用电器 节能装置 军事装置 机器人 工业控制等诸多领域 使产品 小型化 智能化 既提高了产品的功能和质量又降低了成本 简化了设计 1 3 技术指标 3 设计并制作一个基于单片机的温度控制系统 能够对炉温进行控制 炉温可以在 一定范围内由人工设定 并能在炉温变化时实现自动控制 若测量值高于温度设定范 围 由单片机发出控制信号 经过驱动电路使加热器停止工作 当温度低于设定值时 单片机发出一个控制信号 启动加热器 通过继电器的反复开启和关闭 使炉温保持 在设定的温度范围内 温度设定范围为 0 99 最小区分度为 1 温度控制的误差 1 能够用数码管精确显示当前实际温度值 按键控制 设置复位键 加一键 减一键 越限报警 2 总体设计 2 1 系统设计方案论证 实现温度控制的方法主要有以下几种 方案一 采用纯硬件的闭环控制系统 该系统的优点在于速度较快 但可靠性比 较差控制精度比较低 灵活性小 线路复杂 调试 安装都不方便 且要实现题目所 有的要求难度较大 方案二 FPGA CPLD 或采用带有 IP 内核的 FPGA CPLD 方式 即用 FPGA CPLD 完成 采集 存储 显示及 A D 等功能 由 IP 核实现人机交互及信号测量分析等功能 这种 方案的优点在于系统结构紧凑 可以实现复杂的测量与与控制 操作方便 缺点是调 试过程复杂 成本较高 方案三 单片机与高精度温度传感器结合的方式 即用单片机完成人机界面 系 统控制 信号分析处理 由前端温度传感器完成信号的采集与转换 这种方案克服了 方案一 二的缺点 所以本课题任务是基于单片机和温度传感器实现对温度的控制 2 2 系统结构框图 系统主要包括数据采集模块 单片机控制模块 显示模块和温度设置模块 驱动 电路五个部分 系统框图如图 2 2 1 所示 4 图 2 2 1 系统框图 其中数据采集模块负责实时采集温度数据 采集到的温度数据传输到单片机 由 单片机处理后的数据送显示部分显示 设置模块可设置预定温度 当检测到的温度低 于设定温度时 单片机控制驱动电路启动加热 并发出报警声 当检测温度高于设定 温度时 停止加热 3 硬件设计 3 1 元器件的选择 3 1 1 单片机选择 单片机的选择在整个系统设计中至关重要 要满足大内存 高速率 通用性 价 格便宜等要求 本课题选择 AT89S51 作为主控芯片 AT89S51 是一个低功耗 高性能 CMOS 8 位单片机 片内含 4k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储器 器件采用 ATMEL 公司的高密度 非易失性存储技术制造 兼容标准 MCS 51 指令系统及 80C51 引 脚结构 芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元 功能强大的微型 计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案 AT89S51 芯 片具有以下特性 指令集和芯片引脚与 Intel 公司的 8051 兼容 4KB 片内在系统可编程 Flash 程序存储器 时钟频率为 0 33MHz 128 字节片内随机读写存储器 RAM 32 个可编程输入 输出引脚 2 个 16 位定时 计数器 温度传感器 单 片 机 键盘控制 复位电路 显示电路 报警电路 控制电路 5 6 个中断源 2 级优先级 全双工串行通信接口 监视定时器 2 个数据指针 AT89S51 单片机的 40 个引脚中有 2 个专用于主电源引脚 2 个外接晶振的引脚 4 个控制或与其它电源复用的引脚 以及 32 条输入输出 I O 引脚 电源引脚 Vcc 和 Vss Vcc 40 脚 接 5V 电源正端 Vss 20 脚 接 5V 电源正端 外接晶振引脚 XTAL1 和 XTAL2 XTAL1 19 脚 接外部石英晶体的一端 在单片机内部 它是一个反相放大器的 输入端 这个放大器构成采用外部时钟时 对于 HMOS 单片机 该引脚接地 对于 CHOMS 单片机 该引脚作为外部振荡信号的输入端 XTAL2 18 脚 接外部晶体的另一端 在单片机内部 接至片内振荡器的反相放 大器的输出端 当采用外部时钟时 对于 HMOS 单片机 该引脚作为外部振荡信号的输 入端 对于 CHMOS 芯片 该引脚悬空不接 控制信号或与其它电源复用引脚有 RST VPD ALE P PSE 等 4 种形式 RST VPD 9 脚 RST 即为 RESET VPD 为备用电源 所以该引脚为单片机的上电 复位或掉电保护端 当单片机振荡器工作时 该引脚上出现持续两个机器周期的高电 平 就可实现复位操作 使单片机复位到初始状态 当 VCC 发生故障 降低到低电平规定值或掉电时 该引脚可接上备用电源 VPD 5V 为内部 RAM 供电 以保证 RAM 中的数据不丢失 ALE P 30 脚 当访问外部存储器时 ALE 允许地址锁存信号 以每机器周 期两次的信号输出 用于锁存出现在 P0 口的地址信号 PSEN 29 脚 片外程序存储器读选通输出端 低电平有效 当从外部程序存储器读 取指令或常数期间 每个机器周期 PESN 两次有效 以通过数据总线口读回指令或常数 当访问外部数据存储器期间 PESN 信号将不出现 EA Vpp 31 脚 EA 为访问外部程序储器控制信号 低电平有效 当 EA 端保持 高电平时 单片机访问片内程序存储器 4KB MS 52 子系列为 8KB 若超出该范围时 自动转去执行外部程序存储器的程序 当 EA 端保持低电平时 无论片内有无程序存储 器 均只访问外部程序存储器 对于片内含有 EPROM 的单片机 在 EPROM 编程期间 6 该引脚用于接 21V 的编程电源 Vpp 输入 输出 I O 引脚 P0 口 P1 口 P2 口及 P3 口 P0 口 39 脚 22 脚 这 8 条引脚有两种不同功能 分别适用于两种不同情况 第一种情况是 89S51 不带片外存储器 P0 口可以作为通用 I O 口使用 P0 0 P0 7 用 于传送 CPU 的输入 输出数据 第二种情况是 89S51 带片外存储器 P0 0 P0 7 在 CPU 访问片外存储器时用于传送片外存储器的低 8 位地址 然后传送 CPU 对片外存储器的 读写数据 P1 口 1 脚 8 脚 这 8 条引脚和 P0 口的 8 条引脚类似 P1 7 为最高位 P1 0 为最低位 当 P1 口作为通用 I O 口使用时 P1 0 P1 7 的功能和 P0 口的第一功能相同 也用于传送用户的输入和输出数据 P2 口 21 脚 28 脚 这组引脚的第一功能和上述两组引脚的第一功能相同 既 它可以作为通用 I O 口使用 P3 口 10 脚 17 脚 P3 0 P3 7 统称为 P3 口 而且 P3 口的每一条引脚均可 独立定义为第 1 功能的输入输出或第 2 功能 P3 口的第 2 功能见表 3 1 1 1 表 3 1 1 1 单片机 P3 口管脚第 2 功能 引脚第 2 功能 P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 RXD 串行口输入端 0 TXD 串行口输出端 INT0 部中断 0 请求输入端 低电平有效 INT1 中断 1 请求输入端 低电平有效 T0 时器 计数器 0 计数脉冲端 T1 时器 计数器 1 数脉冲端 WR 部数据存储器写选通信号输出端 低电平有 效 RD 部数据存储器读选通信号输出端 低电平有 效 7 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 IN T0 12 IN T1 13 T0 14 T1 15 P 10 1 P 11 2 P 12 3 P 13 4 P 14 5 P 15 6 P 16 7 P 17 8 P 00 39 P 01 38 P 02 37 P 03 36 P 04 35 P 05 34 P 06 33 P 07 32 P 20 21 P 21 22 P 22 23 P 23 24 P 24 25 P 25 26 P 26 27 P 27 28 P SEN 29 ALE P 30 TXD 11 RXD 10 VSS 20 VCC 40 AT89S51 T2 T2EX RXD TXD P 3 2 P 3 3 P 3 4 P 3 5 P 3 6 P 3 7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A15 A14 A13 A12 A11 A10 A9 A8 AT89S51 单片机引脚图如图 3 1 1 1 所示 图 3 1 1 1 单片机引脚图 3 1 2 传感器选择 本系统采用 DALLAS 半导体公司生产的一线式数字温度传感器 DS18B20 采集温度数 据 测控系统和大型设备中 它具有体积小 接口方便 传输距离远等特点 DS18B20 的性能特点 采用单总线专用技术 直接输出被测温度值 9 位二进制数 含符号位 测温范围为 55 125 测量分辨率为 0 0625 DS18B20 内部结构主要由四部分组成 64 位光刻 ROM 温度传感器 非挥发的温度报 警触发器 TH 和 TL 高速暂存器 DS18B20 的管脚排列如图 3 1 2 2 所示 图 3 1 2 2 DS18B20 引脚分布图 DS18B20 高速暂存器共 9 个存存单元 如表 3 1 2 1 所示 8 表 3 1 2 1 DS18B20 高速暂存器 序 号 寄存器名称作 用序号寄存器名称作 用 0 1 2 3 温度低字节 温度高字节 TH 用户字节 1 HL 用户字节 2 以 16 位补码形式存 放 以 16 位补码形式存 放 存放温度上限 存放温度下限 4 5 6 7 8 保留字节 1 2 计数器余值 计数器 CRC 以 12 位转化为例说明温度高低字节存放形式及计算 12 位转化后得到的 12 位数 据 存储在 18B20 的两个高低两个 8 位的 RAM 中 二进制中的前面 5 位是符号位 如 果测得的温度大于 0 这 5 位为 0 只要将测到的数值乘于 0 0625 即可得到实际温度 如果温度小于 0 这 5 位为 1 测到的数值需要取反加 1 再乘于 0 0625 才能得到实际 温度 温度由 DALLAS 公司生产的一线式数字温度传感器 DS18B20 采集 DS18B20 测温 范围为 55 C 125 C 测温分辨率可达 0 0625 C 被测温度用符号扩展的 16 位 补码形式串行输出 CPU 只需一根端口线就能与诸多 DS18B20 通信 公司生产的一线 式数字温度传感器 DS18B20 采集 DS18B20 测温范围为 55 C 125 C 测温分辨率 可达 0 0625 C 被测温度用符号扩展的 16 位补码形式串行输出 在硬件上 DS18B20 与单片机的连接有两种方法 一种是 Vcc 接外部电源 GND 接 地 I O 与单片机的 I O 线相连 另一种是用寄生电源供电 此时 UDD GND 接地 I O 接单片机 I O 无论是内部寄生电源还是外部供电 I O 口线要接 5K 左右的上拉电 阻 DS18B20 有六条控制命令 如表 3 1 2 3 所示 表 3 1 2 3 DS18B20 控制命令 指 令约定代 码 操 作 说 明 温度转换 44H 启动 DS18B20 进行温度转换 9 读暂存器 写暂存器 复制暂存器 重新调 E2RAM 读电源供电方 式 BEH 4EH 48H B8H B4H 读暂存器 9 个字节内容 将数据写入暂存器的 TH TL 字节 把暂存器的 TH TL 字节写到 E2RAM 中 把 E2RAM 中的 TH TL 字节写到暂存器 TH TL 字节 启动 DS18B20 发送电源供电方式的信号给主 CPU CPU 对 DS18B20 的访问流程是 先对 DS18B20 初始化 再进行 ROM 操作命令 最后 才能对存储器操作 数据操作 DS18B20 每一步操作都要遵循严格的工作时序和通信协 议 如主机控制 DS18B 须经三个步骤 每一次读写之前都要对 DS18B20 进行复位 复 位成功后发送一条 ROM 指令 最后发送 RAM 指令 这样才能对 DS18B20 进行预定的操 作 3 2 单片机控制模块 控制模块是整个设计方案的核心 它控制了温度的采集 处理与显示 温度值的 设定与温度越限时控制电路的启动 本控制模块由单片机 AT89S51 及其外围电路组成 电路如图 3 2 1 所示 RST 9 P3 0 RX D 10 P3 1 TX D 11 P3 4 T0 14 X T A L2 18 X T A L1 19 GND 20 V CC 40 EA 31 P0 0 39 P0 1 38 P0 2 37 U1 A T 89S51 R38 8 2K R37 51 C5 10uF S2 SW PB 5V C6 30P C7 30P Y 1 12M 5V P0 2 图 3 2 1 单片机控制模块电路 该电路采用按键加上电复位 S2 为复位按键 复位按键按下后 复位端通过 51 的小电阻与电源接通 迅速放电 使 RST 引脚为高电平 复位按键弹起后 电源通过 8 2K 的电阻对 10K F 的电容 C5 重新充电 RST 引脚端出现复位正脉冲 10 AT89S51 内部有一个高增益反相放大器 用于构成振荡器 但要形成时钟脉冲 外部 还需附加电路 本设计采用内部时钟方式 利用芯片内部的振荡器 然后在引脚 XTAL1 和 XTAL2 两端跨接晶体振荡器 就构成了稳定的自激振荡器 发出的脉冲直接送入内部时钟 电路 C6 和 C7 的值通常选择为 30pF 左右 晶振 Y1 选择 12MHz 为了减小寄生电容 更好 地保证振荡器稳定 可靠地工作 振荡器电容应尽可能安装得与单片机引脚 XTAL1 和 XTAL2 靠近 单片机的 31 脚 EA 接 5V 电源 表示允许使用片内 ROM 3 3 温度数据采集模块 温度由 DALLAS 公司生产的一线式数字温度传感器 DS18B20 采集 DS18B20 测温 范围为 55 C 125 C 测温分辨率可达 0 0625 C 被测温度用符号扩展的 16 位 补码形式串行输出 CPU 只需一根端口线就能与诸多 DS18B20 通信 占用微处理器的 端口较少 可节省大量的引线和逻辑电路 本设计采用三引脚 PR 35 封装的 DS18B20 其引脚图见图 3 Vcc 接外部 5V 电源 GND 接地 I O 与单片机的 P3 4 T0 引脚相连 3 4 显示模块 显示部分采用 LED 静态显示方式 共阴极的数码管的公共端 COM 连接在一起接地 每位的段选线与 74HC164 的 8 位并口相连 只要在该位的段选线上保持段选码电平 该位就能保持相应的显示字符 考虑到节约单片机的 I O 资源 因而采用串行接口方 式 外接 8 位移位寄存器 74HC164 构成显示电路 电路如图 3 4 1 所示 11 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C1 74HC164 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C2 74HC164 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D3 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D2 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D4 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D1 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C3 74HC164 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C4 74HC164 R1R3R2R4R5R6R7R33 220 8 R8R9R10 R11 R12 R13 R14 R34 220 8 R15 R16 R17 R18 R19 R20 R21 R35 220 8 R22 R23 R24 R25 R26 R27 R28 R36 220 8 R29 2K 5V 5V 5V 5V 5V P3 1 P3 0 图 3 4 1 显示模块电路 74HC164 的逻辑功能介绍如下 当清除端 CLEAR 为低电平时 输出端 QA QH 均为低电平 串行数据输入 端 A B 可控制数据当 A B 有一个为高电平 则另一个就允许输入数据 并在 CLOCK 上升沿作用下决定 Q0 的状态 H 高电平 L 低电平 X 任意电平 低到高电平跳变 QA0 QB0 QH0 规定的 稳态条件建立前的电平 QAn QGn 时钟最近的 前的电平 12 图 3 4 2 74HC164 时序图 在单片机的 TXD P3 1 运行时钟信号 将显示数据由 RXD P3 0 口串行输出至 74HC164 的 A B 端 3 5 温度设置模块 温度设置部分采用独立式按键 S4 为温度值加 1 按键 与单片机的 P0 0 口相连 S3 为温度值减 1 按键 与单片机的 P0 1 口相连 当没有键按下时 单片机与之相连的 输入口线为高电平 当任何一个按键按下时 与之相连的 输入口线被置为低电平 产 生外中断条件 在 中断服务程序中读取键盘值 温度设置电路如图 3 5 1 所示 13 R30 2K R31 2K S3 DEC S4 A DD 5V P0 0 P0 1 图 3 5 1 温度设置模块电路 3 6 控制电路 控制电路与单片机的 P0 2 口相连 由于单片机输出控制信号非常微弱 需要用三 极管来驱动外围电路 三极管选用 NPN 型的 9014 当检测温度低于设定温度时 在单 片机的 P0 2 口输出高电平控制信号 使三极管 9014 导通 使继电器两控制端产生压 差 从而使继电器吸合 常开触点接通 控制外部电路对锅炉进行加热 当检测温度 高于设定温度时 单片机输出低电平信号 三极管截止 继电器不吸合 外部电路停 止加热 控制电路电路图如图 3 6 1 所示 R39 1K R32 2K Q1 9014P0 2 5V 1 3 2 5 4 Q2 JDQ 5V D1 IN4007 图 3 6 1 控制电路 4 软件设计 系统软件要实现的功能如下 14 利用 4 只共阴数码管 LED1 显示检测温度十位 LED2 显示检测温度个位 LED3 显 示设定温度十位 LED4 显示设定温度个位 显示分辨率为 1 单片机复位后默认设 定温度为 40 当每按下一次设定温度上升按钮 ADD 时 设定温度增加 1 最高为 120 当每按下一次设定温度下降按钮 DEC 时 设定温度减少 1 最低设定为 0 当设定温度大于检测温度时加热输出 当设定温度小于检测温度时加热停止 4 1 主程序流程图 温度控制程序的设计应考虑如下 键盘扫描 键码识别和温度显示 炉温采样 数据处理 越限报警和处理 系统流程图如图 4 1 1 所示 减 加 小于 与设定温 度比较 开始 初始化 停止加热 检测温度 显 示 判断按键 设定值加设定值减 显 示 大于 启动加热 图 4 1 1 系统流程图 4 2 温度传感器 DS18B20 工作过程及时序 15 DS18B20 工作过程中的协议如下 初始化 ROM 操作命令 存储器操作命令 处理数据 4 2 1 初始化时序 时序如图 4 2 1 1 所示 主机总线发送复位脉冲 最短为 480 S 最高时间为 960 S 的低电平信号 接着再释放总线 置总线为高电平 并进入接收状态 DS18B20 在检测到总线的上升沿后等待 15 60 S 发出器件存在脉冲 低电平持续 60 240 S 初始化程序如下所示 INIT SETBP3 4 NOP CLR P3 4 MOV R0 0FFH DJNZR0 SETBP3 4 MOV R0 100 LIU JNBP3 4 IT3 DJNZR0 LIU CLR 38H SJMPIT7 IT3 SETB38H IT7 MOV R0 240 DJNZR0 SETBP3 4 RET 16 单片机主 动释放 60 240 S 15 60 S480 960 S 图 4 2 1 1 初始化时序图 此初始化程序功能为 检测 DS18B20 是否存在 如存在 将位地址 38H 置 1 如不 存在 将位地址 38H 清零 4 2 2 写时序 单片机写 DS18B20 的时序如图 4 2 2 2 所示 当主机总线从高拉至低电平时就产 生写时间隙 DS18B20 在检测到下降沿后 15 S 时开始采样总线上的电平 所以 15 S 之内应将所需写的位送到总线上 DS18B20 再 15 60 S 间对总线采样 每写一位总时 间必须在 60 120 S 之间完成 若低电平写入的位是 0 高电平写入的位是 1 连续 写时位间的间隙应大于 1 S 程序如下所示 WRITER MOV R0 8 WR1 CLR P3 4 MOV R4 6 DJNZR4 RRC A MOV P3 4 C MOV R4 40 DJNZR4 SETBP3 4 NOP DJNZR0 WR1 SETBP3 4 RET 17 T 60 S 单片机采样第二位 启动脉冲 T 60 S 单片机采样第一位启动脉冲 写 0 60 120 S 写 1 DS18B20 在检测到下降沿 15 S 后采样 采样时间为 15 60 S 15 60 120 S DS18B20 检测到下 降沿 15 S 后采样 15 S 图 4 2 2 1 单片机写 DS18B20 时序图 4 2 3 读时序 单片机读 DS18B20 的时序如图 4 2 3 1 所示 单片机主动产生一个下降沿的启动 信号 并维持低电平大于 1 S 后释放总线 15 S 后 DS18B20 占主动权 DS18B20 会 将数据按位放在总线上 低位在先 当读取两个字节的温度值时 低字节在先 这 时单片机可读取信号 读取一位的时间应在 60 S 内完成 当需要读取下一位时再产 生下降沿启动信号 图 4 2 3 1 单片机读 DS18B20 的时序图 READ SETBRS0 MOV R4 2 MOV R0 36H RE1 MOV R5 8 RE2 CLR C SETBP3 4 18 NOP NOP CLR P3 4 NOP NOP NOP SETBP3 4 MOV R6 7 DJNZR6 MOV C P3 4 MOV R6 20 DJNZR6 RRC A DJNZR5 RE2 MOV R0 A DEC R0 DJNZR4 RE1 CLR RS0 NOP RET 此程序功能为 读取 DS18B20 A D 转换后的温度值 转换后的二进制存入 36H 35H 单元 默认为 12 位转换 低 8 位存入 36H 单元 高 8 位存入 35H 单元 35H 单元的高 5 位均为符号位 所以判断符号只需判断低 12 位数据的最高位即可 1 表 示为零度以下 0 表示零度以上 实际有效位为 11 位 5 系统调试 5 1 测试环境 环境温度为 23 测试仪器 标准温度计 加热工具 此处选用烧热的电烙铁 制冷工具 此处 选用冰块 5 2 测量方法 19 系统温度测量的准确度 我们将标准温度计和温度控制系统的探头放在一起 选 定若干不同温度点 记录下标准温度计的温度和温度控制系统测量显示的温度进行比 较 设定开启加热温度 改变环境温度 验证检测到的温度高于设定温度时是否停止 加热 检测到的温度小于设定温度时是否启动加热 5 3 测试结果 本系统测量显示温度与标准温度计测量温度对比如表 5 3 1 所示 表 5 3 1 温度测量准确度 标准温度计测量温度 本系统测量显示温度 23 25 30 40 45 60 23 25 30 40 45 60 根据温度测量数据的对比可知 本系统能够准确地测量并显示环境温度 设定不同的开启加热温度 改变温度 系统工作情况如表 5 3 2 所示 表 5 3 2 系统加热测量 设定温度 环境温度 发光二极管 亮 灭 15 15 15 25 25 25 25 10 15 30 20 24 25 30 亮 灭 灭 亮 亮 灭 亮 20 40 40 40 40 30 39 40 50 亮 亮 灭 灭 发光二极管亮表示启动加热 灭表示停止加热 根据表 5 3 2 可知 系统可以自 由设定不同的加热温度 温度设定当环境温度低于设定温度时系统启动加热 当环境 温度高于或等于设定温度时 系统停止加热 经过反复测试 系统温度设定范围为 0 120 最小区分度为 1 温度控制的 误差 1 能够测量并用数码管显示当前实际温度值 通过复位键可以使系统设定温 度还原默认值 通过加一键和减一键可以以 1 步进设置预定温度 环境温度低于设定 温度时 启动加热 红色发光二极管点亮 环境温度高于或等于设定温度时 停止加 热 红色发光二极管灭 达到了课题要求的技术指标 5 结束语 本设计详细介绍了基于单片机 AT89S51 的温度控制系统的设计方案与软硬件实现 系统包括数据采集模块 单片机控制模块 显示模块和温度设置模块 驱动电路五个 部分 文中对每个部分功能 实现过程作了详细介绍 完成了课题既定的任务 达到 了预期的目标 系统具有如下特点 采用智能温度传感器 DS18B20 采集温度数据 简化了硬件电路设计 温度采集数 据更加精准 AT89S51 单片机的采用 有利于功能扩展 电路设计充分考虑了系统可靠性和安全性 本系统没有增加外部存储器 设定温度不能保存 断电复位后必须重新设置温度 采用静态显示方式 从而使用了较多的驱动芯片 增加了硬件电路的复杂性 只使用 两位显示 即显示温度的十位 个位 没有充分发挥 DS18B20 的特性 本设计软件和硬件相结合 有相当大的难度 同时也有很大的实用性 在做毕业 设计的过程中 我的理论和实践水平都有了较大的提高 在本课题的设计中 我熟练 掌握了单片机硬件设计和接口技术 同时对温度传感器的原理及应用有了一定的了解 掌握了各种控制电路及其相关元器件的使用 通过这次毕业设计 我不仅学会如何将 所学专业知识运用到实际生活中 还学会如何克服未知的困难 解决难题的方法 21 四年的本科学习生涯即将结束 在本人做毕业设计中 得到了我的导师 XX 的悉心 指导和无私帮助 他严谨的治学态度和谦和的为人给我留下了深刻的印象 虽然 老师公务繁忙 教学任务重 但在我做毕业设计的每个阶段 从查阅资 料到设计草案的确定和修改 中期检查 后期详细设计 实物制作等整个过程中都给 予了我悉心的指导 在课题实施阶段 感谢实验室的老师 XX 对我的帮助和实验器材 场地的支持 其次要感谢大学四年来所有的授课老师 为我们打下电子专业知识的基础 同时 还要感谢所有的同学们 正是因为有了你们的支持和鼓励 此次毕业设计才会顺利完 成 最后我要深深地感谢我的家人 正是他们含辛茹苦地把我养育成人 在生活和学 习上给予我无尽的爱 理解和支持 才使我时刻充满信心和勇气 克服成长路上的种 种困难 顺利的完成大学学习 还有许许多多给予我学业上鼓励和帮助的师长 朋友 在此无法一一列举 在此 也表示忠心地感谢 大学生活的结束 也是我人生新的生活起点 我将谨记老师们的教诲 将自己的 所学奉献给社会 22 附录 附录 1 系统总原理 23 RST 9 P3 0 RX D 10 P3 1 TX D 11 P3 4 T0 14 X T A L2 18 X T A L1 19 GND 20 V CC 40 EA 31 P0 0 39 P0 1 38 P0 2 37 U1 S51 R38 8 2K R37 51 C5 10uF S2 SW PB 5V GND 1 OUT 2 VCC 3 S1 DS18B20 5V C6 30P C7 30P Y 1 12M 5V R30 2K R31 2K R39 1K R32 2K S3 DEC S4 A DD 5V Q1 C945 P0 2 P0 2 5V 1 3 2 5 4 Q2 JD Q QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C1 74LS164 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C2 74LS164 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D3 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D2 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D4 a bf c g d e DPY7 6 4 2 1 9 10 a b c d e f g 5 dp dp 3 LE D1 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C3 74LS164 QA 3 QB 4 QC 5 QD 6 QE 10 QF 11 QG 12 QH 13 A 1 B 2 CLK 8 CLR 9 GND 7 VCC 14 C4 74LS164 R1R3R2R4R5R6R7R33 220 8 R8R9R10 R11 R12 R13 R14 R34 220 8 R15 R16 R17 R18 R19 R20 R21 R35 220 8 R22 R23 R24 R25 R26 R27 R28 R36 220 8 R29 2K 5V 5V 5V 5V 5V 5V D1 DIODE 1 2 J1 CON2 5V RXD RXD TXD TXD 附录 2 系统 PCB 图 24 附录 3 源程序清单 主程序及初始化程序 25 KEY ADDBIT P0 0 KEY DECBIT P0 1 OUTPUT BIT P0 2 ORG0000H LJMPMAIN ORG0100H MAIN MOVSP 60H MOV4AH 15 单片机复位后默认设定温度为 15 MOV4BH 0 CLROUTPUT MAAI LCALLTEMPER1 LCALLDISPLAY LCALLKEYSCAN LCALLOUT SJMPMAAI DS18B20 初始化程序 TEMPER1 LCALL INIT JNB38H TEMPER1 MOVA 0CCH LCALLWRITER MOVA 44H LCALLWRITER TE3 LCALLINIT MOVA 0CCH LCALLWRITER MOVA 0BEH LCALLWRITER LCALLREAD NOP RET INIT SETBP3 4 置 1 26 NOP CLRP3 4 清零 MOVR0 0FFH DJNZR0 SETBP3 4 MOVR0 100 LIU JNBP3 4 IT3 DJNZR0 LIU CLR38H SJMPIT7 IT3 SETB38H IT7 MOVR0 240 DJNZR0 SETBP3 4 RET DS18B20 写数据 WRITER MOVR0 8 WR1 CLRP3 4 MOVR4 6 DJNZR4 RRCA MOVP3 4 C MOVR4 40 DJNZR4 SETBP3 4 NOP DJNZR0 WR1 SETBP3 4 RET DS18B20 读数据 READ SETBRS0 选择工作寄存器组 1 27 MOVR4 2 MOVR0 36H 从 36H 单元开始存 RE1 MOVR5 8 RE2 CLRC SETBP3 4 NOP NOP CLRP3 4 NOP NOP NOP SETBP3 4 MOVR6 7 DJNZR6 MOVC P3 4 MOVR6 20 DJNZR6 RRCA DJNZR5 RE2 MOV R0 A DECR0 DJNZR4 RE1 CLRRS0 NOP RET 显示程序 DISPLAY CLR7FH CLR7EH MOVA 36H ANLA 0FH MOV40H A 28 MOVA 36H SWAPA ANLA 0FH MOV41H A MOVA 35H SWAPA ANLA 0F0H ORLA 41H JBACC 7 FU MOV41H A MOVB 100 DIVAB MOV53H A MOVA B MOVB 10 DIVAB MOV52H A MOV51H B MOVA 40H CJNEA 8 PD MOV50H 5 PD JCXIAO MOV50H 5 SJMPEXIT XIAO MOV50H 0 EXIT AJMPEXIT1 FU MOV41H A MOVA 40H CPLA ANLA 0FH INCA 29 JBACC 4 FU1 SJMPFU5 FU1 SETB7FH ANLA 0FH FU5 CJNEA 8 FU2 MOV50H 5 SJMPFU3 FU2 JCFU4 MOV50H 5 SJMPFU3 FU4 MOV50H 0 FU3 MOVA 41H CPLA MOVC 7FH ADDCA 0 SETB7EH MOVB 10 DIVAB MOV52H A 取温度十位送 52H MOV51H B 取温度个位送 51H EXIT1 MOVA 4AH MOVB 100 DIVAB MOV4FH A MOVA B MOVB 10 DIVAB MOV4EH A 取得设定温度十位送 4EH 单元 MOV4CH B 取得设定温度个位送 4CH 单元 MOVDPTR TAB MOVA 4CH 取得设定温度个位段码并通过串口送出显示 30 MOVCA A DPTR MOVSBUF A JNBTI CLRTI MOVA 4EH 取得设定温度十位段码并通过串口送出显示 MOVCA A DPTR MOVSBUF A JNBTI CLRTI MOVA 51H 取得检测温度个位段码并通过串口送出显示 MOVCA A DPTR MOVSBUF A JNBTI CLRTI MOVA 52H 取得检测温度十位段码并通过串口送出显示 MOVCA A DPTR MOVSBUF A JNBTI CLRTI SJMPEXIT3 EXIT2 MOVA 40H MOVSBUF A JN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论