家用电热水器控制系统设计.docx

上传人:b****7 文档编号:8657464 上传时间:2023-02-01 格式:DOCX 页数:45 大小:309.50KB
下载 相关 举报
家用电热水器控制系统设计.docx_第1页
第1页 / 共45页
家用电热水器控制系统设计.docx_第2页
第2页 / 共45页
家用电热水器控制系统设计.docx_第3页
第3页 / 共45页
家用电热水器控制系统设计.docx_第4页
第4页 / 共45页
家用电热水器控制系统设计.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

家用电热水器控制系统设计.docx

《家用电热水器控制系统设计.docx》由会员分享,可在线阅读,更多相关《家用电热水器控制系统设计.docx(45页珍藏版)》请在冰豆网上搜索。

家用电热水器控制系统设计.docx

家用电热水器控制系统设计

摘要I

ABSTRACTII

第1章引言1

第2章系统功能需求分析与设计方案选择3

2.1系统功能需求分析3

2.2方案选择3

2.3本章小结6

第3章硬件系统设计7

3.1电源电路7

3.2单片机最小系统说明8

3.3温度检测电路9

3.4人机交互电路10

3.4.1键盘接口电路10

3.4.2显示电路10

3.5红外一体接收模块13

3.6报警电路13

3.7本章小结13

第4章软件系统设计15

4.1主程序流程图15

4.2液晶显示程序设计15

4.2.1写操作时序图15

4.2.2初始化程序16

4.2.3向LCD1602发送数据程序设计17

4.3按键扫描程序设计17

4.4温度控制程序设计18

4.4.1初始化DS18B2018

4.4.2读取DS18B20当前温度19

4.5控制程序策略设计19

4.6本章小结21

第5章仿真与调试22

第6章总结26

致谢28

参考文献30

附录1

摘要

本设计完成了基于单片机控制的家用电热水器控制系统的设计。

系统选STC89C51单片机作为控制器,利用DS18B20数字温度传感器实时检测当前水温,以串行通行的方式反馈给单片机搭建了硬件平台;利用C语言完成温度控制系统软件开发;借助protuse平台进行了模拟仿真,仿真结果表明:

该系统实行方案简单易行,可以实现检测水温、加热、红外遥控等功能。

关键词:

STC89C51,DS18B20,红外遥控

 

ABSTRACT

Thisdesignfinishesdesigningofthehouseholdelectricwaterheatercontrolsystembasedonthecontrolofsingle-chipmicrocomputer.Inthissystem,STC89C51single-chipmicrocomputerisusedascontrollerandDS18B20digitaltemperaturesensorisusedtoconductfieldtestofcurrentwatertemperature.Italsousesthewayofserialandpassagetogivefeedbacktosingle-chipmicrocomputertosetuphardwareplatform.Besides,CProgrammingLanguageisusedtodeveloptemperaturecontrolsystemsoftware.Italsousestheprotuseplatformtoconductsimulation.Thesimulationresultshowsthatthissystemissimpleandfeasibleofthisexecutionprogramanditalsoachievesthefunctionofdetectingwatertemperature,heatingandinfraredremotecontrolandsoon.

Keywords:

STC89C51,DS18B20,infraredremotecontrol

第1章引言

随着科学技术的发展,城镇居民家庭多数以更加安全方便的电热水器代替了燃气热水器;从前风光无限的燃气热水器因污染原因和安全问题逐渐退出了我们的视线;新兴的太阳能热水器虽然受到安装条件和天气原因的限制,但其安全、节约、环保的特性广受消费者青睐,发展态势迅猛。

电热水器相较于燃气热水器和太阳能热水器的优点:

便于安装,不受外部天气的影响,不受楼层和供水管道的限制,加热速度快也更加有安全保障,正是因为这些优点大部分家庭选择电热水器。

由于技术在不断的发展,对各种嵌入式设备的要求也越来越高了,与此同时热水器的智能化发展也非常迅速。

人们已经不能满足传统热水器非智能的操作方式,再这样的背景下,本次设计将要设计一款智能化的热水器设备。

通过热水器智能的调控可以完成自动断电的安全功能,同时设置的有红外遥控的功能,可以满足用户的遥感的要求。

快捷方便,使人们洗浴时能放心享受,安全便捷,其性能满足人们对现代生活快节奏的需求。

STC89C51的内部资源非常丰富,而且功能强大。

STC89C51集成以下功能STC89C52最后一个字符“1”代表了该存储芯片的Flash容量大小为4k字节。

