电热水器水温水位控制系统设计-毕业论文定稿

更新时间:2024-05-01 00:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电热水器水温水位控制系统设计

第I页

电热水器水温水位控制系统设计

摘 要

本系统是为电热水器水温水位控制系统而设计的。在电热水器温控系统中,水温和水位传感器起着举足轻重的作用。系统的分析了耐高温电容式液位传感器分别检测水温和水位的原理,以 AT89S51单片机为核心,实现对水温和水位、上水测量、显示、报警等功能,并以电磁阀、继电器为阀门开关全自动加热、上水。整个系统精度高,耐高温性强,易于调整,测试方便。测试结果表明,误差小于2%,达到设计要求。

关键词:AT89S51单片机,水温水位,传感器,检测与控制

I

电热水器水温水位控制系统设计

第II页

THE SYSTEM FOR CONTROL THE TEMPERATURE AND

LEVEL OF THE ELECTRIC WATER HEATER

ABSTRACT

This system is design to measure and control the water lever and temperature for the water-heaer.It’s composed of two sensor (a digital chip DS18B20 and a lever sensor),display,buzzer and so on,all these component are control of the core chip AT89S51. This system can display the lever and the temperature in the water_case .In addition,it will be heaet or add water automatic through electromagnetism vave or relay which are controled by AT89S51. The whole system is easy to adjust.It is proved to be reliable and of high value and high feasibility after testing.

Key Words: AT89S51,control, seasor,temperature and level

电热水器水温水位控制系统设计

第III页

目录

第1章 绪论 ............................................. 1 第2章 设计思路及要求 ................................... 2

2.1 本设计的目的和意义 ........................................... 2 2.2 控制系统的设计要求 ........................................... 2 2.3 本设计实现思路及方法 ......................................... 2

第3章 硬件设计 ......................................... 4

3.1 控制系统组成及工作原理 ....................................... 4 3.1.1 系统结构 ................................................. 4 3.1.2 控制系统组成 ............................................. 5 3.2 单片机概述 ................................................... 6 3.3 器件介绍 ..................................................... 7 3.3.1 AT89C51单片机 ............................................ 7 3.3.2 数码管显示 ............................................... 8 3.4

AT89C51

单片机的最小系统 ..................................... 9

3.5 AT89C51单片机时钟电路 ....................................... 10 3.6 AT89S51单片机复位电路 ....................................... 10

第4章 单元模块设计 .................................... 12

4.1 水位检测模块 ................................................ 12 4.2 温度检测模块 ................................................ 12 4.3 键盘模块 .................................................... 13 4.4 显示模块 .................................................... 14

第5章 软件设计 ........................................ 15

5.1 软件设计原理及设计所用工具 .................................. 15

电热水器水温水位控制系统设计

第IV页

5.2 显示子程序 .................................................. 16 5.2.1 系统正常工作子程序 ...................................... 16 5.2.2 设定预置温度子程序 ...................................... 17 5.2.3 设定预置水位子程序 ...................................... 18 第6章 系统调试与原理图 ................................ 19 第7章 总结与体会 ...................................... 20参考文献 ................................................ 21附录1 .................................................. 22附录2 .................................................. 23附录3 .................................................. 34致谢 ................................................... 35作品(软件)使用说明书 .................................. 36

电热水器水温水位控制系统设计

第1页

第1章 绪论

近年来,随着用电的普及和燃气燃油价格上涨的影响,电热水器的市场上升趋势更加明显,新生力量快速电热水器以其加热快速、体积小巧、安全节能的明显优势在市场中一枝独秀倍受瞩目。

据了解,近年来我国热水器的销量每年以25%的速度上升,而整个热水器市场上,燃气热水器、太阳能热水器颓势未改,继续出现负增长,电热水器阵营已经占到了约60%的市场比例,其中快速电热水器几何式的发展势态拉动整体热水器市场持续走高,。

数据显示,目前快速电热水器行业的年增长率高达200%多,是家电行业增长最快的品类,2008年国内快速电热水器的市场容量增长到66万台。预计未来3至5年内,快速电热水器将全面迎来爆炸式的增长,超过所有传统热水器成为市场的主导产品。业内专家分析,国家住宅用电标准的提高和全国电网的大规模建设改造,将为快速电热水器的普及使用带来良好的发展契机.

