基于AT89C52单片机的智能热水器控制系统

news2024/11/22 19:09:40

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/89242443?spm=1001.2014.3001.5503
在这里插入图片描述
C 源码+仿真图+毕业设计+实物制作步骤+05
在这里插入图片描述

题 目 基于单片机的智能热水器系统
学 院
专 业
班 级
学 号
学生姓名
指导教师
完成日期

摘 要

现在社会发展迅速,人们的生活水平都有所提高,各种热水器的使用早已屡见不鲜,但是即便如此,目前市场上的热水器控制电路与人们理想中的还相差甚远,因此,我设计了智能家用点热水器来满足人们的需求。我的设计主要是以STC89C52单片机为主要核心。同时我还对单片机控制电热水器实现智能化的可能性进行了分析。主要实现的功能是可以对水位进行设置并加水,先设置好需要加水的水位段数,单片机会根据这个数判断是否需要加水,同时还可以测量并显示水温、设置水温范围,若水温超过或低于所设置的水温范围,则会报警。
该水温水位测控系统设计采用软件设计来控制,用C语言进行编程,可以实现检测水位,自动加水;检测水温,智能加热的功能,并且提高了整个系统的可靠性和稳定性。

关键词:STC89C52,DS18B20,水温水位控制

ABSTRACT

Now,the rapid development of society, people's living standards have improved, the use of a variety of food has long been common, but even so, the current control circuit of the water heater on the market and people are still far from ideal, so I designed a smart home point food to meet people's needs. I design mainly STC89C52 microcontroller as the main core. At the same time I am also the possibility of intelligent microprocessor controlled electric water heater to achieve analyzed. Main function is to level set and add water, first set the number of level segments you need, add water, the microcontroller according to this number to determine whether need to add water, but also can measure and display water temperature, set temperature range, if the water temperature is above or below water temperature set, it will alarm.
The water temperature measurement and control system design using software designed to control, programmed in C language, can detect the water level, automatic water; water temperature detection, intelligent heating function, and improve the reliability and stability of the whole system.

Keywords: STC89C52, DS18B20, temperature and water level control

目 录
摘 要 1
ABSTRACT 2
第1章 绪论 6
1.1 选题的背景、目的及意义 6
1.2 国内研究状况和成果 7
1.3 研究设想和实验设计 8
第2章 硬件系统设计 8
2.1 方案验证 8
2.2 硬件系统设计 10
2.2.1 电源电路 10
2.2.2 按键电路 12
2.2.3 报警电路 13
2.2.4继电器驱动电路 13
2.2.5温度检测电路 14
2.2.6水位检测电路 14
2.2.7 1602液晶模块 15
2.2.8 红外一体接收模块 17
2.2.9 STC89C52功能特点介绍 18
2.3 硬件测试结果 20
第3章 软件系统设计 24
3.1 主程序流程图 24
总 结 25
参考文献 26
致 谢 27
附录1 28
附录2 44
第1章 绪论
1.1 选题的背景、目的及意义
据不完全统计,我市城镇居民家庭以电热水器为主,占总量的60%以上;从前风光无限的燃气热水器渐渐地黯然失色,市场份额仅剩不足20%;新兴的太阳能热水器虽然受到安装条件的限制,但其安全、环保的性能广受消费者青睐,发展态势迅猛,市场占有率已达到15%左右。出于对安全的考虑,城镇居民更多选择电热水器和太阳能热水器。时下的商品房通风效果并不好,燃气产生的污染无法及时消除,而电热水器和太阳能热水器则基本没有这方面的忧虑[6]。电热水器的优点:易安装,不受天气的影响,不受楼层和供水管道的限制,投入成本小。随着技术的进步和新品的开发,下置式、嵌入式等多种安装形式的电热水器先后上市,彻底摆脱了房间空间的限制。在当今社会,科技日新月异,热水器技术飞速发展,越来越多的科技成果被运用到热水器的制造中。如今的热水器产品已经绝对不是一个简单的加热器,而是科技含量高的现代化家电产品[1]。随着我国人民生活水平的逐渐提高,其生活条件有了很大的改善,与家庭生活密切相关的热水器品种层出不穷,花样翻新。正是在这样的背景下,本设计选择基于STC89C52单片机的智能电热水器的设计研究。
本课题的意义在于对热水器的智能化改进,采用单片机对其水温水位参数进行控制,提高了热水器的工作稳定性,同时引进了温度传感器DS18B20对水温进行数据采集,这样也就提高了系统的控制精度,对水位的控制结构简单,易于实现,具有很强的现实应用价值。虽然是对热水器的改进,但这种智能化的改进方法也可以应用到工业、生活的各个水温和水位控制的环境中去,对于其他相关参数的控制的改进也具有一定的借鉴意义。此次的基于单片机的水温水位测控系统是一个改进型的智能化产品,以其自身的控制精度高、稳定性好和成本低的独特优点在今后将会由广泛的实用价值,其基于单片机的改进方法也具用广泛的应用意义。
本课题的目的是为了满足人们对现代家庭舒适、便利、安全以及多元化信息服务的需求,而基于STC89C52单片机的水温水位测控系统可以实现。
选用STC89C52单片机作为控制芯片,实现了电热水器的智能化、持续稳定的热水供应、自动断电等功能,使人们洗浴时能放心享受,利于人们的身体健康,其实用、便捷的优点能快速满足人们对现代生活快节奏的需求[3]。
1.2 国内研究状况和成果
随着人们生活质量的提高,家庭生活中随处都会见到水温和水位控制的影子,水温水位测控系统将更好的服务于社会,尤其是基于单片机的控制系统具有性价比高、使用寿命长、自动化程度高的特点。
随着社会的发展,热水器在改善人们生活质量中起到了非常重要的作用。现在市面上的热水器种类繁多,电热水器、太阳能热时器、煤气热水器等,它们仅仅是提供能量的方式不同而已,但它们都需要对其主要的水温和水位参数加以控制,实现热时器的自动化。
中国产业调研网发布的中国热水器行业现状调查分析及市场前景预测报告(2016 年版)认为,2014 年,电热水器及燃气热水器分别以48.94%和41.05%的占比毫无悬念 地成为市场主力。值得注意的是,以往默默无闻的空气能热水器及太阳能热水器迎来了 市场大爆发,分别实现了2420.95%和1360.52%的高增幅。
早期温度和水位的参数控制时通过模拟电路实现的,这种方式不仅电路复杂,成本高,而且误差大,系统地稳定性不好,单片机及微型计算机技术的发展和应用有效地解决了这些缺点,特别是传感器的发展,更好的提高了检测参数的精度[7]。