同时它内部集成256字节片内RAM,RAM主要用于程序变量的存储,256字节可以适用于小型的程序运行。

32个数据I/O接口,这些接口在用于普通功能时用来完成数据通信。

这些I/O口有的还有复用功能,这在后面会介绍到。

1个看门狗定时器,起到监测程序运行状况的作用。

2个数据指针,一个堆栈指针,一个程序PC指针。

三个16位定时器,大部分要配合中断来实现定时功能,主要作用是计时的。

三个16位计数器,用于监测脉冲跳变次数或者其他计数。

6个中断源,中断在单片机的内部资源中占有很重要的部分,有了中断程序可以高效率的执行。

全双工串行口,通过串口来和其他主机通信,起到通讯作用。

[1]借助于STC89C51单片机的强大功能,来控制真个系统的协调运行,STC89C51单片机作为此次系统的控制芯片,通过围连接显示模块以、数据输入模块,红外线传输模块以及报警电路完成此次的系统设计。

本设计第一章主要描述了加热电热水器控制系统的应用背景、目的和意义;第二章是控制系统的需求分析和设计方案的选择,主要包括控制器方面的选择;第三章介绍了控制系统硬件电路的设计;第四章主介绍了控制系统软件方面的设计;第五章进行了控制系统的仿真和测试;第六章主要是对该系统存在的问题以及解决的方案进行总结。

第2章系统功能需求分析与控制方案选择

根据预想所要达到的控制要求有:

(1)用LCD1602液晶显示水温、设置上下限和定时时间。

(2)水温检测显示范围为00~99℃,精度为±1℃。

(3)温度设置区间为0度到99度,系统不断检测当前水温,如果水温高于用户设定的数值,则系统自动断电,不在加热。

如果水温低于用户设定的数值,则系统不会断电,继续加热。

(4)设置4个程序按键。

分别为设置按键、加键、减键、确定键。

(5)可以红外遥控,通过红外一体接收探头接收遥控器信号,执行与主板按键同等功能。

由此可以确定两种方案进行比较选择。

2.1系统功能需求分析

在此次的系统设计中主要是通过温度传感器测得的数据,通过和单片机的连接引脚完成数据的传输。

单片机通过采集到数据进行温度值的判断,来控制加热器的运行状态。

系统中的数据显示使用的是LCD1602液晶显示屏,来显示实时温度的数值。

报警指示灯(黄):

当热水器出现异常情况时,该指示灯被点亮。

系统在通电之后,单片机内部的PC指针指向程序运行的区域,首先开始的是温度传感器的初始化,在完成温度初始化任务之后,系统就处于检测判断状态。

检测按键的发生以及温度是否超出设定区域。

首先进行温度数值的判断,接着继续检测温度按键,若无按键,则接着上一步的执行(以新的设定值开始工作)。

若有按键,则重新设定温度范围,如此循环。

2.2方案选择

方案一:

以STC89C51单片机为控制中心的智能电热水器。

主控模块在整个系统中是最中心的部分,承担着统筹的作用,需要检测键盘等各种参数,以及驱动数码管的显示。

[2]在本次设计中我选用了51系列单片机中的STC89C51单片机作为系统的主控芯片。

因为单片机功能强大,应用广,从小的电子产品到大的工业控制都有很广泛的应用。

STC89C系列单片机兼容性很好。

除了单片机内部扩展资源不同之外,其余资源都相同。

比如说52类型的单片机比51类型的单片机E2PROM扩大了2倍,以及内部随机数存储器RAM增大些之外,其余功能全部一样。

也就是说STC89S系列单片机基础功能都具备,并且引脚位置,中断地址,以及定时器方式都是一样的,唯一不同的是扩展的功能。

由于单片机在不同场合控制的复杂度不一样,所以对单片机内部资源配置也不同。

以便于适应于多种场合使用,而且选择合适的单片机型号,可以节约成本。

当然,资源丰富的单片机价格也要稍贵一些。

此类单片机以EEPROM电可檫除和Flash技术为主导的存储器单片机以FLASH作为存储器的好处很明显,Flash可擦出次数多,一般很少因为擦除程序超出擦除Flash次数而损害单片机的。

单片机的存储器除了可以存储程序,还可以运行程序,但是不能存储程序中的某些变量。

这样可以加快程序的执行速度,提高单片机的效率。

STC89系列的单片机具有以下特性:

(1)单片机引出的多个I/O口,使数据交换更加方便。

(2)采用静态时钟模式。