据国内著名家电品牌营销企划公司及专家分析预测,2011年,即热式电热水器成为最具投资价值的新品类商机之一,理由是:从市场需求量上来讲,目前国内即热式电热水器年需求量在35万台~40万台,中国即热式电热水器市场销售比率只占5%,而国际市场达50%以上。这一现象与燃气式热水器和储水式电热水器市场高速成长前的征兆一致,意味着快速电热水器市场将迎来空前暴涨的良机。据预测,未来5年,中国市场即热式电热水器的销售比率将达到40%。

电热水器水温水位控制系统设计

第2页

第2章 设计思路及要求

2.1 本设计的目的和意义

本设计具有很强的实用性,用成本低廉的电阻式传感器以及电极配以单片机技术对生产实际中的电热水器的水温的控制以及水位的显示。本装置电路简单、实用性强、性价比高、水温控制灵活,水位显示直观醒目。可广泛应用于家庭生活对电热水器的水位显示与水温控制。具有良好的市场前景。

2.2 控制系统的设计要求

1、能够根据水位和水温两个条件控制是否需要进水,每次只进整个水箱的四分之一水量,也可以在手动状态下自由进水(上满时自由停止)或停止进水。

2、控制系统具有手动和自动切换功能; 3、具有水温和水位显示功能;

4、具有进水超水位和超水温报警指示;

5、用水时若水温达不到设置值时,可手动起动加热装置,这样可在很大程度上节约电能;

6、用水时可自由调节水温;

7、控制系统具体管道排空功能,这样防止冬天时因水管内有积水而在夜间冻裂水管。

2.3 本设计实现思路及方法

水位由潜入储水容器不同深度的水位电极和潜入容器底部的公共电极(导线)检测;并由四个绿色LED发光二极管显示:若无水则绿灯不亮;若有四分之一储水箱的水亮一盏绿灯;通过观察绿灯点亮的数量可识别水位的高低,这里取4段显示,也可根据需要进行增减。水温由四个LED数码管显示,前三个数码管显示

电热水器水温水位控制系统设计

第3页

的为温度最后一个数码管我们只用到了四段码显示为温度的符号C,水温有效值最多可显示为99.9℃。(+)单片机控制。

电热水器水温水位控制系统设计

第4页

第3章 硬件设计

3.1 控制系统组成及工作原理

3.1.1 系统结构

系统组成 : 如图3.1.1所示,本系统主要由控制器、自动控制阀、手动控制阀、水位检测电极、水温检测传感器、电阻加热丝、储水箱等组成

控制器:主要通过里面的电磁阀控制YV1和YV2的通断,控制水温检测传感器检测水温、控制水位检测传感器检测水在水箱中的位置以及控制电阻加热丝加热。自动控制阀:主要通过控制器控制,当水箱中的水的实际温度大于所设置的温度时,自动阀就自动打开往水箱中上水,直到上到上一个目标水位为止。

手动控制阀:当自动阀损坏时,可以通过手动阀进行上下水。

水位检测电极:主要用来检测水箱中水的位置,主要把水箱分成四等分,一共有五个电极,接地的电极放在最水箱的最底下,其余分别放在四等分点上,比如当水箱中的水在第一等分和第二等分之间,则显示水箱中有四分之一的水,当超过第二等分,则显示二分之一的水。

水温检测传感器:主要用来检测水箱中水的实际温度。

电阻加热丝:主要用来加热水箱中水,使其达到用户所需要的温度。 太阳能热水器利用微机控制主要有以下几种控制功能:晨水加热控制、温水循环控制、冷水集热控制、水箱加热控制。

电热水器水温水位控制系统设计

第5页

图3.1.1 系统组成示意图 3.1.2 控制系统组成

电热水器控制系统的组成如图3.1.2所示。整个系统以AT89C51单片机为核心,对水温、水位等参数进行智能检测和显示,读取水流开关、排空阀门的状态,经键盘操作和单片机内部运算比较,控制相应得执行机构进行通、断电;进行防漏电、防干烧等保护,并进行相应得声光报警。

对水箱水温信号的检测采用DALLAS公司生产的一线式数字温度传感器DS18B20,它具有3引脚TO-92小体积封装形式,CPU只需一根端口线就能与DS18B20通信控制读取温度值。水流开关信号的检测采用开关式传感器,其内部是一个霍尔开关,排空阀是一个带行程开关的球型阀,由5W交流伺服电机带动,每旋转90度输出一个开关信号,排空阀的开闭状态对应于该开关信号。上水电磁阀采用12V直流单项电磁阀;辅助电加热体的通断电采用继电器控制;排空阀由

电热水器水温水位控制系统设计

第6页

36V(5W)交流伺服电机带动,由排空阀的开闭状态信号确定并通过继电器控制交流伺服电机电源通断电。