1.3 研究设想和实验设计
STC89C52单片机低功耗,高性能CMOS8位单片机,片内4kb的可系统编程Flash只读程序存储器,器件采用高密度、非易失性存储技术生产,兼容标准8052指令系统及引脚。它集合了Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,功能很强大,可灵活应用于各种控制领域。
具体实验设计:采用STC89C52作为智能电热水器的控制芯片,通过选用电源模块、单片机模块、ISP在线编程接口、键盘模块、数码管及指示灯显示模块、水温、水位检测模块、报警输出模块,来实现智能控制的要求[5]。系统工作时,首先检测功能按键,进行温度范围设置。其次检测加减按键,进行温度范围调节,也可以按下红外遥控器上的按键操作,与主板上的按键功能一样,然后运行程序,由传感器DS18B20检测水温,当检测温度低于预设温度下限时,开始加热;检测温度高于预设温度上限时,停止加热。并可以预约加热,设定时间0-999分钟,定时时间到达自动开始加热。

第2章 硬件系统设计
2.1 方案验证
本课题是基于STC89C52单片机的智能电热水器的控制器的设计,要达到的控制要求有:(1)用LCD1602液晶显示水温、设置上下限和定时时间,(2)水温检测显示范围为00~99℃,精度为±1℃。(3)温度预设范围为0~99℃,当检测温度低于预设温度时,开始加热;检测温度高于预设温度时,停止加热。(4)设置4个程序按键。分别问设置按键、加键、减键、确定。(5)可以红外遥控,通过红外一体接收探头接收遥控器信号,执行与主板按键同等功能。
方案一:以STC89C52单片机为控制中心的智能电热水器
STC89C52单片机具有结构简单、控制能力强、可靠性高、体积小、价格低等优点,在许多行业都得到了广泛的应用。以STC89C52单片机为核心,配以外围电路如时钟电路、复位电路、按键、显示器件即可构成交通灯系统,结构框图如图2.1:

