恒温箱控制器论文-qq.doc_第1页
恒温箱控制器论文-qq.doc_第2页
恒温箱控制器论文-qq.doc_第3页
恒温箱控制器论文-qq.doc_第4页
恒温箱控制器论文-qq.doc_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

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

文档简介

1 基于单片机的热水控制器系统设计基于单片机的热水控制器系统设计 摘要 摘要 本文介绍了用 51 单片机设计的一种多功能热水控制器 具有自动和 手动加水 设置水温 实时显示水量及温度和报警功能 并且具有结构简单 可靠性高 成本低等特点 当前市场上的热水控制器基本上采用双金属片温控 控温精度低 可靠性 差 功能单一 随着微电子技术的发展 单片微处理器功能日益增强 价格低 廉 在各方面得到广泛应用 在热水控制器中应用单片机 具有设计简单 可 靠性高 功能易扩展等优点 本文着重于热水器在智能控制方面的探讨 关键词 单片机 热水器 关键词 单片机 热水器 5151 加热 加热 2 Abstract Abstract This paper introduces single chip design with 51 of a multi functional water control with automatic and manual water and set the water temperature water and temperature in real time display and alarm functions and simple structure high reliability cost low At present the market is basically the use of hot water controller Bimetal temperature control temperature control accuracy of the low reliability of poor single function With the development of microelectronic technology the growing single chip microprocessor functions and low prices in all respects been widely used Hot water applications in single chip controller with a simple design high reliability and easy expansion of functions and so on This article focuses on the water heater in the area of intelligent control KeyKey words words microcontroller water heater 51 heating 3 目 录 1整体设计方案整体设计方案 3 1 1课程设计要求 3 1 2设计目的 4 2设计方案设计方案 5 3硬件电路设计硬件电路设计 6 3 1DS1820 的工作原理 7 3 2寄生电源电路 8 3 3温度测量原理 8 3 4高温自动报警电路 10 3 5基本温度水温测量电路 10 3 6显示电路及键盘电路 11 3 7水温和水量控制电路 12 4系统软件设计系统软件设计 14 4 1键盘和显示 14 4 2水温测量 15 5结论结论 16 6参考文献参考文献 21 7致谢致谢 22 8附录附录 23 附录一 程序清单 23 附录二 总原理图 48 4 1整体设计方案整体设计方案 1 1 课程设计要求课程设计要求 完成基于单片机的热水控制器系统的设计 能够实现水温的自动加热 并检测水温大小 对温度进行显示 o程序设计合理 简洁 o自行设计检测及相关处理电路 o完成单片机数据采集及处理的硬件电路设计及相关软件编程 o辅助电路及元器件自选 o自选传感器类型 o加热范围 40 100 摄氏度 1 2 设计目的设计目的 现代科技飞速发展 拥有渊博的知识是今后一展鸿图的基础 实践也同知识 一样重要 如果不在学生的实践技能的锻炼上下功夫 单凭课堂理论课学习 势 必出现理论与实践脱节 学习与应用脱节的局面 任随书本上把单片微机技术 介绍得多么重要 多么实用 多么好用 同学们仍然会感到那只是空中楼阁 离自己十分遥远 或者会因此而对它失去兴趣 或者会感到它高深莫测无从下 手 这些情况都会令课堂教学的效果大打折扣 单片机课程设计 的目的就是让同学们在理论学习的基础上 通过完成 一个涉及 MCS 51 单片机多种资源应用并具有综合功能的小系统目标板的设计与 编程应用 使学生不但能够将课堂上学到的理论知识与实际应用结合起来 而 5 且能够对电子电路 电子元器件 印制电路板等方面的知识进一步加深认识 同时在软件编程 排错调试 焊接技术 相关仪器设备的使用技能等方面得到 较全面的锻炼和提高 为今后能够独立进行某些单片机应用系统的开发设计工 作打下一定的基础 2设计方案设计方案 本文介绍了用 51 单片机设计的一种多功能热水控制器 具有自动和手动加 水 设置水温 实时显示水量及温度和报警功能 并且具有结构简单 可靠性 高 成本低等特点 当前市场上的热水控制器基本上采用双金属片温控 控温精度低 可靠性 差 功能单一 随着微电子技术的发展 单片微处理器功能日益增强 价格低 廉 在各方面得到广泛应用 在热水控制器中应用单片机 具有设计简单 可 靠性高 功能易扩展等优点 热水控制器主要实现对水温的控制 并满足不同用户的个性需求 因此一 个较完善的控制器应具有以下功能 水温的测量与显示 水量的测量与显示 用户设定功能 如水温设定 定时 设定等 对电加热管的控制功能 一些功能键 如定时自动加水 恒温控制 手动加水 手动加热等 6 89C51 电源控制 温度测量LED 显示 键盘和水量档位 图 1 原理框图 3硬件电路设计硬件电路设计 根据热水控制器的功能要求 并结合对 51 系列单片机的资源分析 采用此 系列中的主流型号 89C51 作为电路系统的控制核心 电热水控制器的总体布局 如图 1 所示 基本硬件电路图如图 2 a c 所示 在本系统中 P0 0 P0 3 用 于七段码显示 P2 6 控制水闸开关 P2 7 控制电加热管 P3 3 P3 5 用于按键 设计和读取水量 P3 0 P3 2 用于跟 DS1820 通信进行水温测量 P2 0 P2 1 对 七段码进行扫描 P2 2 P2 5 LED 指示灯显示 P3 7 控制扬声器用于报警和指 示 1 水温测量电路 水温测量电路如图 4 所示 测温元件采用 DALLAS 的单线数字温度传感器 DS1820 DS1820 提供九位温度读数 测量范围 55 125 采用独特 1 WIRE 总线协议 只需一根口线即实现与 MCU 的双向通讯 具有连接简单 高精度 7 高可靠性等特点 在工作时 通过总线向其提供电源 单片机发出指令码读取 温度值 3 1 DS1820 的工作原理的工作原理 DS1820 采用 3 脚 PR 35 封装或 8 脚 SOIC 封装 管脚排列如图 2 所示 图 中 3 号引脚为 GND 2 号引脚 I O 为数据输入 输出端 即单线总线 该脚为漏 极开路输出 常态下呈高电平 1 号引脚 VDD 是外部 5V 电源端 不用时应接地 NC 为空脚 图 3 所示为 DS1820 的内部框图 它主要包括寄生电源 温度传感 器 64 位激光 ROM 单线接口 存放中间数据的高速暂存器 内含便笺式 RAM 用于存储用户设定的温度上下限值的 TH 和 TL 解发器存储与控制逻辑 8 位循 环冗余校验码 CRC 发生器等七部分 1 2 3 DS1820 图 2 DS1820 引脚图 8 图 3 DS18B20 内部结构图 3 2 寄生电源电路寄生电源电路 寄生电源由二极管 VD1 VD2 和寄生电容 C 组成 电源检测电路用于判定供 电方式 寄生电源供电时 VDD 端接地 器件从单线总线上获取电源 在 I O 线呈低电平时 改由 C 上的电压 Vc 继续向器件供电 该寄生电源有两个优点 第一 检测远程温度时无需本地电源 第二 缺少正常电源时也能读 ROM 若 采用外部电源 VDD 则通过 VD2 向器件供电 3 3 温度测量原理温度测量原理 DS1820 测量温度时使用特有的温度测量技术 其测量电路框图如图 3 所示 DS1820 内部的低温度系数振荡器能产生稳定的频率信号 f0 高温度系数振荡器 则将被测温度转换成频率信号 f 当计数门打开时 DS1820 对 f0 计数 计数门 9 开通时间由高温度系数振荡器决定 芯片内部还有斜率累加器 可对频率的非 线性予以被偿 测量结果存入温度寄存器中 一般情况下的温度值应为 9 位 符号点 1 位 但因符号位扩展成高 8 位 故以 16 位被码读出 图4 DS1820测温原理框图 高速暂存器高速暂存器 在正常测温情况下 DS1820 的测温分辨力为 0 5 可采用下述方法获得 高分辨率的温度测量结果 首先用 DS1820 提供的读暂存器指令 BEH 读出以 0 5 为分辨率的温度测量结果 然后切去测量结果中的最低有效位 LSB 得 到所测实际温度的整数部分 Tz 然后现用 BEH 指令取计数器 1 的计数剩余值 Cs 和每度计数值 CD 考虑到 DS1820 测量温度的整数部分以 0 25 0 75 为进 位界限的关系 实际温度 Ts 可用下式计算 10 Ts Tz 0 25 CD Cs CD 3 4 高温自动报警电路高温自动报警电路 DS1820 完成温度转换后 就把测得的温度值与 TH TL 作比较 若 T TH 或 T TL 则将该器件内的告警标志置位 并对主机发出的告警搜索命令作出响应 因此 可用多只 DS1820 同时测量温度并进行告警搜索 一旦某测温点越限 主 机利用告警搜索命令即可识别正在告警的器件 并读出其序号 而不必考虑非 告警器件 CRCCRC 的产生的产生 在 64 位 ROM 的最高有效字节中存储有循环冗余校验码 CRC 主机根据 ROM 的前 56 位来计算 CRC 值 并和存入 DS1820 中的 CRC 值作比较 以判断主 机收到的 ROM 数据是否正确 CRC 的函数表达式为 CRC X8 X5 X3 1 此外 DS1820 尚需依上式为暂存器中的数据来产生一个 8 位 CRC 送给主机 以确保暂 存器数据传送无误 3 5 基本温度水温测量电路基本温度水温测量电路 基本温度水温测量电路如图 5 所示 本系统中 一个 DS18B20 温度传感 器 三个七段码显示与四个 LED 灯指示 四个功能按键与水量设定按键使用同 一组按键 按键的优先权高于水量信号 水量高档位信号优先权高于低档位信 号 以保证能优先响应按键 11 图 5 基本温度水温测量 键盘电路 3 6 显示电路及键盘电路显示电路及键盘电路 显示电路如图 6 所示 温度采用二位七段码显示 显示范围 0 99 水 量采用一位七段显示 显示 1 2 3 4 四档水位 对温度和水量进行循环扫 描显示 四个 LED 用于当前按键功能设定 设置按键两个 一个十位按键 一个个位按键 12 图 6 基本显示电路图图 3 7 水温和水量控制电路水温和水量控制电路 水温和水量控制电路如图 7 所示 单片机通过光电耦合对继电器进行控制 用 来切断或接通加热管电源 关闭或打开水阀 从而达到对水温和水量的控制 13 U3 OPT OISO2 U4 OPT OISO2 K1K2 1 2 3 4 J3 CON4 VCC VCC P2 7P2 6 图 7 水温和水量控制电路 14 4系统软件设计系统软件设计 系统软件采用汇编语言精简指令编写 本系统中键盘扫描 漏电检测等子 程序都通过查询实现 并采用 12MHz 的时钟频率 对指令的运行时间进行了精 确计算和设计 保证软件的可靠性和稳定性 系统主程序框图如图 7 所示 DS1820 工作程序流程图如图 8 所示 4 1 键盘和显示键盘和显示 本系统中 有四个功能按键 定时加水 恒温控制 手动加水和手动加热 三个七段码显示与四个 LED 灯指示 1 按下定时加水按钮时 定时 LED 变亮 并以当前时间为定时时标 每 24 小时自动加水至设定水量 若长按此钮超过 5 秒 定时 LED 灭 并听到 嘟 一声进行水量设定 此后每按一下钮 水量显示加一档 1 4 档循环显示 不 按此钮超过 5 秒 再次听到 嘟 一声 水量设定完毕 系统的定时功能主要 通过软件完成 2 按下恒温控制钮 恒温 LED 变亮 表示进行恒温控制 再按一下 LED 灭 取消恒温控制 与水量设定类似 长按后 进行温度设定 3 按下手动加热钮时 加热 LED 变亮 加热至 65 如水量少于 1 档 则 先加水到 1 档 再按一次取消加热 15 4 按下手动加水钮时 加水至设定水量值 长按可设定水量 手动加水过程 中 再次按下取消加水 正常情况下 两个七段码显示当前水温 另一个显示 当前水位 4 2 水温测量水温测量 温度读取是通过与 DS1820 通信完成 DS1820 通信功能是分时完成的 它 有严格的时隙概念 因此系统对 DS1820 的各种操作必须按协议进行 DS1820 是美国 DALLAS 公司生产的单线数字温度传感器 它具有微型化 低功耗 高性 能 抗干扰能力强 易配微处理器等优点 特别适合于构成多点温度测控系统 可直接将温度转化成串行数字信号供微机处理 而且每片 DS1820 都有唯一的产 品号并可存入其 ROM 中 以使在构成大型温度测控系统时在单线上挂任意多个 DS1820 芯片 从 DS1820 读出或写入 DS1820 信息仅需要一根口线 共读写及温 度变换功率来源于数据总线 该总线本身也可以向所挂接的 DS1820 供电 而无 需额处电源 DS1820 能提供九位温度读数 它无需任何外围硬件即可方便地构 成温度检测系统 16 5结论结论 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 随着 科学技术发展的日新日异 单片机已经成为当今计算机应用中空前活跃的领域 在生活中可以说得是无处不在 因此作为二十一世纪的大学来说掌握单片机的 开发技术是十分重要的 17 回顾起此次单片机课程设计 至今我仍感慨颇多 的确 从选题到定稿 从理论到实践 在整整两星期的日子里 可以说得是苦多于甜 但是可以学到 很多很多的的东西 同时不仅可以巩固了以前所学过的知识 而且学到了很多 在书本上所没有学到过的知识 通过这次课程设计使我懂得了理论与实际相结 合是很重要的 只有理论知识是远远不够的 只有把所学的理论知识与实践相 结合起来 从理论中得出结论 才能真正为社会服务 从而提高自己的实际动 手能力和独立思考的能力 在设计的过程中遇到问题 可以说得是困难重重 这毕竟第一次做的 难免会遇到过各种各样的问题 同时在设计的过程中发现 了自己的不足之处 对以前所学过的知识理解得不够深刻 掌握得不够牢固 比如说对单片机汇编语言掌握得不好 通过这次课程设计之后 一定把以前 所学过的知识重新温故 这次课程设计终于顺利完成了 在设计中遇到了很多编程问题 最后在我的努 力和同学下 终于游逆而解 电热水器单片机控制器具有新颖 价廉 安全 实用等优点 并且在国产电热水器上获得了成功应用 本文的一些方法也适用 于冰箱 空调等家用电器的电脑控制设计中 此次设计之后的到一些设计体会 1 在设计程序之前 务必要对所用单片机的内部结构有一个系统的了解 知道该 单片机片内有哪些资源 它的引脚功能都要了解 2 设计程序采用什么编程语言并不是非常重要 关键要有一个清晰的思路和一个 完整的软件流程图 3 在设计程序时 不能妄想一次就将整个程序设计好 反复修改 不断改进 是程 序设计的必经之路 18 4 在设计程序过程中遇到问题是很正常的 但我们应该将每次遇到的问题记录下 来 并分析清楚 以免下次再碰到同样的问题 系统初始化 实际水位水温计算 报警自动上水 启动计时 计数器 是否缺水 是否手动上水 自动上水 热水器是否 加满了水 读取温度测量显示子程序 上水 水温是否偏高 读取键盘状态 定时 1 秒 是 否已到 温控上水 继续显示 19 图 8 主程序流程图 20 21 6参考文献参考文献 1 苏长赞主编 实用遥控技术手册 北京 人民邮电出版社 1996 年 2 陈永甫主编 红外探测与控制电路 北京 人民邮电出版社 2004 年 3 无线电爱好者丛书编委会 黄继昌等主编 实用识别电路 北京 人民邮电出版社 2005 年 4 华中理工电子学教研室编 康华光主编 电子技术基础 模拟部分 第四版 北京 高等教育出版社 1999 年 5 华中理工电子学教研室编 康华光主编 电子技术基础 数字部分 第四版 北京 高等教育出版社 2000 年 6 秦曾煌主编 电工学 上册 电工技术 第五版 北京 高等教育 出版社 1999 年 7 秦曾煌主编 电工学 下册 电子技术 第五版 北京 高等教育 出版社 1999 年 8 万福君 单片机微机原理系统设计与应用 中国科学技术大学出版社 2003 9 宏晶科技 STC89CS1RC RD GUIDE http www stc 2005 10 基于 Keil CS 1 高级语言的 TKS 系列仿真器使用指南 广州致远电子有 限公司 2004 11 袁希光 传感器技术手册 国防工业出版社 1986 12 强锡福 传感器 机械工业出版社 2000 22 13 徐爱均 Keil Cx51 V7 0 单片机高级语言编程与 u Vision2 应用实践 电子 工业出版社 2004 14 赖麒文 8051 单片机 C 语言彻底应用 科学出版社 2002 15 周航慈 单片机应用程序设计技术 北京航空航天大学出版社 1991 16 马忠梅 籍顺心 单片机的 C 语言应用程序设计 北京航空航天大学出版 社 1999 17 刘光斌 刘冬 姚志成 单片机系统实用抗干扰技术 人民邮电出版社 2003 18 张伟 王力 赵晶 Protel DXP 入门与提高 人民邮电出版社 2003 19 阎石 数字电子技术基础 高等教育出版社 1998 7致谢致谢 首先感谢各位指导老师 各位同学给我的支持和帮助 感谢他们在这几个 月份给与的关键性指导和提议 同时我也感谢家里的父母 为我提供了一个很好的学习环境 和无微不至 的关怀 在我感到困难和灰心时 他们对我的鼓励 我的成功有他们不可以或 缺的功劳 感谢我的指导老师 他们严谨细致 一丝不苟的作风一直是我工作 学习 中的榜样 他们循循善诱的教导和不拘一格的思路给予我无尽的启迪 岁月如流 流走的是时光 流不动的是永存于心底的这份情愫 23 8附录附录 附录一 程序清单附录一 程序清单 ORG 0000H 系统主程序 JMP MAIN ORG 000BH JMP LEDINT0 ORG 001BH JMP LEDINT1 ORG 0100H PP5 JMP PP1 PP7 JMP PP2 MAIN MOV 34H 0FFH MOV 35H 0FFH MOV 36H 00H 24 MOV 37H 00H clr p1 6 setb p1 7 MOV SP 60H 给堆栈指针赋初值 MOV TMOD 51H 定时器 0 工作于方式定时器 1 作为计数器 MOV TH0 0ECH 给计数寄存器的高 8 位赋初值 MOV TL0 77H 给计数寄存器的低 8 位赋初值 MOV 30H 20 mov 31h 10 MOV 32H 20 mov 33h 10 mov th1 00h mov tl1 00h MOV IE 82H SETB TR0 计时开始 setb tr1 开始计数 mov r0 0 mov r1 0 mov r2 0 mov r3 0 mov r4 0 LOOP mov dptr 0a100h 读取键盘状态 25 movx a dptr MOV 21H A 把 A 的内容赋给缓冲区 21H 再比较判断然后输出 JNB 21H 7 PP3 加水到 50 JNB 21H 6 PP7 加水到 80 JNB 21H 5 PP5 加水到 100 MOV A 34H CLR C SUBB A 1 JC PP3 C 是 1 转 PP3 JZ TTL4 A 0 转 TTL4 AJMP BB 无条件转移 TTL4 MOV A 35H CLR C SUBB A 10 JC PP3 MOV A 36H CLR C SUBB A 5 JC BB JZ TTL5 AJMP PP6 TTL5 MOV A 37H 26 CLR C SUBB A 10 JC BB AJMP PP6 BB MOV A R0 LCALL XIANSHI MOV DPTR 0A000h MOVx DPTR A lcall delay MOV A R1 LCALL XIANSHI MOV DPTR 0A001h MOVx DPTR A lcall delay MOV A R2 LCALL XIANSHI MOV DPTR 0A002h MOVx DPTR A lcall delay MOV A R3 LCALL XIANSHI MOV DPTR 0A003h 27 MOVx DPTR A lcall delay MOV A R4 LCALL XIANSHI MOV DPTR 0A004h MOVx DPTR A lcall delay ajmp loop pp3 MOV A 0 LCALL XIANSHI MOV DPTR 0A000h MOVx DPTR A lcall delay MOV A 5 LCALL XIANSHI MOV DPTR 0A001h MOVx DPTR A lcall delay MOV A 34H CLR C SUBB A 1 28 JC PP3 JZ TTL TTL MOV A 35H CLR C SUBB A 55 JC PP3 JMP LOOP pp2 MOV A 8 LCALL XIANSHI MOV DPTR 0A001h MOVx DPTR A lcall delay MOV A 0 LCALL XIANSHI MOV DPTR 0A000h MOVx DPTR A lcall delay MOV A 34H CLR C SUBB A 2 JC PP2 JZ TTL1 29 TTL1 MOV A 35H CLR C SUBB A 55 JC PP2 JMP LOOP PP6 MOV A 10 LCALL XIANSHI MOV DPTR 0A002h MOVx DPTR A lcall delay MOV A 13 LCALL XIANSHI MOV DPTR 0A001h MOVx DPTR A lcall delay MOV A 13 LCALL XIANSHI MOV DPTR 0A000h MOVx DPTR A lcall delay MOV A 34H CLR C 30 SUBB A 4 JC PP6 JZ TTL6 JMP LOOP TTL6 MOV A 35H CLR C SUBB A 55 JC PP6 JMP LOOP pp1 MOV A 9 LCALL XIANSHI MOV DPTR 0A000h MOVx DPTR A lcall delay MOV A 9 LCALL XIANSHI MOV DPTR 0A001h MOVx DPTR A lcall delay MOV A 34H CLR C SUBB A 4 31 JC PP1 JZ TTL2 TTL2 MOV A 35H CLR C SUBB A 55 JC PP1 JMP LOOP TEMPER L EQU 36H DS1820 温度测量子程序 TEMPER H EQU 35H DQ BIT P3 2 DS18B20 初始化程序 INIT 1820 SETB DQ NOP CLR DQ MOV R0 06BH TSR1 DJNZ R0 TSR1 延时 SETB DQ MOV R0 25H 32 TSR2 JNB DQ TSR3 DJNZ R0 TSR2 LJMP TSR4 延时 TSR3 SETB FLAG1 置标志位 表示 DS1820 存在 LJMP TSR5 TSR4 CLR FLAG1 清标志位 表示 DS1820 不存在 LJMP TSR7 TSR5 MOV R0 06BH TSR6 DJNZ R0 TSR6 延时 TSR7 SETB DQ RET 重新写 DS18B20 暂存存储器设定值 RE CONFIG JB FLAG1 RE CONFIG1 若 DS18B20 存在 转 RE CONFIG1 33 RET RE CONFIG1 MOV A 0CCH 发 SKIP ROM 命令 LCALL WRITE 1820 MOV A 4EH 发写暂存存储器命令 LCALL WRITE 1820 MOV A 00H TH 报警上限 中写入 00H LCALL WRITE 1820 MOV A 00H TL 报警下限 中写入 00H LCALL WRITE 1820 MOV A 1FH 选择 9 位温度分辨率 LCALL WRITE 1820 RET 读出转换后的温度值 GET TEMPER SETB DQ 定时入口 LCALL INIT 1820 JB FLAG1 TSS2 RET 若 DS18B20 不存在则返回 34 TSS2 MOV A 0CCH 跳过 ROM 匹配 LCALL WRITE 1820 MOV A 44H 发出温度转换命令 LCALL WRITE 1820 LCALL INIT 1820 MOV A 0CCH 跳过 ROM 匹配 LCALL WRITE 1820 MOV A 0BEH 发出读温度命令 LCALL WRITE 1820 LCALL READ 1820 MOV TEMPER NUM A 将读出的温度数据保存 RET 读 DS18B20 的程序 从 DS18B20 中读出一个字节的数据 READ 1820 MOV R2 8 RE1 CLR C SETB DQ 35 NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3 7 DJNZ R3 MOV C DQ MOV R3 23 DJNZ R3 RRC A DJNZ R2 RE1 RET 写 DS18B20 的程序 WRITE 1820 MOV R2 8 CLR C WR1 36 CLR DQ MOV R3 6 DJNZ R3 RRC A MOV DQ C MOV R3 23 DJNZ R3 SETB DQ NOP DJNZ R2 WR1 SETB DQ RET 读 DS18B20 的程序 从 DS18B20 中读出两个字节的温度数据 READ 18200 MOV R4 2 将温度高位和低位从 DS18B20 中读出 MOV R1 36H 低位存入 36H TEMPER L 高位存入 35H TEMPER H RE00 MOV R2 8 RE01 37 CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3 7 DJNZ R3 MOV C DQ MOV R3 23 DJNZ R3 RRC A DJNZ R2 RE01 MOV R1 A DEC R1 DJNZ R4 RE00 RET 将从 DS18B20 中读出的温度数据进行转换 38 TEMPER COV MOV A 0F0H ANL A TEMPER L 舍去温度低位中小数点后的四位温度数值 SWAP A MOV TEMPER NUM A MOV A TEMPER L JNB ACC 3 TEMPER COV1 四舍五入去温度值 INC TEMPER NUM TEMPER COV1 MOV A TEMPER H ANL A 07H SWAP A ORL A TEMPER NUM MOV TEMPER NUM A 保存变换后的温度数据 LCALL BIN BCD RET 将 16 进制的温度数据转换成压缩 BCD 码 BIN BCD MOV DPTR TEMP TAB 39 MOV A TEMPER NUM MOVC A A DPTR MOV TEMPER NUM A 定时器 0 中断服务子程序 LEDINT0 PUSH PSW 压栈保护现场 PUSH ACC clr ET0 防止连续中断 CLR TR0 禁止定时器计数 CLR TR1 MOV TH0 3CH 重新给计数器赋初值 MOV TL0 0B0H DJNZ 30H LEDRET 定时 1s 到了吗 djnz 31h ibtd 水温水位分别显示 20 秒 CLR ET0 MOV TMOD 15H 定时器 1 工作于方式定时器 0 作为计数器 MOV TH1 0ECH 给计数寄存器的高 8 位赋初值 MOV TL1 77H 给计数寄存器的低 8 位赋初值 MOV 32H 20 40 mov 33h 10 mov th0 00h mov tl0 00h MOV IE 88H IE 是寄存器 88H 的输入设置了中断 setb tr1 SETB TR0 开始计数 mov r0 0 mov r1 0 mov r2 0 mov r3 0 mov r4 0 POP PSW POP ACC RETI IBTD MOV 30H 20 是 则重新赋初值 MOV A TH1 MOV 34H A MOV R2 A MOV A TL1 MOV 35H A MOV R3 A MOV TH1 00H 41 MOV TL1 00H CLR A MOV R4 A MOV R5 A MOV R6 A MOV R7 16 PP0 CLR C MOV A R3 RLC A MOV R3 A MOV A R2 RLC A 把十六进制数转换成十进制数 MOV R2 A MOV A R6 ADDC A R6 DA A MOV R6 A MOV A R5 ADDC A R5 DA A MOV R5 A MOV A R4 42 ADDC A R4 DA A MOV R4 A DJNZ R7 PP0 转换完毕 MOV A R4 把 R4 R5 R6 中的十进制数一位一位的存放于 R4 R3 R2 R1 R0 中 MOV R4 A MOV A R5 SWAP A ANL A 0FH MO

温馨提示

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

评论

0/150

提交评论