图3.1.2控制系统组成

3.2 单片机概述

图3.2时钟电路与复位电路

图3中,晶体振荡器的频率选6MHZ,复位电路采用上电复位,电路参数如图中所示,以满足系统复位时两个机器周期的高电平的要求。由于CPU的内部已含有程序存储器,所以EA引脚接高电平。

电热水器水温水位控制系统设计

第7页

该水位自动显示控制器采用AT89C51单片机,机内有一高增益反相放大器,构成自激振荡电路,振荡频率取6MHz,外接6MHz晶振,两个电容C1、C2取20pF,以便于起振荡的作用。右图中XTAL1为内部时钟工作电路的输入,XTAL2为来自反向振荡器的输出

该水位自动显示控制器采用上电复位电路,由R14、C3构成复位电路,在上电瞬间,产生一个脉冲,AT89C51将复位。为保证可靠复位,脉冲宽度应大于两个机器周期,这取决于R、C时间长数。取电容C=10uF,电阻R=10K。

3.3 器件介绍

3.3.1 AT89C51单片机

AT89C51是一个低功耗高性能CMOS 8位单片机,4k Bytes Flash只读程序存储器(ROM),512 Bytes 内部数据存储器(RAM),该微处理器采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,引脚兼容80C51和80C52芯片,片内的Flash存储器可以像常规程序存储器一样进行烧写,AT89S51片内总共有256字节的用户数据区,而128字节的内部扩展数据区需通过清SFR(8EH)的位1并用MOVX指令访问,片内置通用8位中央处理器和Flash存储单元,另一个256BytesRAM区与ATMEL之AT89系列8052兼容的单片机是一致的,AT89C51结合通用的8位微处理器和Flash存储技术构成功能强大单片微处理器,可提供许多高性能低价位的系统控制应用场合。

AT89C51主要特点: 40个引脚,32kBytes的程序存储器,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,内置时钟振荡器,其Flash存储器,可反复擦写1000次的Flash存储器可有效地降低开发成本。软件设置电 源省电模式,睡眠其间,定时/计数器,串行口和中断口均停止工作,RAM中的数据被“冻结”,直到下次被中断激活或硬件复位方可恢复工作。

电热水器水温水位控制系统设计

第8页

图3.7.1 AT89C51单片机

3.3.2 数码管显示

由单片机的定时器To做16位计数器(为便于数据处理,这里只用低8位计数值,即寄存器TL0中的值)。一边记录脉冲数量,一边以厘米为单位由四位数码管显示出来。四位数码管采用动态扫描方式显示。

长度计量仪采用0.5英寸共阳极连接的LED数码管。LED数码管由发光二极管作为显示字段的数码型显示器件。下图为LED图数码管外形和引脚图,其中7只发光二极管分别对应a-g笔段,构成“日”字形,另一只发光二极管DP作为小数点,因此这种LED显示器称为八段数码管。共阳极型LED数码管,是将各段发光二极管的阳极连在一起,作为公共端com,应接高电平。a——g、Dp各笔段中,某笔段接低电平时发光,高电平时不发光。为了节省单片机I/O口的数量,将各位数码管的a——g对应笔画并联起来分别与单片机的P2.0——P2.7引脚连接。显示时,由P2口依次输出各位数字的笔段码,并依次由P1.0、P1.1、P1.2、P1.3输出低电平位选信号接通数码管的公共端,轮流进行,循环不止,由于循环的频率较高(约50Hz),加上人眼的视觉暂留,既保障了各位数字的对应显示,又不会出现闪烁现象,实现动态扫描显示。

电热水器水温水位控制系统设计

第9页

图3.7.2 LED数码管

3.4 AT89C51单片机的最小系统

所谓最小系统,即指使单片机能正常工作的所需的最少的电路,即应包含CPU及辅助电路、ROM、RAM及I/O端口等电路。由于AT89C51内部已经包含4KB的Flash Memory程序存储器,所

Vcc +5V EA

GND AT89S51 RST XTAL1 6M 20pf 以无需再扩展片外程序存储器。在+5V 4. 4.7F 10K 20pf AT89C51的基础上,加复位电路、时钟电路、EA引脚信号及电源即可。结合资料及所学过的内容,得到如图3.4所示的单片机最小系统。

图3.4 AT89S51单片机最小系统

电热水器水温水位控制系统设计

第10页

