1、- 1 -基于单片机的热水控制器系统设计摘要:本文介绍了用 51 单片机设计的一种多功能热水控制器,具有自动和手动加水、设置水温、实时显示水量及温度和报警功能,并且具有结构简单、可靠性高、成本低等特点。 当前市场上的热水控制器基本上采用双金属片温控,控温精度低、可靠性差、功能单一。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在热水控制器中应用单片机,具有设计简单、可靠性高、功能易扩展等优点。本文着重于热水器在智能控制方面的探讨。关键词:单片机,热水器,51,加热- 2 -Abstract: This paper introduces single-chip
2、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 Bimet
3、al 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 controlle
4、r 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.Key words: microcontroller, water heater, 51, heating- 3 -目 录1 整体设计方案 .- 3 -1.1 课程设计要求 .- 3 -1.2 设计目的 .- 4 -2 设计方案 .- 5 -3 硬件电路设计 .- 6 -3.1
5、DS1820 的工作原理 .- 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 整体设计方案2 课程设计要求完成基于单片机的热水控制
6、器系统的设计,能够实现水温的自动加热,并检测水温大小,对温度进行显示。o 程序设计合理、简洁。o 自行设计检测及相关处理电路。o 完成单片机数据采集及处理的硬件电路设计及相关软件编程。o 辅助电路及元器件自选。 o 自选传感器类型o 加热范围 40100 摄氏度3 设计目的现代科技飞速发展,拥有渊博的知识是今后一展鸿图的基础.实践也同知识一样重要,如果不在学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节,学习与应用脱节的局面。任随书本上把单片微机技术介绍得多么重要、多么实用、多么好用,我们仍然会感到那只是空中楼阁,离自己十分遥远,或者会因此而对它失去兴趣,或者会感到它高
7、深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。“基于单片机应用设计”的目的就是让我们在理论学习的基础上,通过完成一个涉及 MCS-51 单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使之不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,- 5 -同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。4 设计方案本文介绍了用 51 单片机设计的一种多功能热水控制器,具有自动和手动加水、设置水温、实时显示
8、水量及温度和报警功能,并且具有结构简单、可靠性高、成本低等特点。 当前市场上的热水控制器基本上采用双金属片温控,控温精度低、可靠性差、功能单一。随着微电子技术的发展,单片微处理器功能日益增强,价格低廉,在各方面得到广泛应用。在热水控制器中应用单片机,具有设计简单、可靠性高、功能易扩展等优点。热水控制器主要实现对水温的控制,并满足不同用户的个性需求。因此一个较完善的控制器应具有以下功能:水温的测量与显示;水量的测量与显示;用户设定功能(如水温设定,定时设定等);对电加热管的控制功能;一些功能键(如定时自动加水,恒温控制,手动加水,手动加热等)。- 6 -图 1 原理框图5 硬件电路设计根据热水控
9、制器的功能要求,并结合对 51 系列单片机的资源分析,采用此系列中的主流型号 89C51 作为电路系统的控制核心。电热水控制器的总体布局如图 1 所示。基本硬件电路图如图 2(a)(c)所示。在本系统中,P0.0P0.3 用于七段码显示,P2.6 控制水闸开关,P2.7 控制电加热管,P3.3P3.5 用于按键设计和读取水量,P3.0P3.2 用于跟 DS1820 通信进行水温测量,P2.0P2.1 对七段码进行扫描,P2.2P2.5 LED 指示灯显示,P3.7 控制扬声器用于报警和指示。1.水温测量电路水温测量电路如图 4 所示,测温元件采用 DALLAS 的单线数字温度传感器DS1820
10、。DS1820 提供九位温度读数,测量范围-55125,采用独特 1-WIRE 总线协议,只需一根口线即实现与 MCU 的双向通讯,具有连接简单,高精度,高可靠性等特点。在工作时,通过总线向其提供电源,单片机发出指令码读取温度值。89C51电源控制温度测量LED 显示键盘和水量档位- 7 -6 DS1820 的工作原理DS1820 采用 3 脚 PR-35 封装或 8 脚 SOIC 封装,管脚排列如图 2 所示。图中 3 号引脚为 GND,2 号引脚 I/O 为数据输入/输出端(即单线总线) ,该脚为漏极开路输出,常态下呈高电平。1 号引脚 VDD 是外部+5V 电源端,不用时应接地。NC 为
11、空脚。图 3 所示为 DS1820 的内部框图,它主要包括寄生电源、温度传感器、64 位激光 ROM 单线接口、存放中间数据的高速暂存器(内含便笺式 RAM) ,用于存储用户设定的温度上下限值的 TH 和 TL 解发器存储与控制逻辑、8 位循环冗余校验码(CRC)发生器等七部分。图 2 DS1820 引脚图123D S 1 8 2 0- 8 -图 3 DS18B20 内部结构图7 寄生电源电路寄生电源由二极管 VD1、VD2 和寄生电容 C 组成。电源检测电路用于判定供电方式。寄生电源供电时,VDD 端接地,器件从单线总线上获取电源。在 I/O线呈低电平时,改由 C 上的电压 Vc 继续向器件
12、供电。该寄生电源有两个优点:第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读 ROM。若采用外部电源 VDD,则通过 VD2 向器件供电。8 温度测量原理DS1820 测量温度时使用特有的温度测量技术。其测量电路框图如图 3 所示。DS1820 内部的低温度系数振荡器能产生稳定的频率信号 f0,高温度系数振荡器则将被测温度转换成频率信号 f。当计数门打开时,DS1820 对 f0 计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非- 9 -线性予以被偿。测量结果存入温度寄存器中。一般情况下的温度值应为 9 位(符号点 1 位) ,但因符号位扩展成高 8
13、 位,故以 16 位被码读出。图4 DS1820测温原理框图高速暂存器在正常测温情况下,DS1820 的测温分辨力为 0.5,可采用下述方法获得高分辨率的温度测量结果:首先用 DS1820 提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB) ,得到所测实际温度的整数部分 Tz,然后现用 BEH 指令取计数器 1 的计数剩余值 Cs和每度计数值 CD。考虑到 DS1820 测量温度的整数部分以 0.25、0.75为进位界限的关系,实际温度 Ts 可用下式计算:Ts=(Tz-0.25)+(CD-Cs)/CD- 10 -9 高温自动报警电路DS1
14、820 完成温度转换后,就把测得的温度值与 TH、TL 作比较。若 TTH 或TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只 DS1820 同时测量温度并进行告警搜索。一旦某测温点越限,主机利用告警搜索命令即可识别正在告警的器件,并读出其序号,而不必考虑非告警器件。CRC 的产生在 64 位 ROM 的最高有效字节中存储有循环冗余校验码(CRC) 。主机根据ROM 的前 56 位来计算 CRC 值,并和存入 DS1820 中的 CRC 值作比较,以判断主机收到的 ROM 数据是否正确。CRC 的函数表达式为:CRC=X8+X5+X3+1。此外,DS1820 尚需依上式为暂存器中的数据来产生一个 8 位 CRC 送给主机,以确保暂存器数据传送无误。10 基本温度水温测量电路基本温度水温测量电路如图 5 所示,本系统中,一个 DS18B20 温度传感器,三个七段码显示与四个 LED 灯指示,四个功能按键与水量设定按键使用同一组按键。按键的优先权高于水量信号,水量高档位信号优先权高于低档位信号,以保证能优先响应按键。