方案二:PIC16C72单片机为控制器件的智能电热水器
以PIC16C72为控制芯片的电热水器,虽然功能很强大,但是存在一些很需要改进的地方:中断的现场保护是中断应用中一个很重要的部分由PIC16C72的指令系统中没有专门的PUSH(入栈)和POP(出栈)指令,所以要想实现这个功能需要用一段程序。在中断服务程序中对马达以及继电器进行控制1漏电检测,报警则在中断里给出,而每50ms进入一次中断,所以发生漏电时最多50ms便可以切断电源1入口→中断保护→控制马达→控制继电器如果用直流对电机进行控制,其转速太快,过调量太大,容易引起震荡。
通过以上两种设计方法的比较来看,实现电热水器的智能控制可以有很多种方法。可以采用可编程序控制器PLC,各种单片机来实现。但考虑到成本控制和软硬件实现难度,采用方案一的控制系统设计,可以进一步提高电热水器的智能作用,能够保证持续的热水供应,并可以满足人们日常生活的需要,提高了人们生活的质量。
时钟电路用来产生时钟信号供单片机工作,晶振采用12MHz,平衡电容采用30pF。复位电路在系统上电或运行过程中对单片机进行初始化操作。按键采用独立式热键,用来扩展系统功能。显示通过LCD1602液晶显示实时温度、上下限温度值和预约功能的定时时间。报警指示灯(黄):当热水器出现异常情况时,该指示灯被点亮。
依据设计要求,系统上电复位后按默认值开始运行,然后开始检测温度按键,若无按键,则按设定温度进行工作;若温度键已按下,则开始设定温度范围,并按新的设定值开始加热。接着继续检测温度按键,若无按键,则接着上一步的执行(以新的设定值开始工作)。若有按键,则重新设定温度范围,如此循环。
2.2 硬件系统设计
单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备。本设计中只用最小系统加上键盘、显示、ISP接口电路,单片机本身资源可以满足设计要求,所以不必对单片机进行扩展[2]。
系统的硬件系统以STC89C52单片机为核心,主要分两部分:直流稳压电源和智能电热水器控制电路[9],其原理图见附录二。直流稳压电源由变压器、整流桥、滤波电路、稳压电路组成。智能电热水器系统由时钟电路、复位电路、报警电路、键盘、温度检测电路和显示接口电路组成。
2.2.1 电源电路
电源电路按元件类型可分为电子管稳压电路、三极管稳压电路、可控硅稳压电路、集成稳压电路等。根据调整元件与连接方法,可分为并联型和串联型;根据调整元件工作状态不同,可分为线性和开关稳压电路。本设计中采用了线性工作状态的线性集成稳压电源。
直流稳压电源一般由三部分组成,分别是电源变压器、整流滤波电路及稳压电路设计框图:
各部分简介:
(1)电源变压器
电源变压器作用是220V的交流电压V1变换成整流滤波电路所需的交流电压V2。变压器副边与原边的功率比P2/P1=η,式中η为变压器的效率。
(2)整流滤波电路
整流电路将交流电压变成单向脉动的直流电压。滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压[11]。
常用的整流电路有全波整流电路、半波整流电路、桥式整流电路及倍压整流电路。小功率直流电源因功率比较小,通常采用单相交流供电。由于桥式整流克服了半波整流的缺点,在桥式整流电路中,由于每两只二极管只导通半个周期,故流过每个二极管的平均电流仅为负载电流的一半,将两者进行比较比较,前者的输出电压比较高,脉动成分相对减少。
滤波电路常见的有电容滤波电路、电感滤波电路及π型滤波电路。本设计采用电容滤波电路[10]。电容滤波电路主要利用电容两端电压不能突变的特性,使负载电压波形平滑,故电容应与负载并联。桥式整流电路带电阻负载时的输出直流电压U0=0.9V,接上电容滤波后,空载时的输出直流电压U0=UC=U2。所以,接上负载时的桥式整流电容滤波电路的输出电压介于上述两者之间,其大小与放电时间常数RLC有关,RLC越大,U0越大。
(3)稳压电路
稳压电路的作用是当输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。三端式稳压器有两种,一种是有固定输出的三端稳压器,另一种是可以调节输出的三端稳压器。它们的基本组成及工作原理都相同,均采用串联型稳压电路。
(4)三端固定输出的稳压器通用产品有CW7800T系列和CW7900系列。
①正压系列:CW7800系列,该系列稳压块有过流、过热和调整管工作保护,以防过载而损坏。一般不需要接元件即可工作,有时为改善性能也会加少量元件。
②负压系列:CW7900系列与CW7800系列相比,除了输出电压极性、引脚定义不同外,其它特点都相同。
(5)稳压电源的技术指标分为两种:
①特性指标:包括输入和输出电压、输出电压的调节范围以及输出电流等。
②质量指标:用来测量输出电压的稳定性,电压调整流器率、输出电阻的大小、温度系数等。
(6)电路目的:给单片机及其他控制电路提供电源。
电源设计是电路设计很重要关节。它的稳定与否涉及到电路是否能稳定工作。按要求需要一个+5V电压,一个+12V左右可调电压。于是采用可调压芯片LM317,它是稳压芯片。
既然ID和IRl对调节输出电压UO都起到了一定作用,并且IR1是由R1提供,IRI大小也没有任何限制,LM317输出电压服从1.25+IDR2=UO关系。
可调稳压电路原理图如图2.3所示。