图3-6中,晶体振荡器的频率选6MHZ,复位电路采用上电复位,电路参数如图中所示,以满足系统复位时两个机器周期的高电平的要求。由于CPU的内部已含有程序存储器,所以EA引脚接高电平。

3.5 AT89C51单片机时钟电路

该水位自动显示控制器采用AT89C51单片机,机内有一高增益反相放大器,构成自激振荡电路,振荡频率取6MHz,外接6MHz晶振,两个电容C1、C2取20pF,以便于起振荡的作用。

右图中XTAL1为内部时钟工作电路的输入,XTAL2为来自反向振荡器的输出。

图3.5时钟电路

3.6 AT89S51单片机复位电路

该水位自动显示控制器采用上电复位电路,由R14、C3构成复位电路,在上电瞬间,产生一个脉冲,AT89S51将复位。为保证可靠复位,脉冲宽度应大于两个机器周期,这取决于R、C时间长数。取电容C=10uF,电阻R=10K。

电热水器水温水位控制系统设计

第11页

电热水器水温水位控制系统设计

第12页

第4章 单元模块设计

4.1 水位检测模块

把储水箱大致分为四个等份,水位由潜入太阳能热水器的储水箱不同深度的水位电极和潜入储水箱底部的公共电极(导线)进行检测;由单片机依次使各水位电极呈现高电平,由公共电极所接的三极管进行电 位转换,水位到达的电极,转换电位为低(0);水位没有到达的电极,转换电位为高(1);每检测一位便得到一位数据,5个电极检测一遍以后便得到了5个串行数据,然后把这5个数据转化为字节一路送发光二极管;在这里我们可以用发光二极管亮的盏数来显示水位的高低。(若没有发光二极管亮则表示箱内没有水或者只有少量的水,若有一个发光二极管灯亮则表示箱内有四分之一箱的水,以此类推,若有四个发光二极管亮,则表示水箱水是满的。)

图3.3水位检测电路

4.2 温度检测模块

电热水器水温水位控制系统设计

第13页

本设计温度传感器选用AD590。AD590属于半导体集成电路温度传感器,测温范围-55℃- +150℃,在其二端加上一定的工作电压,其输出电流与温度变化成线性关系,1uA/°K,误差有几种等级:±1、±0.5、±0.3℃,本设计中选取±0.5℃品种。OP07为高精度运算放大器,AD590电流流经R1、RP1转换为电压信号,R2、RP2为运算负反馈电阻,成反相比例放大器,将温度信号转换成0-5V的电压信号,ADC0832再将其转换为数字信号,输入CPU。图3.5为温度检测和A/D转换电路图。

图3.4温度检测电路

4.3 键盘模块

P1.0- P1.7口作为按键的信号输入端,键按下,就执行该键的功能。其电路如图3.5所示。(为了编程简单、方便,采用独立式键盘电路)。

电热水器水温水位控制系统设计

第14页

图3.5键盘电路

4.4 显示模块

本设计采用共阳型数码管,8个LED灯如图3.6中接法,灯的负极依次接到数码管的a-f段,采用动态扫描电路,并把显示程序作为主程序。数码管的段用P0口控制,P2.0口、P2.3口作为数码管的位控制,P2.4作为指示灯的控制。

图3.6显示电路

电热水器水温水位控制系统设计

第15页

第5章 软件设计

5.1 软件设计原理及设计所用工具

本次设计主要利用C语言编写程序,根据功能的需要进行编程,其中软件设计所用的软件主要是Keil uVision3软件,PROTEUS ISIS软件。

电热水器在任何时间都能够在设定的时间向用户提供设定温度的热水,从而给用户带来便利。当控制器在设定的时间使水温达到设定温度时,将通过声光报警提醒用户。

根据这一要求,控制器软件设计采用模块化结构,包括主程序、键盘中断子程序、DS12887更新周期结束中断子程序、LED显示子程序和提前加热时间计算子程序等。系统主程序主要完成温度和水位的检测以及进行辅助加热时间预算和一些初始化功能。在主程序中采用了查表方法进行辅助加热提前量预算。系统主程序流程图如图4.1所示。

电热水器水温水位控制系统设计

第16页

图4.1系统程序流程图

5.2 显示子程序

5.2.1 系统正常工作子程序

当K2处于第一状态时,单片机执行正常工作子程序,正常工作时K3,K4无效。系统正常工作子程序主要功能是交替显示实际的热水器水位,判断是否超过设定和水温水位,其子程序流程图如图4.2.1所示。

