1、目 录摘 要 .IABSTRACT .II引言 .11 智能热水器控制系统的总体设计方案 .11.1 方案的分析与选择 .11.2 系统总体设计概述 .21.3 各功能模块介绍 .31.3.1 控制模块 .31.3.2 显示模块 .31.3.3 输入模块 .51.3.4 其它模块 .61.4 本章小结 .82 硬件电路的设计与实现 .82.1 单片机最小系统硬件电路设计 .82.2 显示模块硬件电路设计 .82.3 温度传感器 DS18B20 电路设计 .92.4 电子式水位开关硬件电路设计 .102.5 时钟芯片电路设计 .102.6 声光报警电路设计 .112.7 按键设置模块电路设计 .
2、112.8 电源和开关模块设计 .122.9 本章小结 .123 热水器控制系统的软件设计与算法实现 .123.1 软件总体流程图 .133.2 显示模块程序设计 .143.2.1 写命令子函数 .143.2.2 写数据子函数 .143.3 温度传感器模块程序设计 .153.4 时钟芯片相关程序设计 .163.5 按键设置程序设计 .163.6 主程序和中断服务程序设计 .173.7 本章小结 .174 测试、总结与评价 .174.1 软件平台仿真测试 .174.2 面包板电路搭建测试 .184.3 系统方案总结与评价 .195 结束语 .19参考文献 .20致 谢 .21I基于 51 单片机
3、的智能热水器控制系统摘 要随着科技的进步和人们生活水平的不断提高,热水器越来越普遍地走进千家万户,给人们的生活带来了极大的方便。同时,人们对热水器的智能化和安全性都提出了更高的要求。这就要求热水器具有一个智能控制系统,能够自动获取当前水温和水位信息,判断实际温度与预设温度关系,从而实现加热的自动控制。本文提出了一种基于 51 单片机的智能热水器控制系统的解决方案,该方案采用 DS18B20 单线数字温度传感器来对水温进行检测,使用 DS1302 时钟芯片实现计数和定时功能,同时加入了水位判断和报警设计。用户通过按键和显示屏来完成系统的参数设置,从而实现定时加热、自动恒温等功能。关键词:单片机,
4、热水器,控制,DS18B20IIThe intelligent water heater control system based on 51 single chip microcomputerAbstractWith the progress of science and technology and the continuous improvement of peoples living standard, the water heater is more and more widely into the thousands, has brought great convenience t
5、o peoples life.At the same time, people also hope that the water heater is not just simply by switch or button commands, to heat water, also can according to the people set the temperature of the automatic constant temperature, timing, heating, automatic judgment function such as water level, the wa
6、ter heater of intelligence and security are put forward higher requirements.This requires a water heater has a intelligent control system, can automatically access to current information, water temperature and water level determine the actual temperature and the preset temperature relations, so as t
7、o realize the automatic control of heating.This paper puts forward a kind of intelligent water heater control system based on 51 single chip solution, the scheme adopts DS18B20 single line digital temperature sensor to test the water temperature, using DS1302 clock chip realize counting and timing f
8、unctions, at the same time joined the water judgment and alarm design.The user through the buttons and screen to complete the system parameter setting, so as to realize the function such as timing, automatic constant temperature heating.Key Words:single chip microcomputer, water heater, control, DS1
9、8B201引言随着人们对生活质量的要求不断提高,热水器逐渐成为了城市居民生活的一个不可或缺的东西。经过多年的发展和技术积累,整个热水器行业也不断涌现出新的产品,热水器的种类也越来越多,从最初的燃气热水器一家独大,到现在的燃气热水器、电热水器、太阳能热水器等多种热水器都有一定的市场占有率。在热水器的使用效果上,功能也越来越丰富,使用更加人性化,甚至结合最新的智能家居和物联网理念,智能化程度大大提高,给人们的生活带来了极大的方便。现在的热水器向着安全、节能、稳定、高效、人性化的方向快速发展着。单片机是一种微控制器,体积小、功耗低、通过编程和外围电路设计,可以完成多种智能控制任务。随着单片机技术的迅
10、速发展,越来越多的家用电器采用各种型号的单片机为控制核心,来完成和人类的交互,并通过相应的程序和内部运算,实现一些智能化的控制,使家用电器的操作更加人性化,控制更加智能化。在热水器中,也广泛采用了单片机作为控制核心,通过相应的温度传感器,在热水器的温度控制上达到了更高的精度,完成了从最初的旋钮调节逐渐向数字化调节方向转变。同时,通过不同的传感器,由单片机控制并指示热水器的各种工作状态,在发生缺水、水温过热等情况时及时向用户给出声光报警,从而防止发生意外,保障了用户的安全。本文所提出的智能热水器控制系统,以 51 系列单片机为控制核心,通过温度传感器、水位传感器感知热水器状态,并通过按键、显示屏
11、和用户进行人机交互,实现了定时加热、自动恒温的功能,同时也有过热、缺水的报警设计,给用户带来方便。本设计具有成本低、实用性强、温度控制精度高的特点。1 智能热水器控制系统的总体设计方案本设计所提到的智能热水器控制系统主要是实现对温度的自动控制、定时加热控制和智能报警的功能,因此,智能热水器控制系统主要分为控制模块、显示模块、信息输入模块、加热模块、声光报警模块等几部分构成。1.1 方案的分析与选择对于主控芯片,本方案选择最简单的 8 位 51 系列的单片机,性能可靠,成本低,完全可以满足本系统的要求。而且由于 51 系列的单片机在电子相关专业2中的基础性地位,对其使用和编程都比较熟练,可以极大
12、缩短开发周期,更好地完成设计任务。对于显示模块,LED 液晶显示屏、 LCD1602 字符型液晶、LCD12864 点阵型液晶三者都是简单的、小型的显示器件,均可完成显示任务。LED 液晶显示的内容过于简单,LCD1284 更适合显示图像类信息,而 LCD1602 非常适合显示少量的、丰富的字符信息。因此,选择 LCD1602 字符型液晶。对于输入模块,分为用户信息输入和传感器信息输入。用户信息输入方面,使用按键进行输入要比旋钮更容易控制,用户也更易于接受,通过设置相应的调节按键,可以十分精确地定位到用户所希望达到的温度。当然,按键也有机械按键、电容按键等许多不同的种类,因为本系统处于实验调试
13、阶段,故选取最简单的机械按键。传感器信息输入分为两个部分,第一部分是温度信息输入,使用温度传感器,用于告诉单片机当前的水温,实现温度的自动控制;第二部分是水位信息输入,使用水位传感器,用来告诉单片机水量信息,达到缺水报警的目的。温度传感器一般有热敏电阻和数字式温度传感器 DS18B20 可供选择。热敏电阻的可靠性差,且输出的是模拟量,需要进行相应的 A/D 转换后才能输入,比较麻烦,而相比之下,数字式温度传感器测温范围宽、以单线串行方式与单片机进行通信,节约了单片机的 I/O 口资源,且直接输出数字量,外围电路简单,因此最符合要求。水位信息输入只需考虑是否是缺水状态,因此只要对是否缺水给出一个
14、电平信息即可,直接封装一个断触电点,一端接地,当有水时,单片机对应端口被拉低,无水时端口电平被拉高,来完成是否缺水的判断即可。同时,为了实现精确的定时加热功能,引入专门的时钟芯片 DS1302 进行计时,为单片机提供日期和时间基准。为了保证使用者的安全,加入声光报警提示模块,在加热、缺水时给出提示。1.2 系统总体设计概述本系统采用 51 系列单片机为控制核心,以 DS18B20 单线数字式温度传感器获取温度信息,采用 DS1302 时钟芯片为单片机提供日期基准,显示方面采用 LCD1602 液晶显示屏,以机械按键的形式供用户输入,设置当前的系统时间、定时加热的开始时间、水温设定等,来完成整个
15、控制器的控制工作。系统整体的结构框图如下图 1.1 所示。35V 电源模块1602 显示单片机及其最小系统及电源接口温度传感器模块水位传感器模块声光报警模块按键输入时钟电路图 1.1 系统整体框图1.3 各功能模块介绍要顺利完成整个系统的设计工作,就要对所采用的各个模块的元器件进行具体的选型,并通过元器件的数据手册、操作说明的资料,详细地了解各个元器件的性能、操作方法、硬件连接要求的内容。1.3.1 控制模块本设计采用的主控芯是 51 系列的单片机处理器 STC89C52RC,这是一款采用了 CMOS 工艺进行生产的 8 位处理器,该处理器具有相当可靠的工作性能,正常工作的功耗极低,而且有着相
16、当丰富的系统资源,片内的程序存储空间达到了 4K、具有 512 字节的 RAM 空间,可以满足大多数的程序要求。指令系统完全兼容传统的 8051 单片机内核,有 2K+的 EEPROM 存储空间。要建立完整的控制模块,还要为单片机配置其最小系统的外围电路,主要包括晶振和复位电路,单片机才能正常的工作。1.3.2 显示模块本设计所采用的 LCD1602 液晶显示屏,是一种小型的、集成度很高的液晶显示屏,可以显示字母、数字、符号等,其特点是功耗低、体积小、轻薄、模块化,而且由于其自带字符库,在显示方面的实现上只需要按照要求对其进行初始化、设定相关的显示位置和显示内容即可,操作简单。作为一个集成化的
17、显示模块,其相应的管脚的具体定义可以查阅操作手册获取,而与单片机的具体连接方式将在硬件设计部分详细介绍。如下图 1.2 所示为 LCD1602 的控制器接口的时序说明,在液晶的初始化、4读写操作的相关的编程中,要参考该时序图,结合单片机晶振的选取情况作出必要调整,只有正确的时序才能保证单片机给出正确的控制指令。图 1.2 字符型液晶 LCD1602 的读写操作时序图LCD1602 自带字符库,这就在很大程度上方便了用户的开发,同时也节省了单片机的程序存储空间,不需要在程序中对字符的显示进行定义。如下图 1.3所示。图 1.3 字符型液晶 LCD1602 的字符库1.3.3 输入模块对于单片机而
18、言,要对其进行一定是设置,就必须要有用户进行相关的指令输入,单片机要对热水器的热水温度状态和是否缺水进行感知,要有相关的传感器进行信号输入。输入模块分别为用户指令输入、温度数据输入和是否缺水的信号输入。指令输入由 4 个独立按键完成,温度输入由 DS18B20 来完成,是否缺水的信号由电子式水位开关提供。指令输入模块采用 4 个独立按键完成。独立按键的触发方式为低电平有效,在平时的系统开启状态下,单片机相应端口保持高电平状态,当按键被按下,独立按键两端连通,然后接地,单片机的相应的连接端口的电平被地线拉低,从而能够被单片机捕捉到按键动作。4 个独立按键分别是设定键、键值增加、键值减小、确认这个
19、 4 个功能定义,通过这 4 个按键,结合软件和算法编程,进行按键状态扫描,然后对相应的键值动作设定正确的响应逻辑,就能够为用户提供完整的参数设置功能。温度输入模块主要采用的是一种数字式集成单线温度传感器,型号为DS18B20。图 1.4 数字式单线温度传感器 DS18B20 封装及引脚图在 DS18B20 的芯片手册中,阅读单线传输协议的时序要求,如下图 1.5 所示。图 1.5 DS18B20 的读写操作时序水位信号输入选择电子式水位开关 BZ2401,供电电压范围在 5V-24V,有三根线,电源线、地线和信号线。该产品通过内置芯片检测水位信号,由内部5芯片处理,当判断到有水时,芯片输出与
20、电源电压相同的高电平,当判断到无水时,芯片输出 0V,产品正常供电后,与单片机通过数据线和地线连接。1.3.4 其它模块为了实现准确的定时功能,本系统采用了专门的时钟芯片 DS1302,来提供详细的日期和时间基准。同时,设置 3 个 LED 灯和蜂鸣器,组成其声光提示和报警模块。DS1302 是一款涓流充电时钟保持芯片,由 DALLAS 公司出品,可以通过简单的串口同单片机进行通信,芯片内部有自己的独立时钟电路和一个 31 字节的静态 RAM,能够向单片机提供详细的时钟信息,如日期年月日,时间时分秒等,对于每月的天数和闰年能够自动进行处理,保证日期记录的准确性。在硬件连接上,其使用三个数据线同
21、单片机的相应端口进行连接,分别为复位、数据和串行时钟。其芯片正常工作的功率极低,在日期时间数据的保持和记录时消耗的功率不足 1mW。其封装形式和管脚定义如下图 1.6 所示。图 1.6 DS1302 的封装和管脚定义在使用时,该芯片要外接 32.768KHz 的晶振,需要简单的外围电路。如下图 1.7 所示为其一种典型的应用电路。图 1.7 一种典型的 DS1302 应用电路图声光报警模块所采用的 LED 灯和小型的蜂鸣器就比较常见,电路特性也很6容易掌握,在 LED 灯的使用时,要注意选择合适的颜色,同时要根据最大电流限制,加上合适的限流电阻,从而保护 LED 灯工作在正常的电压电流条件下。
22、蜂鸣器的驱动无法靠单片机的端口直接完成,要使用相应型号的三极管进行放大,如 9012、8550 等型号,通过三极管驱动蜂鸣器,才能正常发声。1.4 本章小结本章对系统的总体方案进行了设计,同时详细确定了系统所应该具有的功能模块,对控制模块、显示模块、输入模块等模块的主要实现方案和元器件的选择方案进行了分析与比较,从而确定了系统所需要使用的各个元器件。同时,根据元器件的资料和数据手册,对主要元器件的硬件连接、使用和操作方法进行了重点研究,为硬件电路的搭建和软件编程提供了基础。2 硬件电路的设计与实现2.1 单片机最小系统硬件电路设计单片机最小系统包括晶振、复位电路等。单片机内部已经具有时钟震荡电
23、路,因此,我们搭建单片机最小系统,只需要在其 XTAL1 和 XTAL2 两个引脚之间加入反馈电路,就可以让单片机得到时钟信号。一般的反馈电路就是石英晶体振荡器和两个 30uf 的旁路电容,电容值的大小是根据其晶振频率高低进行调整的。在单片机的最小系统的电路中,石英晶体振荡器的频率越高,单片机内部时钟信号的周期就越短,单片机的指令执行速度就越快。本设计中在单片机时钟频率的设置方面采用 12MHz,同时对单片机的复位引脚设置相应的复位按键,以供用户在必要的时候对单片机进行重启操作。对于本系统的各个传感器接口,也要进行引出,以供各个传感器、电源、数据线接口使用。最小系统可以在万用板上手工搭建,也可以直接使用 PCB 板上焊接好的成品模块,其硬件原理图如下图 2.1 所示。