图2.3 可调稳压电路原理图
+5V电压也是利用三端稳压集成电路得到的,采用7805芯片。其用法和LM317差别不大,如下图所示。LM7805的1端是电源的输入端,3端是输出端,2端是接地端

图2.4 7805三端稳压电源电路
2.2.2 按键电路
本毕业设计的按键使用的是独立式的按键,直接用I/O口线构成的单个按键电路,每个按键单独工作,不会影响其他按键的工作状态,按键之间的状态互不干扰。独立式按键的典型应用如下图2.5所示:
图2.5 按键电路
按键输入均为低电平“0”有效,此外,上拉电阻保证了按键断开时,I/O口线有确定的高电平。当I/O口线内部有上拉电阻时,外电路不可接上拉电阻。独立式按键的软件常采用查询式结构。先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序,具体编程见程序清单。
2.2.3 报警电路
当温度超过上限时电路会报警,提示水温过高,注意安全。当上水位传感器检测到有水,下水位传感器却没有检测到有水时,电路显示错误,此时蜂鸣器报警。如图2.6为蜂鸣器报警电路:

图2.6 报警电路
2.2.4继电器驱动电路
这个模块由三极管、LED灯以及继电器和若干电阻组成。三极管采用的是PNP型,与其相连的为限流电阻(低电平有效)。LED的工作电压为3V,而电路的工作的电压为5V,所以串连一个分压电阻。继电器相当于开关的作用,此时继电器和LED并联,三极管的电流Ic同时给继电器和LED供电。另外电路还有连接一个外接负载。如图2.7所示为继电器驱动电路:

图2.7 继电器驱动电路
2.2.5温度检测电路
本文采用温度传感器DS18B20采集电热水器的实时温度, 提供给STC89C52的P2.2口作为数据输入。在本次设计中我们所控的对象为水温。其电路原理框图如下:

                       图2.8 温度检测电路

DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为0℃~99℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,支持3V~5.5V的电压范围,使系统设计更灵活、方便[4]。如图2.8所示DS18B20的DQ为数字信号的输入/输出端;1脚GND为电源地;3脚VDD为外接供电电源输入端。
当传感器工作时,如果水温超过38℃,将温度传给单片机,蜂鸣器报警,并断电;如果水温低于22℃,热水器开始工作,加热指示灯亮。
2.2.6水位检测电路
在本系统中,由两个水位传感器、两个电位器、两个上拉电阻以及LM358组成,水位传感器的3引脚接地,2引脚接电源,1引脚是输出一个模拟量信号,模拟量信号就是电压值,即输出一个电压值。LM358 是双运算放大器,1脚接单片机的的P3.6口,7脚接单片机的P3.7口,3脚电压采用的是电位器,进行分压,电位器调节好固定,作为基准电压。上拉电阻起到信号稳定的作用。
当2脚电压高于3脚时,1脚输出一个低电平。当2脚电压低于3脚时,1脚处于高电平状态,这时就需要用到上拉电阻了。
水位分为上水位和下水位两部分,LM358的5引脚同3引脚,6引脚同2引脚,7引脚同1引脚,4引脚接地,8引脚接电源。两个水位传感器的工作原理相同。

图2.9 水位检测电路