若热水器未加满水,水温又偏高时,单片机控制进水阀加水,至合适水温50℃左右,单片机响应中断,停止加水;当水位低于预置水位时,调用延迟子程序,15分钟自动上水至预置水位;当实际水温低于设定温度时,系统响应中断,控制启动加热器,直至水温升到所设定温度;当缺水时(位于缺水档)系统响应中断,蜂鸣器报警,延迟15分钟自动进入自动上水。水温水位在正常时由8位LED数码

电热水器水温水位控制系统设计

第17页

管同时显示。如果接触不良,频率为零,在LED上显示--℃。

正常状态 显示实时温度和水位交替显示 判断是否超过预置水位或预置温度 是 报警并关闭加热器和阀门 RET 图4.2.1正常状态子程序流程图

5.2.2 设定预置温度子程序

当K1处于第二个状态时,单片机执行设定水温子程序。其程序流程图图4.2.2所示。设定预设温度由K3和K4完成,K3加1摄氏度K4减1摄氏度;此时控制端口均为低。

调节预置温度 关闭阀门和加热器 调节预置温度 RET

图4.2.2设定预置温度子程序流程图

电热水器水温水位控制系统设计

第18页

5.2.3 设定预置水位子程序

当K2处于第三个状态时,单片机执行设定预置水位子程序其程序流程图如图4.2.3所示。设定预置水位,此时按下K3,系统检测到K3为低电平,水位预置值KEY2加20%,加到100%时KEY2赋20%,KEY3无效。此时控制端口均为低。

调节预置水位 关闭阀门和加热器 调节预置水位 RET

图4.2.3设定预置水位子程序流程图

电热水器水温水位控制系统设计

第19页

第6章 系统调试与原理图

本次设计主要在系统软件调试方面。困难主要出现在软件的编写。虽然没有错误,但是进行仿真时,不能达到预期的效果。经过多次调试,程序也修改过好几次,仍然走不通。而问题也主要集中在扫描显示这一模块。

最后经过与同题目的其他的同学交流,结合设计思想,以及对以前的一个单片机编程作业的代码,进行了修改、调试,也终于达到了方案的总体要求。对软件方面逐步进行分析之后,重新进行系统的软件上的仿真。

图5.1控制系统原理图

电热水器水温水位控制系统设计

第20页

第7章 总结与体会

本系统使用了性价比较高的AT89C51单片机实现了对电热水器水位水温的预置、检测、控制、显示和缺水报警等功能。利用数字技术和频率技术分别检测水温和水位,大大提高了系统的抗干扰能力。利用电梯继电器控制加热器和进水阀的通断,可以远距离控制但由于实际的制作的过程中,其制作电容用的板子没有很好的绝缘材料的密封,使得其容值不断的变化,因而其震荡的频率(在看似相同的情况下)也不断的改变,并且改变的数值的范围与理论值相差很大,在此很抱歉,没有做成功。

但是,通过对这次基于单片机的太阳能温控进水及水温水位显示控制装置的设计,我将在大学里所学的专业知识在这次毕业设计中的到了广泛的运用,加深了理论与实际的联系。提高了思维与动手能力,增长了才干;培养了自己的创新意识,使自己在单片机应用方面得到了全面提高,为今后的工程实际应用,新产品开发奠定了基础。

通过这次课程设计,自己进一步熟悉和掌握了ISIS仿真软件PROTEL软件,体会到ISIS、PROTEL等功能强大的设计软件,在现代电子系统设计中发挥的强大的作用。总之,此次课程设计经过自己独立思考、查找资料,自己受益匪浅。而且,通过这次设计,更深切地感觉到团队合作的重要性。是全体组员的共同努力,才完成了此次智能仪器课程设计任务!

总之,以往的课程设计都是停留在理论层面上,而这次课程设计的实际意义非常明显。经过这次课程设计,自己从心理上就成长了不少,这将是自己以后人生路上一笔宝贵的财富。

电热水器水温水位控制系统设计

第21页

参考文献

[1] 刘刚、秦永左. 单片机原理及应用[M]. 北京:北京大学出版社,20061. [2] 胡汉才. 单片机原理及其接口技术[M]. 北京:清华大学出版社,2004. [3] 蔡美琴、张为民.MCS-51 系列单片机系统及其应用(第二版)[M]. 高

等教育出版社,2004.

[4] 杨振江、杜铁军.流行单片机实用子程序及应用实例. 西安:西安电子

科技大学出版社,2002.

[5] 刘迎春、叶湘滨.现代新型传感器原理与应用 国防工业出版社,1998. [6] 张毅刚、彭喜元.单片机原理及应用. 高等教育出版社,2007. [7] 何立民. 单片机应用系统设计系统.北京:北京航空航天大学出版社,2001

