基于单片机的热水器控制系统的设计与实现(源码+万字报告+实物)
目 录
1 绪论 1
1.1课题研究背景及意义 1
1.2国内外研究现状 1
2 电热水器控制系统的总体设计方案 2
2.1主要设计内容 2
2.2系统整体设计方案 2
2.3各功能模块介绍 3
2.3.1主控模块 3
2.3.2温度采集模块 4
2.3.3按键模块 4
2.3.3显示模块 4
3 硬件电路的设计与实现 4
3.1单片机最小系统硬件电路设计 4
3.2温度传感器电路设计 5
3.3按键电路设计 5
3.4看门狗复位电路设计 6
3.5显示电路设计 6
3.6继电器加热电路设计 7
3.8电源和开关电路设计 8
4 软件系统设计 8
4.1主程序设计 8
4.2子程序设计 8
4.2.1温度传感器子程序设计 8
4.2.2加热继电器控制子程序设计 9
5 系统编写与系统测试 10
5.1 Keil软件简介 10
5.2使用Keil软件建立一个工程 11
5.3系统调试 12
6结论 15
参考文献 16
附 录 17
谢 辞 23
1绪论
1.1课题研究背景及意义
社会的不断发展,必然会淘汰不适用于这个时代的产品,随之而来的是经过社会筛选的,符合人们要求的智能化,人性化的设计。一切事物都在不断的创新和更替,家用电器也逃脱不了。70年代初,香港进步人士送给了周总理两台燃气热水器,周总理带回了国内,人们开始接触到热水器,热水器在中国开始慢慢进入到人们的生活中,但是燃热水器不容易调节温度,消耗能源,还容易产生有害气体。而节能减排是国家的发展方向,因此燃热水器时代终将成为历史,而太阳能热水器和电热水器,节能安全,不会对环境造成污染,受到消费者的一致好评。虽然太阳能热水器的安全性很高,但是受天气和安装位置的限制,不方便使用。而智能电热水器却受到了用户的一致好评。
随着技术的不断创新和发展,很多智能化的元素加入到热水器的设计过程中,不断更新,来满足人们的需求。种类也变的多样,比如储水式电热水器,即热式电热水器。用最新的科学技术来弥补热水器本身的局限性,水电隔离,使的安全系数提高;保护装置,使其自动断电。外观小巧,不占空间,节能美观等等因素,使消费者喜欢上了这个家用电器。智能电热水器必将是一种发展趋势。这正是我选择这一设计课题的原因。
由于单片机的体积小,便安装,使得其应用范围越来越广,尤其是现代化的智能家用电器。他们的控制核心一般都采用各种型号的单片机,而对单片机进行编写程序和硬件焊接,使其实现对电器的智能化控制,满足用户对家用电器的需求。正是在这样的现状下,本设计控制系统是以STC89C52单片机作为主控芯片,并通过温度传感器,对当前水温进行采集,并通过数码管进行实时数据显示。使用单片机来对智能家用电器进行控制是一种流行趋势。
1.2国内外研究现状
由消费者数据库的数据显示,网友对热水器讨论出现峰值,尤其是北京上海等一线城市的年轻女性,都更加喜欢智能电热水器,并热切关注大品牌热水器的更新换代,例如海尔,华帝,史密斯等著名的热水器品牌。这一现象就基本代表着热水器今后的流行趋势。新一代的年轻人,在热水器的选择上,会更加倾向于环保,美观,干净的电热水器。
而在国外,经过多年的技术沉淀,不断的引进高新技术,不断进行产品的创新,热水器的使用早就得到消费者的认可了,技术也比较成熟,一些大的国外品牌,比如西门子,威能,阿里斯顿等等,像阿里斯顿的电热水器,采用水电分离设计,使其减少触电的可能,智能保护技术,使其没有安全隐患。而热水器市场将是一个巨大的市场,国外的著名热水器品牌纷纷进军中国,抢夺先机,占领市场,可见,电热水器市场将是一个
摇钱树,我们要致力于智能电热水器的设计与创新,引领时代潮流。
在前些年,电热水器在国内风靡了一段时间,但由于自身电力条件的局限性和高端技术的缺乏,电热水器在中国没有发展起来,但和现在的情况不同。电力工业也在不断的改进和发展,现在的住房电力条件都能供得上电热水器的使用,更何况,现在的电热水器比之前传统的热水器要省电的多,如今的电热水器,智能化,人性化的设计,使的它更加深入人心。非常安全,较少发生触电危险。还可以根据季节的变化,设置适合的模式,加热时间等,如此一来,也可以节省能源。因此电热水器今后在国内的发展趋势锐不可当。
2电热水器控制系统的总体设计方案
2.1 主要设计内容
本次设计所研究的基于单片机的热水器控制系统可以实现如下功能。
(1)具有温度检测功能。对当前水温进行采集和显示,并判断当前温度与设置温度的关系,从而进行热水器加热控制。
(2)实时数据显示功能。 通过数码管对当前时间和温度进行数据显示。
(3)恒温保持。
(4)加热。当检测到当前水温低于热水器预设温度时,蓝灯亮,表示继电器闭合开启加热;当检测到当前水温高于热水器预设温度时,蓝灯灭,表示继电器断开,停止加热。
2.2系统整体设计方案
本次设计研究的热水器控制系统整体设计方案主要包括硬件设计方案和软件设计方案。
这个控制系统是以STC89C52单片机作为主控芯片,在外接温度测量电路、继电器开关电路、看门狗复位电路等电路组成。在热水器工作时,利用温度传感器采集热水器的当前水温。当采集到的当前温度小于预设的温度时,加热继电器闭合开启加热,此时蓝灯亮;自动加热,当采集到的当前水温高于预设的温度时,加热继电器便自动断开,加热自动截止,此时绿灯灭。而在热水器的整个工作过程中,都是通过数码管对当前时间和温度进行实时数据显示。根据本次设计的需求,我们在考虑到成本,体积,安全等因素下,对热水器控制系统的硬件设计框图如图2-1所示。
图 2-1 系统硬件结构示意图
软件设计是整个控制系统的灵魂部分。本次软件设计的开发语言是C语言。这是一门应用广泛,简单便捷的语言,下面列出了本次软件设计的流程。
(1)根据本次设计需要实现的功能来进行软件系统设计,分为主程序设计和子程序设计。
(2)绘制好各功能模块的程序流程图。
(3)用C语言编写好各功能程序。
(4)把编写好的程序代码放入到Keil软件中,进行连接编译。
(5)再对系统进行调试,有错误的地方,再修改代码改正。
2.3 各功能模块介绍
2.3.1 主控模块
STC89C52单片机是这个控制系统的主控芯片。选用STC单片机,成本低,性能高,硬件不需要改动,实用性强。可以兼容传统的8051单片机,是51单片机的增强版。工作电压是5.5V~3.3V,工作频率是0~40MHz,用户应用程序空间是8K字节,512字节程序存储空间,32个通用I/O口,具有EEPROM功能和看门狗功能,共三个16位定时器,外部中断4路,通用异步串行口,工作范围温度在-40~+85℃,PDIP封装,可直接使用串口下载。STC89C52单片机简单,成本低,但却有着丰富的引脚,运作频率很快,是新一代的体积小,高速,低功耗,安全性高,操作简单的单片机,所以我们采用这一款单片机作为整个控制系统的芯片。
2.3.2 温度采集模块
此设计系统采用的是一种数字式集成单线DS18B20温度传感器,首先它的安放地点非常随便。由于体积小,可封装,不容易损坏,可适用于不同场合,比如热炉厂,炼钢厂,实验室等等,一些比较狭小不好测量的环境都可以。再者价格便宜,精度高,可大规模使用。还有其接线方式独特,只需要一条口线就能在单片机和传感器之间进行通讯,不需要外围元件。测温范围也比较广,不锈钢保护管,不容易损坏,能够在管道中测温。
有的时候可以不用外接电源,通过内部寄存器可从数据线上获取电源,比较方便,实用
冰箱,空调等一些家用电器都可以使用。所以,在综合考虑到各方面的因素之后,我们决定使用DS18B20温度传感器进行温度采集。
2.3.3 按键模块
本设计采用了6个独立键盘,独立按键编程比较简单,再者按键个数不多,可选用独立按键,其一是温度键,可用于显示当前温度;其二是时钟键,可用于显示当前时间;其三是连加键,用于预设温度时进行温度连加操作;其四是连减键,用于预设温度时进行温度连减操作;其五是修改键,用于预设温度的修改,和初始化时钟时的修改;其六是确定键,当预设温度设置好之后,按下确定键;当初始化时钟后,按下确定键。本设计的按键模块,紧跟设计要求,经济,增加了系统的灵活性。
2.3.4 显示模块
本设计采用的是数码管进行实时数据显示。以CH451作为数码管的驱动芯片,用动态驱动电路来驱动数码管,从而显示出我们要采集的温度,当前时钟。当前普遍使用的显示屏还有液晶屏,但它的价格比较昂贵,而数码管比较经济。使用简单,显示清晰,不受限于温度,应用非常广泛,而且数码管比较环保,可回收,没有污染。寿命长,适合于长时间使用。所以综合各方面因素考虑,我们还是选用数码管进行数据显示。
3硬件电路的设计与实现
3.1 单片机系统硬件电路设计
单片机系统包括电源电路、温度传感器电路、按键电路、看门狗复位电路等。电源电路向单片机供电,温度传感器电路测量温度,看门狗复位电路定期检查电路,完成单片机的整个工作过程,其硬件原理图如图3-1所示。
图3-1单片机系统及其接口电路设计
3.2 温度传感器电路设计
DS18B20温度传感器可以直接读出被测温度,并将温度转换成可用输出信号,并将输出信号,通过一条口线在单片机和传感器之间进行通讯,读取传感器的温度值。
图 3-2 温度传感器电路图
3.3 按键电路设计
本设计的温度设置、时钟设置都要通过按键来实现,采用的是6个独立按键的设计,其电路图如图3-3所示
3-3 按键电路设计图
3.4 看门狗复位电路设计
当程序出现问题时,内存和寄存器中的数据就会被打乱,如果不对这些错误的程序指令进行修改,都会程序飞跑,正常的程序运行将会被打乱,控制系统就会出现问题,不能正常工作。考虑到这种情况,看门狗复位电路是不可或缺的,用它来能够定期检查芯片内部的情况,一旦发现问题就向芯片发出重启信号的电路。根据以往设计的经验和本次设计的要求,我们设计的看门狗复位电路图如图3-4所示。
图3-4 看门狗复位电路
3.5 数码管驱动电路设计
普通数码管公共段,正常静态工作电流能达到70-80mA,单片机一般不足以提供这么大的电流。此设计中,用三极管来驱动四位数码管,加三极管可扩展IO口的驱动能力,使单片机工作更加稳定可靠。本设计的驱动电路易操作又简单,如图3-5所示。
图3-5 驱动电路图
3.6继电器加热电路设计
通过温度传感器DS18B20采集热水器的当前水温,当采集到的温度小于预设的温度时,加热继电器闭合开启加热,当采集到的水温高于预设的温度时,加热继电器便自动断开,加热自动停止。电路图如图3-6所示
图3-6 继电器加热电路图
3.7电源和开关电路设计
电源电路给整个控制系统的各个单元电路提供稳定的电流,保证系统的稳定运行。其电路图如图3-8所示。
图3-7电源电路设计
4 软件系统设计
4.1 主程序设计
当我们在执行一个程序时,首先执行的是主程序,而在主程序中可以调用某个子程序,当这个子程序完成自己的职责后,再回到主程序。在主程序运行前,我们要将定时器和温度传感器先进行初始化,使系统的工作参数回到原始状态,然后进入主循环,调用按键子程序,进行温度,时钟的参数设置,当设置好参数后,系统主程序就可以调用DS18B20传感器数据采集程序和数码管显示子程序,来显示当前的实时温度。
4.2 子程序设计
4.2.1 温度传感器子程序设计
DS18B20传感器将每1s对温度进行测量一次,然后将此温度与预设的温度进行比较处理,DS18B20温度流程图如图4-1所示。
图4-1 DS18B20温度流程图
4.2.2按键设置子程序设计
开始扫描按键,并判断哪个按键被按下,通过找到按键,对温度,时钟进行设置,所以要把按键和设置程序在主程序中反复调用。
图4-2 温度子程序设计图
5 程序编写与系统调试
5.1 Keil软件简介
美国Keil Software公司生产的Keil是一个C语言软件开发系统,这个系统可以兼容51单片机。我们编写的是C语言程序代码,CPU不能识别执行,我们就需要一个工具,将编写好的代码变成机器可以识别的机器码.单片机的开发软件也在不断地发展,keil就是一个易操作,易理解的新型开发软件,它具有一个非常完整的开发方案,功能也比较强大,并且还具有仿真调试工具,通过keil生成的代码紧凑,易读,让用户容易理解。经过综合考虑,我使用keil来建立一个工程,并经行编译,连接,生成要写进单片机的HEX文件。
5.2 使用Keil软件建立一个工程
首先我们要先打开Keil软件,就会出现Keil软件主界面,工程文件都是空白的,如图5-1所示
图5-1 软件主界面图
然后点击Project,再新建Project,如图5-2所示。
图5-2 新建工程示意图
再选择保存工程的位置,将新建的工程进行保存,这一步完成后,我们就建立了一个工程了。下一步,我们需要做的是,在新建的file里编写自己的程序代码。并把它添加到工程中,如图5-3所示。
图5-3 程序代码图
之后,我们就要对代码进行编译了,点击连接,编译按钮,显示无错误,然后此时的Keill就生成了要写进单片机的HEX文件。如图5-4所示
图5-4 编译结果图
5.3 系统调试
我们要对系统进行调试,查看系统的硬件电路能否能够实现预想的功能。如果有问题,就需要作出修改。把所有的元器件焊接完成,开始调试,看是否焊接完整,再打开电源,给系统供电,看是否能够正常供电,如图5-5所示,可见电源灯亮起,数码管屏能够显示当前温度。
图5-5 数码管屏显示图
通过修改键和连加键,预设温度为30度,如图5-6所示 。
图5-6 预设温度示意图
点击确定键,温度传感器检测到热水器当前温度21度低于设置的温度30度,加热继电器闭合,开始加热,加热指示灯亮。温度检测示意图如图5-7所示。
5-7 温度检测示意图
继续加热,当热水器加热到30度时,加热指示灯熄灭,就完成了热水器加热的整个过程如图5-8所示。
图5-8 指示灯熄灭示意图
进行时钟调整,按下时钟键,显示初始状态零点,通过连加键和连减键,设置当前时间11点03分,过2分钟,显示11点05分。如图5-8,5-9所示。
图5-8 时钟显示图
图5-9 时钟显示图
作者:炳烛之明科技