2.2.7 1602液晶模块
在本系统中,用LCD液晶屏来构成显示部分,LCD液晶显示器具有功耗低、寿命长、无辐射、不易引起视疲劳等优点,正在被广泛应用于仪表、家用电器、计算机、医疗仪器及交通和通信领域[8]。本系统主要选择用1602LCD作为液晶屏的显示驱动控制器。
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD 目前常用161 162 202和402行等的模块。是一种很常用的小型液晶显示模块 在单片机系统、嵌入式系统等的人机界面中得到了广泛的应用。
1、1602LCD主要技术参数如下:
(1)显示容量:16×2个字符
(2)芯片工作电压:4.5-5.5V
(3)工作电流:2.0mA(5.0V)
(4)最佳工作电压(模块):5.0V
(5)字符尺寸:2.95×4.35(W×H)mm
2、引脚的各部分功能说明:
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2.1所示:
表2.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 背光源负极

3、1602LCD的指令说明及时序
1602液晶模块内部共有11条控制指令,如表2.2所示:
表2.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 从CGRAM或DDRAM读数 1 1 读出的数据内容
4、单片机与1062LCD接口电路设计
根据1062LCD的工作原理,我们可以设计单片机与1062LCD的接口电路图如2.10所示:

图2.10 单片机与LCD1602的应用电路
2.2.8 红外一体接收模块
红外一体模块由红外一体热电源,两个滤波电容以及上拉电阻组成,热电源的1引脚与单片机的P3.3接口相连,利用中断来检测相应信号;3引脚接电源Vcc,另外在2引脚和3引脚之间并联两个滤波电容,起到滤波的作用,因工作电压小于5V,所以在再加一个阻值为100Ω的分压电阻。红外采集电路如下图2.11所示:

图2.11 红外采集电路
2.2.9 STC89C52功能特点介绍
(1)主要性能参数:
①内置标准52内核,机器周期:增强型为6时钟,普通型为12时钟。
②有8个中断源
③对应flash空间:4KB/8KB/15KB
④3.8—5.5V 的工作电压
⑤全静态工作模式:0Hz-33MHz
⑥1个通用异步通信口
⑦128×4字节内部RAM
⑧32个可编程I/O口线
⑨3个16位定时/计数器
⑩工作频率为0—40MHz
(2)串行编程指令设置:
串行编程指令设置为一个4字节协议。
(3)并行编程接口:
采用控制信号的正确组合可对Flash闪速存储阵列中的每一代码字节进行写入和存储器的整片擦除,写操作周期是自身定时的,初始化后,它将自动定时到操作完成。
(4)功能特性概述:
STC89C52 提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,STC89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
(5)数据校验:
数据校验也可在串行模式下进行,在这个模式下,在一个写周期中,通过输出引脚MISO串行回读一个字节数据的最高位将作为最后写入字节的反码。
(6)STC89C52单片机最小系统
STC89C52单片机最小系统由STC89C52单片机及其外围电路组成,外围电路包括时钟电路和复位电路两部分。
①时钟电路:时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,时钟电路就好比人的心脏。同样,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30PF。
②复位电路:单片机的复位电路分上电复位和按键手动复位。它是利用外部复位电路来实现的。当Vcc上升时间不超过1ms(RC=τ),振荡器启动时间不超过10ms。在加电情况下,这个电路可以使单片机复位。在加电开机时,RST上的电压从Vcc逐渐下降,RST引脚的电位是Vcc与电容电压的差,RST上的电压必须保证在斯密特触发器的阀值电压以上足够长时间,以满足复位操作的要求。按键电平复位是将复位端通过电阻与Vcc相连。在按键电平复位和按键脉冲复位两种简单的复位电路中,干扰易串入复位端,在大多数情况下,不会造成单片机的错误复位,但会引起内部寄存器错误复位,这里可在复位端引脚上接一个去藕电容。需说明的是,如复位电路中R、C的值选择不当,使复位时间过长,单片机将处于循环复位状态。
为了使用方便和设计电路简化及设计要求,我们采用上电复位和按键电平复位相结合的方法。复位后,单片机从0000H单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如下表所示:
表2.3 专用寄存器状态表
寄存器 状态 寄存器 状态
PC 0000H TCON 00H
ACC 00H TL0 00H
PSW 00H TH0 00H
SP 07H TL1 00H
DPTR 0000H TH1 00H
P0 – P3 FFH SCON 00H
IP xxx00000H SBUF 不确定
IE 0xx00000H PCON 0xxx0000H
TMOD 00H

图2.12 单片机最小系统
2.3 硬件测试结果
现象一:
初始状态,即刚开启时的状态,此时tp显示的是当前所处环境的温度,默认温度范围为29~35℃。此时红灯和绿灯亮,黄灯不亮。

