基于51单片机的温度控制系统

上传人:gbs****77 文档编号:10717853 上传时间:2020-04-14 格式:DOC 页数:41 大小:484.50KB
返回 下载 相关 举报
基于51单片机的温度控制系统_第1页
第1页 / 共41页
基于51单片机的温度控制系统_第2页
第2页 / 共41页
基于51单片机的温度控制系统_第3页
第3页 / 共41页
点击查看更多>>
资源描述
I 毕业论文设计 基于51单片机的温度控制系统 II 摘要 在日常生活中温度在我们身边无时不在 温度的控制和应用在各个领域都有重要的 作用 很多行业中都有大量的用电加热设备 和温度控制设备 如用于报警的温度自动 报警系统 热处理的加热炉 用于融化金属的坩锅电阻炉及各种不同用途的温度箱等 这些都采用单片机技术 利用单片机语言程序对它们进行控制 而单片机技术具有控制 和操作使用方便 结构简单便于修改和维护 灵活性大且具有一定的智能性等特点 可 以精确的控 制技术标准 提高了温控指标 也大大的提高了产品的质量和性能 由于单片机技术的优点突出 智能化温度控制技术正被广泛地采用 本文介绍了基 于单片机 AT89C51 的温度控制系统的设计方案与软硬件实现 采用温度传感器 DS18B20 采集温度数据 7 段数码管显示温度数据 按键设置温度上下限 当温度低于设定的下限 时 点亮绿色发光二极管 当温度高于设定的上限时 点亮红色发光二极管 给出了系 统总体框架 程序流程图和 Protel 原理图 并在硬件平台上实现了所设计功能 关键词 单片机 温度控制系统 温度传感器 III Abstract In daily life the temperature in our side the ever present the control of the temperature and the application in various fields all have important role Many industry there are a large number of electric heating equipment and the temperature control equipment such as used for alarm automatic temperature alarm systems heat treatment furnace used to melt metal crucible resistance furnace and all kinds of different USES of temperature box and so on these using single chip microcomputer using single chip computer language program to control them And single chip microcomputer technology has control and convenient in operation easy to modify and maintenance of simple structure flexibility is large and has some of the intelligence and other characteristics we can accurately control technology standard to improve the temperature control index also greatly improve the quality of the products and performance Because of the advantages of the single chip microcomputer intelligent temperature control technology outstanding is being widely adopted This paper introduces the temperature control based on single chip microcomputer AT89C51 design scheme of the system and the hardware and software implementation The temperature sensor DS18B20 collection temperature data 7 period of digital pipe display the upper and lower limits of temperature button when temperature below the setting of the lower limit light green leds when the temperature is higher than the set on the limit light red leds Given the system framework and program flow chart and principle chart and in Protel hardware platform to realize the function of the design Keywords SCM Temperature control system Temperature sensors IV 目录 摘要 I ABSTRACT II 第一章 前言 1 1 1 温度控制系统设计发展历史及意义 1 1 2 温度控制系统的目的 1 1 3 温度控制系统完成的功能 1 第二章 总体设计方案 2 2 1 方案一 2 2 2 方案二 2 3 1 DS18B20 简介 5 3 1 1DS18B20 封装与引脚 5 3 1 2 DS18B20 的简单性能 5 3 2 DS18B20 的工作原理 5 3 3 DS18B20 的测温原理 6 3 3 1 测温原理 6 3 3 2 DS18B20 的温度采集过程 9 第四章 单片机接口设计 10 4 1 设计原则 10 4 2 单片机引脚连接 10 4 2 1 单片机引脚图 10 4 2 2 串口引脚 11 第五章 硬件电路设计 12 V 5 1 主要硬件电路设计 12 5 2 软件系统设计 15 5 2 1 软件系统设计 15 5 2 2 程序组成 16 结束语 20 致谢 21 附录 22 参考文献 34 1 第一章 前言 1 1 温度控制系统设计发展历史及意义 温度控制系统广泛应用于社会生活的各个领域 如家电 汽车 材料 电力电子等 常 用的控制电路根据应用场合和所要求的性能指标有所不同 在工业企业中 如何提高温 度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题 这类控 制对象惯性大 滞后现象严重 存在很多不确定的因素 难以建立精确的数学模型 从而导 致控制系统性能不佳 甚至出现控制不稳定 失控现象 传统的继电器调温电路简单实用 但 由于继电器动作频繁 可能会因触点不良而影响正常工作 控制领域还大量采用传统的 PID 控制方式 但 PID 控制对象的模型难以建立 并且当扰动因素不明确时 参数调整不便 仍是普遍存在的问题 而采用数字温度传感器 DS18B20 因其内部集成了 A D 转换器 使 得电路结构更加简单 而且减少了温度测量转换时的精度损失 使得测量温度更加精确 数字温度传感器 DS18B20 只用一个引脚即可与单片机进行通信 大大减少了接线的麻烦 使得单片机更加具有扩展性 由于 DS18B20 芯片的小型化 更加可以通过单跳数据线就 可以和主电路连接 故可以把数字温度传感器 DS18B20 做成探头 探入到狭小的地方 增加了实用性 更能串接多个数字温度传感器 DS18B20 进行范围的温度检测 1 2 温度控制系统的目的 温度控制在日常生活及工业领域应用相当广泛 比如温室 水池 发酵缸 电源等 场所的温度控制 而以往温度控制是由人工完成的而且不够重视 其实在很多场所温度 都需要监控以防止发生意外 针对此问题 本系统设计的目的是实现一种可连续高精度 调温的温度监测和控制系统 实现对温度的实时检测 具有提醒和控制的功能 本设计 的内容是温度测试控制系统 控制对象是温度 它的特点在于应用广泛 功能强大 小 巧美观 便于携带 是一款既实用又廉价的控制系统 1 3 温度控制系统完成的功能 本设计是对温度进行实时监测与控制 设计的温度控制系统实现了基本的温度控制 功能 此设计中温度恒定值设置为 60 上下跳转温度为 1 设计精度值为 0 1 当温 度低于设定下限温度即 59 时 绿灯亮 报警提醒需要外界的加热措施 当温度上升到 上限温度时 停止加温 红灯亮保持温度 当温度高于设定上限温度即 61 时 红灯亮 需要外界采取降温措施 本设计中没有附加外界的加热和降温措施 当温度下降到恒温 度时 停止降温 温度在上下限温度之间时 执行机构不执行 2 第二章 总体设计方案 2 1 方案一 利用温度传感器将温度测出 通过某种电信号传给外部电路产生一种变化 然后由 外部电路控制装置的开启 测温电路的设计 可以使用热敏电阻之类的传感器件利用其 感温效应 如电阻随温度的变化有一个变化的曲线 即利用它的变化特性曲线 温度的 变化使得电阻发生了变化根据欧姆定律 电阻的变化会带来电流或这电压的变化 再将 随被测温度变化的电压或电流采集过来 然后进行模拟信号换成数字信号 A D 转换 将数字信号送入单片机 用单片机进行数据的处理 将温度显示在电路上 这样就可以 将被测温度显示出来 最后还有外围的控制电路 采取一定的措施来控制产生温度的电 路 如加温 降温 保持不动 或者报警 这种设计需要用到 A D 转换电路 感温电路 比较麻烦 设计流程图如图 2 1 传感器温度检测电路 A D 转换电路 单片机处理电路 显示和控制温度 图 2 1 设计流程图 2 2 方案二 利用温度传感器芯片直接将温度数据测出 之后通过单片机程序控制温度的上 下 限值 用外部电路产生显示和控制加热和降 来达到设计的要求 考虑使用温度传感器 结合单片机电路设计 采用一只 DS18B20 温度传感器 直接 读取被测温度值 之后进行转换 依次完成设计要求 比较以上两种方案 很容易看出 采用方案二 电路比较简单 软件设计容易实现 故实际设计中拟采用方案二 在设计中温度的控制流程如图 2 2 所示 3 开 始 初始化 DS18B20 显示当前温度 红灯亮 设定温度恒定值 绿灯亮 判断当前 温度值 超过设定 温度上限 低于设定 温度下限 图 2 2 温度控制整体流程 在本系统的总体电路设计方框图如图 2 3 所示 它由五部分组成 单片机 AT89C51 控 制部分 DS18B20 温度传感器采集部分 3 位 LED 数码管显示部分 按键调节部分 二 极管报警部分 4 DS18B20 温度采集 电路 LED 显示电 路 二极管显示 报警电路 AT89C51 单片机控 制电路 按键调节电路 图 2 3 温度计电路总体设计方案 整个设计总体分为以下几个部分 控制部分 显示部分 温度采集部分 按键控制 部分 1 控制部分 由单片机 AT89C51 芯片在程序控制和外围简单组合电路作用下运行 和控制温度的 上 下限 和 LED 的温度显示 控制发光二级管的亮灭 起到提醒报警功能 2 显示部分 显示电路采用 3 位 7 断共阳 LED 数码管 从 P3 口送数 P0 口扫描 有两部分显示电 路 第一是显示 DS18B20 温度传感器所检测的当前温度 第二是设定恒定的温度值 3 温度采集部分 由 DS18B20 智能温度传感器直接采集被测温度 4 按键控制部分 由三个按键控制调节 用来调节温度的恒定限值 起到预设调节作用 5 第三章 温度传感器 DS18B20 3 1 DS18B20简介 3 1 1 DS18B20封装与引脚 DS18B20 封装与引脚如图 3 1 图 3 1 DS18B20 的封装与引脚 3 1 2 DS18B20的简单性能 1 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线即可实现 微处理器与 DS18B20 的双向通讯 2 测温范围 55 125 固有测温分辨率 0 5 3 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实现多点测温 4 工作电源 3 5V DC 5 在使用中不需要任何外围元件 6 测量结果以 9 12 位数字量方式串行传送 7 不锈钢保护管直径 6 8 适用于 DN15 25 DN40 DN250 各种介质工业管道和狭小空间设备测温 9 标准安装螺纹 M10X1 M12X1 5 G1 2 任选 10 PVC 电缆直接出线或德式球型接线盒出线 便于与其它电器设备连接 3 2 DS18B20的工作原理 DS18B20 内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器 为计 6 数器 1 提供一频率稳定的计数脉冲 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器 为计数器 2 提供一个频 率随温度变化的计数脉冲 初始时 温度寄存器被预置成 55 每当计数器 1 从预置数开始减计数到 0 时 温 度寄存器中寄存的温度值就增加 1 这个过程重复进行 直到计数器 2 计数到 0 时便停 止 初始时 计数器 1 预置的是与 55 相对应的一个预置值 以后计数器 1 每一个循环 的预置数都由斜率累加器提供 为了补偿振荡器温度特性的非线性性 斜率累加器提供 的预置数也随温度相应变化 计数器 1 的预置数也就是在给定温度处使温度寄存器寄存 值增加 1 计数器所需要的计数个数 DS18B20 内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位 在计数 器 2 停止计数后 比较器将计数器 1 中的计数剩余值转换为温度值后与 0 25 进行比较 若低于 0 25 温度寄存器的最低位就置 0 若高于 0 25 最低位就置 1 若高于 0 75 时 温度寄存器的最低位就进位然后置 0 这样 经过比较后所得的温度寄存器的 值就是最终读取的温度值了 其最后位代表 0 5 四舍五入最大量化误差为 1 2LSB 即 0 25 温度寄存器中的温度值以 9 位数据格式表示 最高位为符号位 其余 8 位以二进制 补码形式表示温度值 测温结束时 这 9 位数据转存到暂存存储器的前两个字节中 符 号位占用第一字节 8 位温度数据占据第二字节 DS18B20 测量温度时使用特有的温度测量技术 DS18B20 内部的低温度系数振荡器能 产生稳定的频率信号 同样的 高温度系数振荡器则将被测温度转换成频率信号 当计 数门打开时 DS18B20 进行计数 计数门开通时间由高温度系数振荡器决定 芯片内部还 有斜率累加器 可对频率的非线性度加以补偿 测量结果存入温度寄存器中 一般情况 下的温度值应该为 9 位 但因符号位扩展成高 8 位 所以最后以 16 位补码形式读出 DS18B20 工作过程一般遵循以下协议 初始化 ROM 操作命令 存储器操作命令 处理数据 3 3 DS18B20的测温原理 3 3 1 测温原理 每一片 DSl8B20 在其 ROM 中都存有其唯一的 48 位序列号 在出厂前已写入片内 ROM 中 主机在进入操作程序前必须用读 ROM 33H 命令将该 DSl8B20 的序列号读出 ROM 命 7 令代码见表 3 1 程序可以先跳过 ROM 启动所有 DSl8B20 进行温度变换 之后通过匹配 ROM 再逐一 地读回每个 DSl8B20 的温度数据 DS18B20 的测温原理 低温度系数晶振的振荡频率受温度的影响很小 用于产生固定 频率的脉冲信号送给减法计数器 1 高温度系数晶振随温度变化其震荡频率明显改变 所 产生的信号作为减法计数器 2 的脉冲输入 还隐含着计数门 当计数门打开时 DS18B20 就对低温度系数振荡器产生的时钟脉冲后进行计数 进而完成温度测量 计数门的开启 时间由高温度系数振荡器来决定 每次测量前 首先将 55 所对应的基数分别置入减 法计数器 1 和温度寄存器中 减法计数器 1 和温度寄存器被预置在 55 所对应的一个 基数值 减法计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数 当减法计数器 1 的预置值减到 0 时温度寄存器的值将加 1 减法计数器 1 的预置将重新被装入 减法计 数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数 如此循环直到减法计数器 2 计数到 0 时 停止温度寄存器值的累加 此时温度寄存器中的数值即为所测温度 图 3 2 中的斜率累加器用于补偿和修正测温过程中的非线性 其输出用于修正减法计数器的预 置值 只要计数门仍未关闭就重复上述过程 直至温度寄存器值达到被测温度值 8 表 3 1 ROM 操作命令 指令 约定代码 功 能 读 ROM 33H 读 DS18B20 ROM 中的编码 符合 ROM 55H 发出此命令之后 接着发出 64 位 ROM 编码 访问单线 总线上与该编码相对应的 DS18B20 使之作出响应 为下 一步对该 DS18B20 的读写作准备 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址 为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址 直接向 DS18B20 发温度变换命令 适用于单片工作 告警搜索 命 令 0ECH 执行后 只有温度超过设定值上限或者下限的片子才做 出响应 温度变换 44H 启动 DS18B20 进行温度转换 转换时间最长为 500MS 结果存入内部 9 字节 RAM 中 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的第 3 4 字节写上 下限温度数据命 令 紧跟读命令之后 是传送两字节的数据 复制暂存器 48H 将 E2PRAM 中第 3 4 字节内容复制到 E2PRAM 中 重调 E2PRAM 0BBH 将 E2PRAM 中内容恢复到 RAM 中的第 3 4 字节 读供电方式 0B4H 读 DS18B20 的供电模式 寄生供电时 DS18B20 发送 0 外接电源供电 DS18B20 发送 1 9 计数器 斜率累加器 减到 0 减法计数器 预 置 低温度系数 振 荡 器 高温度系数 振 荡 器 计数比较器 预 置 温度寄存器 减到 0 图 3 2 测温原理内部装置 3 3 2 DS18B20的温度采集过程 由于 DS18B20 单线通信功能是分时完成的 他有严格的时隙概念 因此读写时序很 重要 系统对 DS18B20 的各种操作必须按协议进行 操作协议为 初始化 DS18B20 发复 位脉冲 发 ROM 功能命令 发存储器操作命令 处理数据 温度的采集流程如图 3 3 所示 初始化 DS18B20 跳过 ROM 匹配 温度变换 延时 1S 跳过 ROM 匹配 读暂存器转换成显示码数码管显示 图 3 3 DS18B20 测温流程 10 第四章 单片机接口设计 4 1 设计原则 DS18B20 有 2 种供电方式 一种是直流电源 还有一种是寄生虫方式供电 采用电源 供电方式 此时 DS18B20 的 1 脚接地 2 脚作为信号线 3 脚接电源 电源是利用直流稳 压电源 当 DS18B20 处于写存储器操作和温度 A D 变换操作时 总线上必须有强的上拉 上拉开启时间最大为 10 s 采用寄生电源供电方式是 VDD和 GND 端均接地 由于单线制 只有一根线 因此发送接收口必须是三状态的 主机控制 DS18B20 完成温度转换必须经 过 3 个步骤 初始化 ROM 操作指令 存储器操作指令 4 2 单片机引脚连接 4 2 1 单片机引脚图 单片机引脚如图 4 1 所示 图 4 1 单片机引脚 11 4 2 2 串口引脚 串口引脚的连接图如附录 1 12 第五章 硬件电路设计 5 1 主要硬件电路设计 硬件电路主要包括 显示电路 DS18B20温度传感器检测电路 按键电路 晶振电路 二极管显示报警电路 电源电路 1 显示电路 显示电路采用了7段共阴数码管扫描电路 通过单片机的P0 0到P0 7八个端口接数码 管的八个引脚 数码管的9号引脚接地 用来显示当前检测的温度值 精确度为0 1 如 图5 1所示 节约了单片机的输出端口 便于程序的编写 本设计中还有一组数码管由P2 0到P2 7连接 除接口不同外其他一样 如图5 2 图5 1 显示测量结果电路图 图5 2显示限定温度电路 2 DS18B20温度传感器检测电路 温度采集通过数字化的温度传感器 DS18B20 通过QD接向单片机的P3 0口 13 DS18B20温度传感器电路如图5 3所示 图5 3 温度传感器电路引脚图 3 按键电路 按键电路如图5 4所示 由K2 K3 K4三个按键控制上 下限温度值 P3 1接口接K4 按键 P3 2接口接入K3按键 P3 3接口接K2按键 1 K2温度上下限减少键 减少温度上下限的值 2 K3温度上下限增加键 增加温度上下限的值 3 K4温控开关键 进入温控的切换键 图5 4 按键电路图 4 晶振控制电路 晶振采用的是12MHZ的标准晶振 接入单片机的XTAL1 XTAL2 晶振控制电路如图5 5所示 14 图5 5 晶振控制电路图 5 复位电路 复位电路采用了人工复位的方式 按下按键K1使单片机复位 直接接到单片机的 RESET引脚 复位电路如图5 6所示 图5 6 复位电路图 6 二极管显示报警电路 二极管显示报警电路如图5 7所示 通过单片机的P3 4和P3 5两个端口送出 采用的 是高电平驱动 使其发光发出警告 15 图5 7 二极管显示电路 8 电源部分 电源部分才用的是直流稳压电源 产生5V的稳定直流电压 电源设计部分如图5 8所 示 图5 8 电源部分电路 5 2 软件系统设计 5 2 1 软件系统设计 一个应用系统要完成各项功能 首先必须有较完善的硬件作保证 同时还必须得到 相应设计合理的软件的支持 尤其是微机应用高速发展的今天 许多由硬件完成的工作 都可通过软件编程而代替 甚至有些必须采用很复杂的硬件电路才能完成的工作 用软 件编程有时会变得很简单 如数字滤波 信号处理等 因此充分利用其内部丰富的硬件 资源和软件资源 采用与 C51 系列单片机相对应的 51 汇编语言和结构化程序设计方法进 行软件编程 程序设计语言有三种 机器语言 汇编语言和高级语言 机器语言是机器唯一能 懂 的语言 用汇编语言或高级语言编写的程序 称为源程序 最终都必须翻译成机 器语言的程序 成为目标程序 计算机才能 看懂 然后逐一执行 16 高级语言是面向问题和计算过程的语言 它可通过于各种不同的计算机 用户编程 时不必仔细了解所用的计算机的具体性能与指令系统 而且语句的功能强 常常一个语 句已相当于很多条计算机指令 于是用高级语言编制程序的速度比较快 也便于学习和 交流 但是本系统却选用了汇编语言 原因在于 本系统是编制程序工作量不大 规模 较小的单片机微控制系统 使用汇编语言可以不用像高级语言那样占用较多的存储空间 适合于存储容量较小的系统 同时 本系统对位处理要求很高 需要解决大量的逻辑控 制问题 51 指令系统的指令长度较短 它在存储空间和执行时间方面具有较高的效率 编成 的程序占用内存单元少 执行也非常的快捷 与本系统的应用要求很适合 而且 AT89C 51 指令系统有丰富的位操作 或称位处理 指令 可以形成一个相当完整的位 操作指令子集 这是 AT89C 51 指令系统主要的优点之一 对于要求反应灵敏与控制及 时的工控 检测等实时控制系统以及要求体积小 系统小的许多 电脑化 产品 可以 充分体现出汇编语言简明 整齐 执行时间短和易于使用的特点 本装置的软件包括主程序 读出温度子程序 复位应答子程序 写入子程序 以及 有关DS18B20的程序 初始化子程序 写程序和读程序 5 2 2 程序组成 系统程序主要包括主程序 读出温度子程序 写入子程序 门限调节子程序等 1 主程序 主程序的主要功能是负责温度的实时显示 读出并处理 DS18B20 的测量的当前温度 值 温度测量每 1s 进行一次 这样可以在一秒之内测量一次被测温度 其程序流程见图 5 9 所示 通过调用读温度子程序把存入内存储中的整数部分与小数部分分开存放在不同的两 个单元中 然后通过调用显示子程序显示出来 17 图 5 9 主程序流程图 2 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节 在读出时需进行 CRC 校验 校验有错时不进行温度数据的改写 程序流程图如图 5 10 所示 DS18B20 的各个命令对时序的要求特别严格 所以必须按照所要求的时序才能达到 预期的目的 同时 要注意读进来的是高位在后低位在前 共有 12 位数 小数 4 位 整 数 7 位 还有一位符号位 18 图 5 10 读出温度子程序 跳过 ROM 匹配命令 写入子程序 温度转换命令 显示子程序 延时 写入子程序 写入子程序 DS18B20 复位 应答子程序 DS18B20 复位 应答子程序 跳过 ROM 匹配命令 读温度命令子程序 终 止 南昌工程学院专科毕业设计 论文 19 3 写入子程序 写入子程序的流程图如 5 11 所示 图 5 11 写入子程序 进位 C 清 0 P3 0 清 0 延时 12US 带进位右移 延时 46US P3 0 置 0 R2 是否为 0 终止 开始 20 4 门限调节子程序 门限调节子程序流程如图 5 12 所示 图 5 12 门限调节电路 21 结束语 本文详细讲述了系统设计方案 并给出了相关程序流程 本设计应用性比较强 可 以应用在仓库温度 大棚温度 机房温度 水池等的监控 另外 如果把本设计方案扩 展为多点温度控制 加上上位机 则可以实现远程温度监控系统 将具有更大的应用价 值 本文的创新点在于详细设计了基于单片机 AT89C51 的温度监控系统 设计程序已经 此 系统可广泛用于温度在 DS18B20 测温范围之内的场合 有良好的应用前景 由于单片机 的各种优越的特性 使得它的经济效益显的更加突出 有很好的实用性 22 附录 附录 1 23 原理电路总设计图 24 附录 2 源程序 FK1 EQU 24H F k 实测温度 FK EQU 25H F k 实测温度暂存 RK EQU 26H R k 给定温度 SHI1 EQU 30H 实测温度十位 SHI2 EQU 31H 实测温度个位 SHI3 EQU 32H 实测温度小数位 GAO EQU 33H 给定温度十位 ZHO EQU 34H 给定温度个位 DI EQU 35H 给定温度小数位 CNT EQU 37H 按键消抖计数器 LSB EQU 50H 检测温度低 8 位 MSB EQU 51H 检测温度高 8 位 K INM BIT P3 1 DI 位设定温度按键 K INH BIT P3 2 ZHO 位设定温度按键 KI BIT P3 3 GAO 位设定温度按键 DQ BIT P3 0 DS18B20 的温度输入口 ORG 0000H 主程序入口地址 AJMP MAIN 跳转到主程序 ORG 000BH T0 中断入口地址 ORG 001BH T1 中断入口地址 ORG 0050H MAIN MOV SP 60H 堆栈指针初始化 MOV GAO 0 置设定值显示十位初值 MOV ZHO 0 置设定值显示个位初值 MOV DI 0 置设定值显示小数位初值 MOV CNT 10 MOV TMOD 11H 定时器 T0 T1 初始化 方式 1 MOV TH0 3CH T0 定时器 定时常数 25 MOV TL0 0B0H MOV TH1 0FCH T1 定时器 定时常数 MOV TL1 18H SETB PT1 T1 优先中断 MOV IE 8AH 中断使能 SETB TR0 启动定时器 T0 SETB TR1 启动定时器 T1 LOOP ACALL GETTMP 调用测温子程序 ACALL BBLD 调用二十进制子程序 ACALL TER 调用拆字子程序 ACALL XIAOSHU 调用小数处理子程序 ACALL DISP1 调用测得温度显示程序 ACALL KEY 调用按键处理子程序 ACALL IDTB 调用十二进制转换子程序 ACALL CHK1 调用报警子程序 ACALL DISP2 调用设定温度显示子程序 AJMP LOOP 循环 测温子程序 GETTMP ACALL RESET PULSE ACALL PRESENCE MOV A 0CCH ACALL WRITE BYTE 发跳过 ROM 命令 MOV A 44H ACALL WRITE BYTE 发出温度转换命令 JNB DQ ACALL RESET PULSE ACALL PRESENCE MOV A 0CCH 发跳过 ROM 命令 ACALL WRITE BYTE MOV A 0BEH 发读存储器命令 ACALL WRITE BYTE 26 ACALL READ BYTE MOV LSB A 温度值低位字节送 LSB ACALL READ BYTE MOV MSB A 温度值高位字节送 MSB ACALL RESET PULSE ACALL PRESENCE MOV A MSB SWAP A ANL A 70H MOV FK A MOV A LSB SWAP A ANL A 0FH ORL FK A MOV FK1 FK RET 读 DS18B20 的程序 READ BYTE MOV R6 8 READ1 CLR DQ NOP NOP SETB DQ NOP NOP NOP MOV R5 A MOV C DQ MOV A R5 MOV R7 30 DJNZ R7 RRC A 27 DJNZ R6 READ1 RET PRESENCE JB DQ JNB DQ RET RESET PULSE CLR DQ MOV R7 250 DJNZ R7 SETB DQ MOV R7 10 DJNZ R7 RET 写 DS18B20 的程序 WRITE BYTE MOV R6 8 WRITE RRC A JC WRITE1 CLR DQ MOV R7 30 DJNZ R7 SETB DQ NOP NOP NOP NOP DJNZ R6 WRITE RET WRITE1 CLR DQ NOP NOP NOP NOP 28 SETB DQ MOV R7 30 DJNZ R7 DJNZ R6 WRITE RET 二十进制转换子程序 BBLD CLR A MOV R2 A MOV R7 8 BBCD1 CLR C MOV A FK RLC A MOV FK A MOV A R2 ADDC A R2 DA A MOV R2 A DJNZ R7 BBCD1 RET 拆字子程序 TER MOV A R2 ANL A 0FH MOV SHI2 A MOV A R2 SWAP A ANL A 0FH MOV SHI1 A RET 小数部分处理子程序 XIAOSHU CLR C 29 MOV R3 3 MOV A 50H LOOP2 RRC A DJNZ R3 LOOP2 ANL A 01H CJNE A 01H XIAOSHU2 MOV SHI3 5 RET XIAOSHU2 MOV SHI3 0 RET 按键部分处理子程序 KEY MOV CNT 80 JB K INM KEY1 ACALL DISP1 ACALL DISP2 ACALL DISP1 ACALL DISP2 JB K INM KEY1 WAIT0 JB K INM KEY2 ACALL DISP1 ACALL DISP2 DJNZ CNT WAIT0 KEY2 MOV A DI ADD A 5 DA A MOV DI A SUBB A 09H JC KEY1 MOV DI 0 KEY1 MOV CNT 80 JB K INH KEY4 30 ACALL DISP1 ACALL DISP2 ACALL DISP1 ACALL DISP2 JB K INH KEY4 WAIT1 JB K INH KEY3 ACALL DISP1 ACALL DISP2 DJNZ CNT WAIT1 KEY3 MOV A ZHO ADD A 1 DA A MOV ZHO A CJNE A 10H KEY4 MOV ZHO 0 KEY4 MOV CNT 80 JB KI KEY BACK ACALL DISP1 ACALL DISP2 ACALL DISP1 ACALL DISP2 JB KI KEY BACK WAIT2 JB KI KEY5 ACALL DISP1 ACALL DISP2 DJNZ CNT WAIT2 KEY5 MOV A GAO ADD A 1 DA A MOV GAO A CJNE A 10H KEY BACK 31 MOV GAO 0 KEY BACK RET 延时程序 1 D0 6S MOV R3 64H DEL3 MOV R4 384H DEL4 NOP NOP NOP DJNZ R4 DEL4 DJNZ R3 DEL3 RET 实测温度显示部分子程序 DISP1 MOV DPTR TAB MOV A SHI1 MOVC A A DPTR MOV P0 A MOV P1 3FH CLR P1 0 ACALL TM MOV A SHI2 MOVC A A DPTR MOV P0 A MOV P1 3FH SETB P0 7 CLR P1 1 ACALL TM MOV A SHI3 MOVC A A DPTR MOV P0 A MOV P1 3FH CLR P1 2 32 ACALL TM 实测温度显示部分子程序 DISP2 MOV DPTR TAB MOV A GAO MOVC A A DPTR MOV P2 A MOV P1 3FH CLR P1 3 ACALL TM MOV A ZHO MOVC A A DPTR MOV P2 A MOV P1 3FH SETB P2 7 CLR P1 4 ACALL TM MOV A DI MOVC A A DPTR MOV P2 A MOV P1 3FH CLR P1 5 ACALL TM RET TAB DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 显示延时子程序 TM MOV R1 30 TM1 MOV R2 25 TM2 DJNZ R2 TM2 DJNZ R1 TM1 RET 十二进制转换子程序 33 IDTB MOV R0 33H MOV R2 1 MOV A R0 MOV 52H A DITB1 MOV A 52H MOV B 10 MUL AB MOV 52H A MOV A B INC R0 MOV A 52H ADD A R0 MOV 52H A MOV RK 52H RET 设定温度越线报警子程序 CHK1 MOV A DI CLR C SUBB A 0 MOV A ZHO SUBB A 0 MOV A GAO SUBB A 4 JC OUTB MOV A DI CLR C SUBB A 5 MOV A ZHO SUBB A 0 MOV A GAO SUBB A 9 34 JNC OUTA MOV A 00H RET OUTA MOV GAO 9 MOV ZHO 0 MOV DI 0 CLR P3 4 ACALL D0 6S SETB P3 4 RET OUTB MOV GAO 4 MOV ZHO 0 MOV DI 0 CLR P3 4 ACALL D0 6S SETB P3 4 RET END 35 参考文献 1 张友德主编 单片微型机原理 应用与实验 复旦大学出版社出版 1993 2 何立民主编 单片机应用技术选编 1 北京航空航天大学出版社 2000 3 韦珑珅 杨荣松 基于 DS18B20 的单片机多点温度测量系统 机械与电子 4 赵娜 赵刚 于珍珠 郭守清 基于 51 单片机的温度测量系统 2007 02 5 Steven F Barrett Daniel J Pack Embedded System M 北京 电子工业出版社 2006 6 陈跃东 DS18B20 集成温度传感器原理与应用 J 安徽机电学院学报 2002 7 阎石 数字电子技术基础 第三版 M 北京 高等教育出版社 1989 8 李朝青 单片机原理及接口技术 简明修订版 M 北京 北京航空航天大学出版社 1998 9 李广弟 单片机基础 M 北京 北京航空航天大学出版社 1994 10 金伟正 单线数字温度传感器的原理与应用 J 电子技术与应用 2000 11 李 钢 1 Wire 总线数字温度传感器 DS18B20 原理及应用 现代电子技术 J 36 南 昌 工 程 学 院 毕 业 设 计 论文 成 绩 评 定 和 评 语 姓名 班级 学号 毕业设计 论文 题目 指导教师评语及评分 评语 评分 指导教师 年 月 日 答辩委员会 小组 评语及评分 评语 评分 总评成绩 答辩委员会 小组 负责人 年 月
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!