单片机外部连接晶振电路,通过晶振里面的震荡电路给单片机提供时钟脉冲。

时钟脉冲为单片机的程序执行提供了时钟节拍,在一个时钟节拍下,单片机的PC指针取一个指令执行,从而完成程序的顺序执行。

(3)可以应用于较小系统设计,或者定制用于专用的系统控制器,对需要控制的系统提供一种便捷的处理方法。

(4)通过定时器和计数器,可以设置时间间隔和记录电压变化次数。

(5)可以使用汇编语言设计的程序,其执行的效率更加高效。

以达到节约单片机内部宝贵的资源为目的。

(6)单片机的品种多,可以选用不同内部资源部处理器,达到节约成本的目的。

下面具体介绍STC89C51芯片的参数:

STC89C51是一个8位微控制器,芯片内部已经集成4K字节存储区域的Flash,可以直接运行程序。

STC89S51采用的是51系列的内核它与工业80C51产品指令和引脚完全兼容。

单片机的P0口。

如果要改变P0口的输出电平值时,要在在单片机的相应寄存器里写入数据1时,单片机就会把相对应的端口输出高电平。

如果在相应的寄存器里面写入0,单片机就会在相对应的端口输出定电平。

比如在P0的寄存器地址上写入P0=0x01,则P0.1口位置就会输出高电平;如果P0=0x00,则P0口位置就会输出低电平。

同理,外部线路提供低电压则可以通过该引脚读出低电压,单片机内部对该位的寄存器就会被写入0。

由于P0口输出电流较小,所以需要上拉电阻来提供驱动电流。

单片机的P1口。

P1口外部不用设置上拉电阻,P1口的能够提供20MA的驱动电流,所以可以直接对P1口的寄存器写值。

P1口一般没有复用接口,在STC其他的单片机中有P1口的复用引脚,用来设置定时器PWM波的输出,或者单片机内部AD电压值的采集端口。

在本次心率计的设计中,并没有用到PWM的功能,所以选择的芯片为传统的51内核单片机。

在没有复用功能的单片机引脚,只有引脚的高电平和低电平输入输出功能,以及对单片机引脚的电压值读取功能。

功能类似于P0口,如果要控制P1口的电平输出值,就要对P1口的地址寄存器写入数据。

P2口可以作为普通I/O功能也可以用作第二功能。

当P2口作为普通I/O口输入输出时,同P0、P1口一样,只是对该位的引脚输出高电平和低电平的操作。

当P2口作为第二功能使用时,P2口作为外部存储区域的高八位地址线。

当单片机的内部存储区的容量不够时,就要采取外部连接存储芯片的办法来扩充单片机的存储容量。

[3]由于单片机的程序存储区域可以直接运行程序,单片机的内部可以直接寻址找到程序所在的地址,在连接单片机外部外部存储芯片时,要和芯片的读取地址相对应,所以外部存储的连接位置是不可改变的,从而确定P2作为复用引脚的地址位置。

通过对P2口地址的访问,可以读取外部存储芯片中的数据,也可以对相应的地址为写入数据。

外部连接的存储芯片的大小可以选择,通常选用的标准是根据程序的大小来决定的。

P3口是一个可复用的端口。

P3口的第一功能是作为数据的输入输出,通过对P3口的地址写入数据,从而控制高低电平的变化。

当单片机设置了第二功能是,单片机的第一功能就不再工作,两种模式只能选用其中的一种。

另外P3口还可以设置第二功能。

STC89C51单片机内部集成了6个中断。

中断的作用是使程序更高效的执行,其中两个外部中断通过外部引脚进行触发,提供感知外部的电压变化进入中断。

定时器一共有3个中断,这些中断是单片机的内部中断,根据设置相关的寄存器来触发定时器中断。

[4]中断的相应与设置的相应中断标志位有关,一旦中断响应,就立即进入用户写的中断程序中。

另外一个是串口中断,来检测串口接收或者发送数据的。

串口对于单片机来说是一个与外界通讯的接口。

有了串口,可以完成单片机对PC的通讯,或者单片机对单片机的通讯。

通过串口传输数据,完成对单片机的控制任务。

通过上面所述,可以知道STC89C51单片机具有结构简单、控制能力强、可靠性高、体积小、价格低等优点。

下图为以STC89C51单片机为控制芯片的系统连接图:

 

方案二:

PIC16C72单片机为控制器件的智能电热水器。

PIC16C72是一款8位芯片。

它的片内资源要比51单片机丰富,它的片机集成A/D转换器,片内有大容量的程序存储器以及数据存储区。