图2.13初始状态
现象二:
通过按键手动设置温度的上限值和下限值,此时tp显示的是当前所处环境的温度,设置温度范围为22~38℃。此时红灯和绿灯亮,黄灯不亮,因为在没有水的情况下,是不会进行加热,否则会烧坏。

图2.14设定温度的范围
现象三:
将下水位传感器放入水中,此时检测到有水,开始加热、加水。表现为黄灯、绿灯亮,红灯不亮。

图2.15 下水位
现象四:
继续加水,直到达到水位的上限值,即将上水位传感器也放入水中,此时停止加水,但是温度未达到上限值,所以继续加温。表现为黄灯亮,红灯、绿灯不亮。

图2.16上水位
现象五:
将上水位传感器放入水中,此时系统出现错误,表现为红灯亮,蜂鸣器一直响,直至人为按下取消报警建(即确认键)蜂鸣器才停止工作。

图2.17 错误状态
现象六:
当温度低于下限值,或当温度高于上限值时,停止加热,此时表现为所有灯都不亮。此外还可以预设加热时间,当预设时间到,开始加热,表现为黄灯由不亮跳转成亮的过程。

     图2.18预设一分钟                           图2.19高于最高温度

第3章 软件系统设计
软件设计由主程序,键扫描子程序以及一些其他功能模块子程序三部分组成。其中主控制器子程序包括A/D转换子程序(水位、水温),键盘处理及显示子程序,温度控制子程序(使用输出比较功能),漏电保护子程序等组成。主程序要先对单片机的定时器、COP模块、A/D转换、端口、键中断等部分的工作模式参数进行初始化设定,之后系统的主程序循环可以调用各个功能模块的子程序,对相关事件的处理则是依靠标志位和判断标志位来实现。
3.1主程序流程图:
当程序开始运行时,1602LCD液晶显示器上会显示一个初始的默认值,此时通过按下按键来设定温度范围,若是没有按下则返回初始状态;若是设定了最低温度和最高温度值,则通过新设定的温度范围来运行;但是若是设定完毕之后没有按下确认键,则设定不成功,需返回重新设定温度范围,再次按下确认键。

总 结
此次水位水温控制系统耗时近两个月,先后经历了硬件制作和软件设计,具体是通过每个板块的设计调试再到整体的组合才能通过。本课题设计了一个以STC89C52单片机为核心配合其他外围电路的热水器智能控制系统,运用DS18B20传感器完成了对热水器容器内的水位、水温测量并用数码管及发光二极管来显示水位和水温;缺水时手动上水,运用按键模块设定温度参数,缺水报警;水温超过设定温度值时报警系统启动,发出报警信号。
本设计的水位和水温各自的实现操作为:水位是使用自制的测水位导线放入水中,通电之后,显示当前的水位。由单片机依次使各水位电极呈现高电平,由公共电极所接的三极管进行电位转换,水位到达的电极,转换电位为低(0);水位没有到达的电极,转换电位为高(1);每检测一位便得到一位数据,3个电极检测一遍以后便得到了3个串行数据,然后把这3个数据转化为字节一路送发光二极管;在这里我们可以用发光二极管亮的盏数来显示水位的高低。
而水温的控制利用低功耗单线数字温度传感器DS18B20实现温度采样,将采样的温度值通过单片机的P3.3口送入单片机处理,然后实现水温的控制,利用按键对水温的值进行设置,当温度高于上限或者低于下限后蜂鸣器报警,使之保持温度在一定范围内的稳定。本控制系统可以时时采集热水器内部水温通过LED显示水温,由于太阳能热水器实际温度不会超过100摄制度,所以本系统采用两位显示,测量范围为00~99摄氏度,温度可以精确到小数点后两位。
在这次的毕业设计中更重要的是学习到的工程设计方法。以前对于硬件的调试,由于方法的不科学,既耗精力又耗时间,效率非常不高,现在软、硬件结合大大提高效率。
在本次设计中不足之处是硬件设计中缺少了在缺水状态下自动上水功能和实际运用电热丝来加热使水温达到设定温度范围的功能。在这漫长的设计过程中,通过自己不断的解决工程中遇到的一个一个的问题,磨练了自己的意志,提高了对工程设计实践的认识,我想这些都是自己今后职业生涯中难得的宝贵经验。