[8] 王幸之.单片机应用系统抗干扰技术.北京:北京航空航天大学出版

社,2001

[9] 徐煜明.单片机原理及接口技术 电子工业出版社.2008

[10]张迎新.单片微型计算机原理应用及接口技术(第2版) 国防工业出版社,2008

[11]曹巧媛.单片机原理及应用[M].北京电子工业出版社,1997

[12]刘大茂.单片机应用系统监控主程序的设计方法[J].上海人民出版社,2000

[13] Jannot Y, Coulibaly Y. The “evaporative capacity as a performance” index for solar-drier air heater.J. Solar Energy 1998;63(6):387–91.

[14] Jansen TJ. Solar engineering technology, chap. 7. New Jersey: Prentice-Hall, Inc, 1985.

[15] Jinap S, Thien J, Yap TN. Effect of drying on acidity and cocoa beans. J. Food Agricult.1994;65:67–75.

[16] Kolb A, Winter ERF, Viskanta R. Experimental studies on a solar air collector with metal matrixabsorber. J. Solar Energy 1999;65(2):91–8

电热水器水温水位控制系统设计

第22页

附录1

电热水器水温水位控制系统设计

第23页

附录2

2.1 主程序清单 主程序:

#include #include #include #define uint unsigned int #define uchar unsigned char

sbit buzzer=P1^0;//蜂鸣器 sbit heater=P1^6;//加热器 sbit c=P3^6;//水阀门

sbit P0_0=P3^7;//温度DS18B20数据线 sbit adc=P1^5;// sbit ccl=P1^4;

sbit led8=P0^0; sbit led7=P0^1; sbit led6=P0^2; sbit led5=P0^3; sbit led4=P0^4; sbit led3=P0^5; sbit led2=P0^6;

sbit led1=P0^7;//8位数码管显示位选端

uchar temp111; uchar a,b; uchar bitselect;

bit key1,key2,key3,keyon,keyoff,buzzer1; uchar key1_state,temp,key2_state; uint pl;

uint LED1_data,LED2_data,LED3_data,LED4_data,led_data; int ytm=40,yp=60,tm=0,p=0;

电热水器水温水位控制系统设计

第24页

long t0count,x,o; uchar x70,0xFF,0xBF};

uchar disbuffer[]={0,0,0,0,0,0,0,0};

/*******************************************************/

void delay(uint v) {

while(v!=0) v--; }

/********************************显示模块**********************/ //*********************************************