但是它的成本比较贵。

通过上面的综合考虑,这次设计硬件电路时,并不需要处理器片内丰富的资源,这次写入的程序较小,普通的51单片机就足以应付这次的系统设计,但考虑到成本控制和软硬件实现难度,采用方案一的控制系统设计比较方便快捷,可以进一步提高电热水器的智能作用,能够保证持续的热水供应,并可以满足人们日常生活的需要,提高了人们生活的质量。

2.3本章小结

本章主要对此次设计的家用电热水器控制系统的控制器方案选择上做了决定,最终决定使用结构简单、控制能力强、可靠性高、体积小、价格低的STC89C51单片机作为控制器。

第3章硬件系统设计

本章节的硬件设计主要是系统电源的设计以及为控制芯片的外围电路设计。

下面首先介绍系统电源电路的设计:

3.1电源电路

下图为系统电源的设计流程图:

系统供电电压各部分简介:

(1)对电压降压

由于市电的电压值较高,单片机不能直接使用,所以在进行电压处理之前应先进行电压的降压操作。

(2)整流滤波电路

电压进过变压器的电压转化之后电压值虽然稳定在5V左右,但是输出的是交流电。

需要把交流电转变为直流电,这一步就需要设计整流滤波电路。

(3)稳压电路

当电流经过整流滤波之后电压并不稳定,单片机需要一个稳定的电源这是的电源对单片机的系统稳定性不利。

所以需要通过一个稳压芯片把电压稳定下拉。

[5]本次设计采用的芯片是7805。

通过这个芯片可以控制电压的稳定输出。

下图为稳压芯片的电路连接图:

 

图3.2可调稳压电路原理图

 

图3.37805三端稳压电源电路

需要特别注意的是,单片机需要输入较为稳定的电压波形,虽然稳压器7805输出电压波形比较稳定,但是为了保证系统的稳定性,防止突发事件的产生,需要在其输入端与输出端加滤波电容,滤除不需要波形,防止烧坏系统器件,保证系统稳定运行。

3.2单片机最小系统说明

下面主要介绍单片机最小系统的两个外围电路:

时钟电路:

晶振电路是单片机程序运行的基础,晶振振动频率决定单片机的程序执行速率。

晶振作为单片机的时钟节拍。

有两种时钟产生方式,一种成为内部时钟,另一种称为外部时钟。

为了使单片机的功耗消耗较小,本系统使用的是外部时钟电路。

片机内部集成了一个震荡电路,在X1和X2引脚连接晶振,并且在晶振的两端加上电容,给单片机上电,就可以完成单片机晶振起振,本系统选择的晶振是12MHZ。

复位电路:

复位电路,负责单片机的程序复位。

当程序运行到某个内存区域时,使用者不愿意程序继续执行下去,选择复位引脚,使程序恢复到0地址存储区域执行。

当复位电路中的按键按下时,会给两个电容充电,使RST引脚的电压升高时间长达单片机的一个时钟周期,就可以完成单片机程序的复位。

图3.4单片机最小系统

3.3温度检测电路

温度传感器DS18B20体积特别小,硬件开销相对较低,测量精度比较高,而且抗干扰能力特别强。

DS18B20是全数字温度转换及输出,单总线数据通信,最高能达到12位分辨率,检测的温度范围大,是开发有关温度产品的极佳选择。

[6]其主要功能特性如下:

(1)独特的1-Wire总线接口仅需要一个管脚来通信。

(2)具有多路采集的能力使得对于分布式温度的采集和应用更加简便。

(3)无需其他外部器件。

(4)能够通过数据线进行供电,供电范围为3.0V至5.5V。

(5)待机时无损耗。

(6)可测量温度的范围为:

-55℃至+125℃(-67℉至+257℉)。

(7)温度以9位数字量读出

(8)如果测量温度的范围超过-10℃至85℃之外时,具有+-0.5℃的精度。

(9)使用者用于对温度报警功能的设置。

(10)使用者设置警报温度的温度值,用于报警功能。

DS18B20芯片内部有一个测量温度的传感器,它是温度传输的基础;一个存储芯片的固有信息的ROM区;用于存储芯片的ID等信息;一个RAM存储区,用于芯片的温度数据以及一些寄存器数值的存放;还有一个警报电路。

其工作原理为:

低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

温度传感器接单片机时只需要用到一个I/O口,连接单片机的I/O口时没有特殊的要求,当芯片连接单片机时,单片机通过单总线协议,从这一个I/O口里读取或者写入数据。