参考文献
[1]殷为民,太阳能水温水位仪[J].家用电子,1999(1):37-38
[2]张毅刚,彭喜元.单片机原理及应用设计[M].电子工业出版社,2010:180-200
[3]王俊杰,基于89C52单片机的太阳能热水器只能控制器的设计[J].郑州轻工业学院学报:自然科学版,2005(8):67-68
[4]周秀明,曹隽,张春龙.基于DS18B20的单片机温度检测与调节系统设[J].实验室科学,2011,14(1):79-81.
[5]张振荣,晋明武,王投平,MCS-52单片机原理及实用技术[M].北京:人民邮电出版社,2012:64-120
[6]孟伟,方世巍.基于单片机的智能家用热水器控只系统[J].(2013)21-0032-02
[7]王梅红.基于单片机的温度控制系统设计与仿真[J],四川兵工学报,2012,33(2):102-103
[8]鲍文胜. 基于单片机的太阳能热水器控制系统研究[J]. 青岛理工大学学报. 2015(05)
[9]吴健,侯文,郑宾.基于STC89C52 单片机的温度控制系统[J].电脑知识与技术,2011,07(4):902-903
[10]Zou Zhi jun. A study of Capacity of Major/minor priorityT-intersection by Means of Computer Simulation[J], China Journal of Highway and Transport, 2000, 013(003): 101-105
[11]Paul,J.M.Thomas,D.Bobrek.A.Scenario-oriented design for single-chip heterogeneous multiprocessors[J].IEEE transactions on very large scale integration (VLSI) systems,2016(8):30-34

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1641099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Docker学习】docker version查看版本信息

就像很多应用一样,docker也使用version来查看版本信息。但因为docker包含有不少独立组件,version的作用范围会更广一些。 用法1: docker --version 描述: 输出安装的Docker CLI 的版本号。关于Docker CLI,请访问。 实操…

Ubuntu启动后进入GRUB故障-Minimal BASH like line editing is supported.

目录 1.问题描述 2.解决方案 2.1 临时性办法 2.2 工具永久性修复 总结 1.问题描述 PC安装Ubuntu系统第二天重启后提示GUN GRUB version 2.04,之前是WindowsOS装Ubuntu后无法进入图形界面。具体原因据网友提供线索据说是由于在Windows上进行更新/重装/修改了引…

Golang | Leetcode Golang题解之第66题加一

题目&#xff1a; 题解&#xff1a; func plusOne(digits []int) []int {n : len(digits)for i : n - 1; i > 0; i-- {if digits[i] ! 9 {digits[i]for j : i 1; j < n; j {digits[j] 0}return digits}}// digits 中所有的元素均为 9digits make([]int, n1)digits[0]…

Docker-Compose编排LNMP并部署WordPress

前言 随着云计算和容器化技术的快速发展&#xff0c;使用 Docker Compose 编排 LNMP 环境已经成为快速部署 Web 应用程序的一种流行方式。LNMP 环境由 Linux、Nginx、MySQL 和 PHP 组成&#xff0c;为运行 Web 应用提供了稳定的基础。本文将介绍如何通过 Docker Compose 编排 …

【深度学习】第一门课 神经网络和深度学习 Week 3 浅层神经网络

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;深度学习 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对…

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题

20240503解决Ubuntu20.04和WIN10双系统下WIN10的时间异常的问题 2024/5/3 9:33 缘起&#xff1a;因为工作需要&#xff0c;编译服务器上都会安装Ubuntu20.04。 但是因为WINDOWS强悍的生态系统&#xff0c;偶尔还是有必须要用WINDOWS的时候&#xff0c;于是也安装了WIN10。 双系…

AJ-Report开源数据大屏 verification;swagger-ui RCE漏洞复现

0x01 产品简介 AJ-Report是一个完全开源的BI平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。多数据源支持,内置mysql、elasticsearch、kudu等多种驱动,支持自定义数据集省去数据接口开发,支持17+种大屏组件,不会开发,照着设计稿也可以制作大屏。三…

Linux进程——Linux下常见的进程状态

前言&#xff1a;在进程学习这一块&#xff0c;我们主要学习的就是PCB这个进程控制块&#xff0c;而PBC就是用来描述进程的结构体&#xff0c;而进程状态就是PCB结构体中的一个变量。 本篇主要内容&#xff1a; 操作系统中的进程状态Linux下的进程状态 在开始之前&#xff0c;我…