void display1(void) {

for(bitselect=0;bitselect<8;bitselect++)

{if(bitselect==0){led1=0;led2=1;led3=1;led4=1;led1=1;led2=1;led3=1;led4=1;}

else

if(bitselect==1){led1=1;led2=0;led3=1;led4=1;led5=1;led6=1;led7=1;led8=1;}

else

if(bitselect==2){led1=1;led2=1;led3=0;led4=1;led5=1;led6=1;led7=1;led8=1;}

else

if(bitselect==3){led1=1;led2=1;led3=1;led4=0;led5=1;led6=1;led7=1;led8=1;}

else

if(bitselect==4){led1=1;led2=1;led3=1;led4=1;led5=0;led6=1;led7=1;le

code

led_segment[13]={0xC0,0xCF,0xA4,0x86,0x8B,0x92,0x90,0xC7,0x80,0x82,0

// 温度值的变量;

// 结果为负和正的标志位。

电热水器水温水位控制系统设计

第25页

d8=1;}

else

if(bitselect==5){led1=1;led2=1;led3=1;led4=1;led5=1;led6=0;led7=1;led8=1;}

else

if(bitselect==6){led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=0;led8=1;}

else

if(bitselect==7){led1=1;led2=1;led3=1;led4=1;led5=1;led6=1;led7=1;led8=0;}

P2=led_segment[disbuffer[bitselect]]; delay(200); }

P2=0xff; //及时关闭P2口,以免造成最后一灯较亮 }

/*****************************************************/ void alarm() {uint i;

for(i=0;i<100;i++) {

delay(50); buzzer=1; delay(50); buzzer=0; } }

/******************************读键程序******************/ void read_key() { keyon=0;

if(INT1==0) {key1=1;keyon=1;keyoff=1;} if(INT0==0){key2=1;keyon=1;keyoff=1;} if(T1==0){key3=1;keyon=1;keyoff=1;}

电热水器水温水位控制系统设计

第26页

display1(); }

/**********************防连击*****************************/ KeyProcess() {

while(keyoff) {read_key(); if(keyon==0) {keyoff=0; if(key1==1)

{key1_state++;key2_state=0; if(key1_state==3)key1_state=0; key1=0; } } } }

SetProcess()/********************设定和显示模式选定**********/ {if(key1_state==1) {if(keyon==0) {keyoff=0; if(key2==1) {ytm++;

if(ytm==100){ytm=0;} key2=0; }

if(key3==1) {ytm--;

if(ytm==-1){ytm=99;} key3=0; } }

disbuffer[7]=11;disbuffer[6]=11;disbuffer[5]=11;disbuffer[4]=11;disbuffer[3]=11;disbuffer[2]=ytm/10;disbuffer[1]=ytm;disbuffer[0]=10;display1();

电热水器水温水位控制系统设计

第27页

}

if(key1_state==2) {if(keyon==0) {keyoff=0; if(key2==1) {yp=yp+20;

if(yp==100){yp=20;} key2=0; } }

disbuffer[7]=12;disbuffer[6]=yp/10;disbuffer[5]=0;disbuffer[4]=12;disbuffer[3]=11;disbuffer[2]=11;disbuffer[1]=11;disbuffer[0]=11;display1();

}

if(key1_state==0) {ET0=1; TR0=1;

if(o==1) { ET0=0; TR0=0; tm_read(); o=0; }

{//level_read();

disbuffer[7]=pl/1000; disbuffer[6]=pl/100; disbuffer[5]=pl/10; disbuffer[4]=pl; /*

disbuffer[7]=12;disbuffer[6]=p/10;disbuffer[5]=p;disbuffer[4]=12;*/

display1(); }

电热水器水温水位控制系统设计

第28页

if(temp111

if(temp111>ytm+3&&temp111ytm+8){alarm();heater=0;} if(p>yp+5&&pyp+10){alarm();c=0;} if(p

/*********************温度数据读取比较控制程序*****************/

/**************DS18B20****************/ bit tmreset (void) unsigned int i; P0_0 = 0; i = 103;

while (i>0) i--; P0_0 = 1; i = 4;

while (i>0) i--; presence= P0_0; delay(20);

return (presence); }

bit tmpread (void) {

unsigned int i; bit dat; P0_0 = 0;

P0_0 = 1; i++; i++; //延时 dat = P0_0;

i = 8; while (i>0) i--; return (dat); }

unsigned char tmpread2 (void)

// 发送复位和初始化

{ static bit presence;

// 延时

// 读取数据的一位

// 延时

//读一个字节

电热水器水温水位控制系统设计

第29页

{

unsigned char i,j,dat; dat = 0;

for (i=1;i<=8;i++) { j = tmpread ();

dat = (j << 7) | (dat >> 1);

}

return (dat); }

void tmpwrite (unsigned char dat) {

unsigned int i; unsigned char j; bit testb;

for (j=1;j<=8;j++) { testb = dat & 0x01; dat = dat >> 1; if (testb) { P0_0 = 0;

i++; i++; P0_0 = 1;

i = 8; while (i>0) i--;

} else { P0_0 = 0;

i = 8; while (i>0) i--; P0_0 = 1; i++; i++;

}

}

// 写0

// 写0

//写一个字节

电热水器水温水位控制系统设计

第30页

}

void tmpchange(void) {

tmreset (); delay (200);

// 复位 // 延时

// 跳过序列号命令 // 发转换命令 44H,

// ds1820 开始转换

tmpwrite (0xcc); tmpwrite (0x44); }

//********************************************* //*********************************************

void tmp (void) {

tmreset (); delay (200);

// 复位 // 延时

// 跳过序列号命令 // 发送读取命令

// 读取低位温度

// 读取温度

tmpwrite (0xcc); tmpwrite (0xbe); a = tmpread2 (); P0_0 = 0;

b = tmpread2 (); P0_0 = 0; }

tm_read() {

tmpchange(); delay(200); tmp();

P0_0=0;//读取温度

//读取高位温度

// 开始温度转换 // 读取延时

temp111=(b<<4)|(a>>4); if(tmreset ()==0) {

disbuffer[3]=11;

disbuffer[2]=(temp111/10);

//--------------------------------------------------

电热水器水温水位控制系统设计

第31页

disbuffer[1]=temp111; disbuffer[0]=10; }

else if (tmreset ()==1) {disbuffer[3]=11; disbuffer[2]=12; disbuffer[1]=12; disbuffer[0]=10; } }

/*********************液位数据读取比较控制程序*****************/ uchar tlc549_read() {

uchar i,adcdata; adcdata=0; for(i=0;i<8;i++) {delay(100); adcdata=adcdata<<1; if(adc) adcdata++; ccl=1; delay(100); ccl=0; }

return adcdata; }

level_read()

{temp=tlc549_read();

if(temp<0xFB&&temp>0xB8){p=50;} if(temp<0xB8&&temp>0x86){p=85;} /*

disbuffer[3]=pl/1000; disbuffer[2]=pl/100; disbuffer[1]=pl/10; disbuffer[0]=pl;

display(); //*测频率*/

电热水器水温水位控制系统设计

第32页

}

/*********************主程序*******************************/ main() {uint i; delay(100); TMOD=0x51; TH0=0xfc; TL0=0x66; TH1=0x0; TL1=0x0; t0count=0; EA=1; ET0=1;

TR0=1; //打开定时器T0 ET1=1; TR1=1; LED1_data=1; LED2_data=2; LED3_data=3; LED4_data=5; key1=0;key2=0; P2=0x00; buzzer1=0; key1_state=0; for(i=0;i<8;i++) alarm(); while(1) {

read_key(); KeyProcess(); level_read(); SetProcess(); } }

time0 () interrupt 1 using 1

电热水器水温水位控制系统设计

第33页

{

TH0=0xFc; TL0=0xe0;

t0count=t0count+1; if (t0count==1200) { {x++; if(x==2)x=0; if(x==0){o=1;} }

pl=TH1*256; pl=pl+TL1; TH1=0x0; TL1=0x0; t0count=0; } }

countor1 () interrupt 3 using 2 {

TH1=0x0; TL1=0x0; }

电热水器水温水位控制系统设计

第34页

附录3

元件名称 单片机芯片 继电器 温度传感器 数码管 液位传感器 进水阀 12V电源接口 蜂呜器 下载接口 电源开关 外部存储器 晶振 稳压管 稳压管 按键 发光二极管 电阻 电容 电感 元件型号 AT89S51 DS19B20 四位一体数码管 电容式(自制) ISP下载接口 CAT24C02 12M晶体振荡器 LM7805 LM7812 轻触按键 LED 个数 1 1 2 1 1 1 1 1 1 1 1 1 1 5 4 2 功能 系统控制中心 控制加热器的通/断 测量水温 显示水温和水位 测量水位 自动加水开关 +12V电源输入接口 产生音频信号 程序下载接口 接通和断开电源 2K容量EEPROM 时钟振荡源 键盘控制 显示系统状态 备注 数字化传感器 家用小型 按下为导通 红2绿1黄1 30P AQR10AZ-Z4/6VDC 2

电热水器水温水位控制系统设计

第35页

致谢

从论文选题到搜集资料,从提纲的完成到正文的反复修改,我经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中,心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。

我要感谢我的老师。他们为人随和热情,治学严谨细心。从选题、定题、撰写提纲,到论文的反复修改、润色直至定稿,老师始终认真负责地给予我深刻而细致地指导。正是有了老师的无私帮助与热忱鼓励,我的毕业论文才得以顺利完成。

我还要感谢我的导员老师以及给我们授课的所有老师们,是他们让我学到了很多很多知识,让我看到了世界的精彩,让我学会了做人做事。

最后感谢我的同学、朋友们,有了他们我的人生才丰富,有了他们我在奋斗的路上才不孤独,谢谢他们。

电热水器水温水位控制系统设计

第36页

作品(软件)使用说明书

热水器程序1.0

本设计由温度测量控制,液位测量控制,显示,报警,输入等五个模块 构成,其中:

液位测量使用TLC549对电压进行测量,得到压阻式传感器上电压数据,从而得到液位值,或者通过T1计数器测量频率,加以转化得到液位值温度测量通过使用DS18B20直接对温度进行测量,得出数据显示通过四位7段数码管显示数据“-88-”为显示位”88??C“显示温度。再通过与预设进行比较,当温度或液位超过设定,则报警。

操作方法:

按KEY1切换工作状态,正常工作,设定预设温度,设定预设水位。

正常工作时KEY2,KEY3无效。实时温度和液位交替显示,在此模式下报警才有效; 设定预设温度,KEY2加1摄氏度,KEY3减1摄氏度;此时控制端口均为低 设定预设水位,KEY2加20%,KEY3无效。此时控制端口均为低。

本文来源:https://www.bwwdw.com/article/08lg.html

Top