但是不管是哪种方法,I/O口都要接上4.7kΩ左右的上拉电阻。

下图为温度传感器的电路连接图:

图3.5测温模块

3.4人机交互电路

3.4.1键盘接口电路

按键的设计常用的有两种,一个按键连接一个I/O,这是独立按键,另一种是矩阵排布。

各有优点,首先,独立按键可以直接连接到中断引脚。

这样设置好单片机的相应中断位,就可以用按键来触发中断。

这样做的好处是:

程序可以很快的去执行所需要的功能,对按键的相应速度很快。

可以达到按下按键就可以触发相应的事件。

另外独立按键可以减少程序负担,不用扫描相应的位置,这样可以加快程序的执行,相对来说,对程序的编写难度也会有所下降。

如果使用矩阵连接键盘的方法,它的好处是节约微控制器的I/O资源。

比如说25个按键可以连接5个接口就可以。

用程序的扫描办法,是可以实现的。

比如说用到的按键数量较少,当然选用独立按键的办法,这样可以减少程序复杂度,也不会浪费单片机的I/O资源。

[7]当然如果按键较多,那就必须使用矩阵按键要不然,单片机只能连接几个按键,而其他外设就连接不上。

按键的使用也需要注意。

因为现在用的大多数按键用的是轻触按键。

当按下之后按键两端的电路接通。

当松开之后,按键的两端电路断开。

这样就会产生一个抖动现象。

因为单片机采集速度较快,当按下按键到按键弹起这段时间内可能会产生多次跳动。

对数据采集产生不可预估的变动。

这要通过程序做相应的延时来消除机械抖动。

在本次设计中所使用的是四个独立的按键,接口电路如下图所示:

图3.6键盘电路

3.4.2显示电路

本次设计的显示模块使用的是LCD1602,下面介绍这款液晶显示器以及接口电路。

(1)显示原理介绍

1602显示屏可以显示16×2个单元,每个单元有8×8=64的点组成。

其中8为Y坐标的点数,8为X坐标的点数,根据点数的亮灭组成相应的图形。

把需要点亮的点数写入显示屏内部寄存器中,显示器自动在屏幕上打印出预想的图像。

(2)字符的显示

用LCD显示一个字符时,字符显示对应一个显示单元,因为一个字符由8×8点阵组成的图形,所以可以显示相应简单的字符。

如果想要在显示屏上显示一个字符就要在相应的点上写1,这样对应的点就点亮,根据点的排列,就显示出了字符。

比较方便的是控制器里面自带有字符存储器,写字符时,可以直接读取这些字符的存储位置,就可以得到相应的字符显示。

字符存储器里面存储了160个字符,字符种类丰富,可以显示一些简单的界面。

(3)汉字的显示

汉字的显示要用到电脑上面的取模软件,先对汉字取模(就是对各个点的显示,形成一些编码,复制到程序的存储数据区),之后把用取模软件得到的数据写到LCD的CGRAM中,读取相应的位置,就可以在屏幕上打印出所需要的汉字。

LCD1602显示屏内部集成了地址命令,这些地址命令控制显示字符图像的位置。

通过写命令写入地址,就可以在显示屏的地址的位置写入数据,[8]把数据写入CGRAM,就可以在液晶显示字符图像。

在对液晶显示屏写数据和写命令之前,要先对液晶显示屏进行初始化,初始化是通过命令表查得想要初始化的功能来设置的。

初始化操作包括液晶的显示位置、光标是否打、屏幕是否左右移动、是否指针每读一位自动加一、是否清屏等等命令。

图3.7单片机与LCD1602的应用电路

LCD1602液晶显示器厂家已经在CGRAM存储器里面固化好160个字符的图形。

如图2-13所示,看以看出存储的字符有0~9的数字、26个大小写英文字母、以及一些特殊字符。

观察下图不难发现,字符的位置都有一个相对的编码,这个编码就是写入液晶显示屏的数据数值。

比如大写的英文字母“O”的代码是01001111(二进制),液晶显示屏就会把对应地址中的字符打印到屏幕上,就可以看到字母“O”。

下表为LCD1602的引脚功能图以及和单片机的接口电路图:

表3-1引脚接口说明表

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

1602液晶模块内部的控制器共有11条控制指令,如表所示:

表3-2指令说明

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生存贮器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRAM或DDRAM)

1

0

要写的数据内容

11

从显示模块寄存器读值

1

1

得到读出的数值

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1