MLP手写数字识别(2)-模型构建、训练与识别(tensorflow)

查看tensorflow版本 import tensorflow as tfprint(Tensorflow Version:{}.format(tf.__version__)) print(tf.config.list_physical_devices())1.MNIST的数据集下载与预处理 import tensorflow as tf from keras.datasets import mnist from keras.utils import to_categori…

排序算法--直接选择排序

前提&#xff1a; 选择排序&#xff1a;选择排序(Selection sort)是一种比较简单的排序算法。它的算法思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完。 话不多说&#xff0c;直接放图…

Xamarin.Android项目显示Properties

在 Visual Studio 2022 中&#xff0c;如果您需要调出“Properties”&#xff08;属性&#xff09;窗口&#xff0c;您可以使用以下几种方法&#xff1a; 快捷键&#xff1a; 您可以按 F4 快速打开当前选择项的“Properties”窗口。

postman中百度preview无法加载的解决方案

问题 在使用postman关联时&#xff0c;百度接口与天气接口已使用glb_city关联&#xff0c;但在百度接口发送请求时&#xff0c;发现preview无法加载 解决方案 1、进入百度 百度全球领先的中文搜索引擎、致力于让网民更便捷地获取信息&#xff0c;找到所求。百度超过千亿的中…

【云原生】Docker 实践(二):什么是 Docker 的镜像

【Docker 实践】系列共包含以下几篇文章&#xff1a; Docker 实践&#xff08;一&#xff09;&#xff1a;在 Docker 中部署第一个应用Docker 实践&#xff08;二&#xff09;&#xff1a;什么是 Docker 的镜像Docker 实践&#xff08;三&#xff09;&#xff1a;使用 Dockerf…

在M1芯片安装鸿蒙闪退解决方法

在M1芯片安装鸿蒙闪退解决方法 前言下载鸿蒙系统安装完成后&#xff0c;在M1 Macos14上打开闪退解决办法接下来就是按照提示一步一步安装。 前言 重新安装macos系统后&#xff0c;再次下载鸿蒙开发软件&#xff0c;竟然发现打不开。 下载鸿蒙系统 下载地址&#xff1a;http…

eNSP-抓包解析HTTP、FTP、DNS协议

一、环境搭建 1.http服务器搭建 2.FTP服务器搭建 3.DNS服务器搭建 二、抓包 三、http协议 1.HTTP协议&#xff0c;建立在FTP协议之上 2.http请求 3.http响应 请求响应报文参考&#xff1a;https://it-chengzi.blog.csdn.net/article/details/113809803 4.浏览器开发者工具抓包…

堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41),framework修改,去除第三方app的倒计时页面

文章目录 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41)&#xff0c;framework修改&#xff0c;去除第三方app的倒计时页面1.打印异常堆栈2.去除第三方app的倒计时页面3.模拟点击事件跳过首页进入主页 堆栈打印跟踪Activity的启动过程(基于Android10.0.0-r41)&#x…

SpringCloud微服务项目创建流程

为了模拟微服务场景&#xff0c;学习中为了方便&#xff0c;先创建一个父工程&#xff0c;后续的工程都以这个工程为准&#xff0c;实用maven聚合和继承&#xff0c;统一管理子工程的版本和配置。 后续使用中只需要只有配置和版本需要自己规定之外没有其它区别。 微服务中分为…

MLP实现fashion_mnist数据集分类(2)-函数式API构建模型(tensorflow)

使用函数式API构建模型&#xff0c;使得模型可以处理多输入多输出。 1、查看tensorflow版本 import tensorflow as tfprint(Tensorflow Version:{}.format(tf.__version__)) print(tf.config.list_physical_devices())2、fashion_mnist数据集分类模型 2.1 使用Sequential构建…

4 Spring AOP

目录 AOP 简介 传统开发模式 先来看一个需求 解决方案 AOP 图示 Spring 启用 AspectJ 基于 xml 配置 创建 pom.xml 创建 UserService 借口和 UserServiceImpl实现类 创建 LogAdvice 日志通知 创建 log4j.properties 重点&#xff1a;创建 spring-context-xml.xml 配…

MyBatis:mybatis基础操作

MyBatis基础操作 新增 接口方法 Insert() insert();删除 接口方法 Delete() delete();Delete("delete from emp where id #{id}") public abstract void delete(Integer id) //如果只传了一个形参,括号内可以随意写修改 接口方法 Update() update();查询 接…