太阳能热水器控制器的软硬件设计论文_第1页
太阳能热水器控制器的软硬件设计论文_第2页
太阳能热水器控制器的软硬件设计论文_第3页
太阳能热水器控制器的软硬件设计论文_第4页
太阳能热水器控制器的软硬件设计论文_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 I / 46编编 号号本本科科生生毕毕业业设设计计( 论论文文 )题目:题目: 太阳能热水器控制器 的软硬件设计 物联网工程 学院 电子信息工程 专业学 号 0703090325 学生 于昆才 指导教师 于凤芹 教授 二一三年六月 设计总说明设计总说明在全世界能源都高度紧的今天,传统的燃气和电热水器使用成本越来越高,太阳能热水器凭借着太阳能取之不尽的优点越来越受到人们的欢迎但与太阳能热水器发展日趋成熟的现状不同,与之配套的热水器控制器还存在着很多问题有些热水器控制器无法自动控制水温和水位,经常出现干烧、过烧或水温不适等情况针对这个现状,设计一种单片机控制的太阳能热水器控制器该控制器可以让热水

2、器功能更加的完善,也使得热水器使用更加安全,因此这是一个具有实用价值的课题本课题以单片机控制为基础,提出了一种通过传感器实时检测温度和水位,再由单片机控制继电器驱动相应控制模块来实现温度和水位智能控制的系统方案,核心是设计出一个太阳能热水器控制器该控制器在太阳能热水器原有的温度和水位显示功能基础上,新增了温度控制、水位控制、防干烧和过烧警报等功能控制器的设计又分硬件部分和软件部分硬件部分由 STC89C52 单片机主控模块、DS18B20 温度传感器测温模块、干簧管水位传感器测水位模块、继电器驱动的温控和水位控制模块、键盘输入和液晶显示模块等部分组成软件部分由单片机主控,通过程序分析传感器检测

3、的当前温度和水位,再通过与预设值的比较来发出信号驱动相应的控制模块,实现对温度和水位的自动控制此外本设计的程序也采用模块化结构,将整个程序设计分成若干功能模块先将每个模块的功能实现,然后再组合到一起,使其逻辑关系更清晰易读,而且增强了程序的可移植性关键词:关键词:热水器控制器;单片机;软件设计;硬件设计 DESIGNDESIGN SUMMARYSUMMARYToday the worlds energy are highly strained,Traditional gas and electric water heaters use increasingly higher costs.Wit

4、h the advantages of inexhaustible solar energy,the solar water heaters are more and more popular.However,different from the rapid development of solar water heaters, the research of water heater controller has been in infancy. Many water heater controller cannot automatically control the temperature

5、 or water level , cause the dry-burning,over-burning or making the temperature of the water uncomfortable.For this situation, design a microprocessor controlled solar water heater controller.The controller not only make the heaters function more perfect,but also make it more save.So,it is a valuable

6、 issue.The object is based on micro controller,proposed a system solution which make the sensor detect the temperature and water level at real-time,and MCU control the relays to make it drive the corresponding moduleThe core is to design a solar water heater controller.It not only has the function o

7、f temperature and water level display,but also has temperature control,water level control and alarming the dry-burning or over-burning. The design of the controller is divided into hardware components and software components. The hardware part is consist of STC89C52 MCU control module,DS18B20 tempe

8、rature sensor temperature measurement module, water level measure module,temperature and water level control module,keyboard input and LCD display module.The software part is dispatched by MCU. Through program analyzes the current temperature and water level detected by sensor, to achieve the automa

9、tic control of temperature and water level.In addition ,the program is also designed with modular structure,the whole program design is divided into several functional modules. Realizing the function of each module first, and then group them together.Making it with the clear and understandable struc

10、ture,but also enhancing the portability of programs.KeywordsKeywords: water heater controller; MCU; software design;hardware design i / 46目目 录录第 1 章绪论 11.1 课题背景 11.2 太阳能热水器控制器国外现状 11.3 本论文研究容 2第 2 章需求分析与总体设计 52.1 需求分析 52.2 总体设计方案 52.3 芯片选择方案论证 62.3.1 单片机芯片的选择方案和论证 62.3.2 温度传感器的选择方案和论证 62.3.3 水位传感器的选

11、择方案和论证 62.4 太阳能热水器的组成与工作原理简介 7第 3 章硬件电路设计 93.1 总述 93.2 温度传感器模块设计 103.2.1 DS18B20 简介 103.2.2 DS18B20 工作原理 103.3 水位传感器模块设计 113.4 LCD 显示模块设计 123.4.1 1602 液晶显示器工作原理 123.4.2 显示模块电路连接 143.5 温度控制模块设计 153.5.1 继电器驱动电路 153.5.2 继电器驱动温控模块 153.6 水位控制模块设计 163.6.1 电磁阀简介 163.6.2 水位控制模块 163.7 电源模块设计 173.8 按键模块设计 173

12、.9 报警模块设计 173.10 单片机辅助电路 183.10.1 时钟电路 183.10.2 复位电路 18第 4 章系统软件设计 19 4.1 主程序流程图 194.2 温度测控部分流程图 214.3 水位测控部分流程图 224.4 液晶显示部分流程图 244.5 按键部分流程图 25第 5 章结论与展望 275.1 设计小结 275.2 不足之处与未来展望 27参考文献 28致 29附录 A:作者在校期间发表的论文 30附录 B:作者在校期间项目成果物 31附录 C:部分模块汇编程序 33附录 D:硬件总原理图 37 1 / 46第第 1 1 章章 绪论绪论1.11.1 课题背景课题背景

13、我们所处的时代堪称“能源时代” 人们从来没有像今天这样重视能源,世界上的大多数国家都在极力的在寻求新的廉价的可再生能源,以求得可持续发展和在日后的竞争中获取优势地位太阳能则以其巨大、长久、广泛、无害等显著优势得到的广泛的关注在众多的太阳能产品中,太阳能热水器无疑是技术最成熟的也是与人们日常生活最密切相关的太阳能热水器将太阳能转化为热能,利用太阳的光和热使水温升高,以满足人们日常需求它不但有效利用了太阳能,节约了能源,而且相比传统的用煤炭或者电力对水进行加热的方式,更具有环保无污染的优点所以太阳能热水器一经产生便受到广大人民的青睐前几年的热水器市场上,太阳能、电、燃气三种加热方式的热水器三分天下

14、但是随着世界能源危机的日益加重,有着可再生优势的太阳能加热方式逐渐打破了这一平衡,取代了传统的电能和燃气加热方式的热水器2008 年,太阳能热水器市场占有率首次超过了电热水器和燃气热水器之和,到 2009 年,其占有率达到 56.7%如表 1-1 所示为2001-2009 年三种热水器市场占有率1表1-1 2001-2009年三种热水器市场占有率年份 电热水器(%)燃气热水器(%)太阳能热水器(%)2001 30 54.8 15.22003 44.23 37.57 22.22005 45.2 26.57 28.232007 42.3 19.2 38.52008 49.2 50.82009 43

15、.3 56.71.21.2 太阳能热水器控制器国外现状太阳能热水器控制器国外现状我国太阳能热水器产业发展迅速,目前已经成为世界上最大的太阳能热水器生产国,但与热水器配套的控制器却一直处于研究和开发阶段2近几年来,市场上陆续出现了一些太阳能热水器控制器产品,但是大多数存在着诸如性能不稳定,容易产生误操作,温度、水位可以检测但是无法自动控制,数码管显示器经常出现乱码等问题,严重影响了用户使用更有甚者,有些控制器质量较差,会经常发生故障,如加热温度过高时无法自动停止加热或者水箱已经没水了但是还在加热,形成了过烧和干烧的情况,安全性无法保证基于上述原因,太阳能热水器控制器这个有着广阔发展前景的产品,由

16、于产品开发投入的较少,一直没有得到广泛的推广,从而也影响了太阳能热水器使用的用户体验因此,在太阳能热水器控制器方面,应该引起足够的重视,要加大人力和财力的投入,开发出一款高质量高性能的控制器 国外的太阳能热水器起步很早,世界上第一台热水器是美国马里的肯普于1891年发明的到20世纪40年代,人们创造了各式各样被统称为“闷晒式”的太阳能热水器3第二次世界大战之后人们的注意力又开始转向发展经济一些缺少常规能源的国家 如日本等最先开始投入到太阳能的开发和利用经过人们的努力,一些简易的平板太阳能集热器 3 / 46在当时在市场上出现到了20世纪70年代,世界性能源危机日益严重,迫使人们对太阳能的开发和

17、利用越来越重视许多国家开始投入到太阳能开发的行列,其中太阳能热水器是典型的代表性的产品到了70年代末期,太阳能热水器在美国、澳大利亚、日本、德国等国家得到了很大的发展在随后的十几年中,平板集热器型热水器在一些国家得到了较快发展1975年美国欧文斯-伊利诺伊公司发明了全玻璃真空管太阳能热水器并推向市场3当时,集热管的选择性吸收涂层平均吸收率约为83%,后来由于采用了高真空技术,使得集热器的了损失比普通的平板式太阳能集热器热损失降低了两个数量级,从而太阳能热水器得到了进一步快速发展,到了上世纪90年代,这种热水器成为推广应用的主流产品90年代末,为了进一步提高效率、提高性能,德国研制了热管式真空管

18、太阳能热水器,一些国家研制了一些高质量的太阳能热水器专用的零部件,另一些国家为优化设计专门开发了太阳能热水器的应用软件还有一些国家开始着手开发全天候使用的太阳能热水器控制器系统总之在西方的发达国家,太阳能热水器领域的开发研究一直比较活跃1.31.3 本论文研究容本论文研究容文章首先对太阳能热水器控制器的背景做了简单介绍并分析了当前国外现状,发现国的太阳能热水器产业已日趋成熟,但是与之相配套的太阳能热水器控制系统却存在很多问题之后又对设计进行了需求分析,列出了控制器需要实现的主要功能,然后根据相应的功能来选择对应的芯片或器件来设计功能模块本设计的硬件部分主要由单片机控制电路、温度传感器模块、水位

19、传感器模块、温度控制和水位控制模块、键盘和液晶显示模 块、警报装置等组成软件部分通过对功能的设计和分析,制作了各模块的流程图最后对本设计所做的工作进行总结,并给出建议和展望本论文的核心是设计一种太阳能热水器控制器,使热水器具有温度显示、水位显示、温度自动控制、水位自动控制和智能警报的功能温度检测部分通过 DS18B20 传感器来实现,DS18B20 是一种数字式温度传感器,仅需要一条数据线与单片机连接来进行数据传输,而且不需要 A/D 转换模块,可以很大程度上简化电路水位检测部分通过干簧管水位传感器来实现,本论文共设计了四个检测点,分别对应水箱中的“下” 、 “中下” 、 “中上” 、 “上”

20、的位置,当水没过检测点时,干簧管被磁化形成通路,对应的水位输出级会被拉低,单片机可以通过读各个检测点水位输出极的电平来判断水箱中水位温度和水位的控制部分分两种情况讨论,一种是人工操作,另一种是自动控制本论文设计了四个控制按键,分别用来实现“加热” 、 “停止加热” 、 “上水” 、 “停止上水”功能其中温度和水位的控制按键(如“加热”和“停止加热” )用两个按键来分别实现,是因为本论文中也设计了自动加热和上水的功能,如果每组只设计一个按键(即开关闭合为加热,断开为停止) ,当系统故障出现干烧或者过烧时,就无法通过人为操作使其停止了自动控制部分由程序预先设定,在特定的条件下系统会自动对温度和水位

21、进行调节此外,本设计的控制模块都是通过单片机触发继电器来驱动相应大功率电路来实现 的警报部分本设计设置了两种情况报警:干烧和过烧当水位低于“下”而且还在加热的时候,系统发出干烧警报无论水位如何,当温度高于 80 摄氏度且还在加热时,系统发出过烧警报 5 / 46第第 2 2 章章 需求分析与总体设计需求分析与总体设计2.12.1 需求分析需求分析本课题设计的热水器控制器需要实现如下功能:1 温度显示水温围0100摄氏度,精确到1摄氏度2 水位显示在水箱设置4个检测点,分别代表水位“上” 、 “中上” 、 “中下” 、 “下”四个级别3 温度自动控制当系统检测到水温低于20摄氏度并且水位在“中下

22、”以上时,系统启动加热装置,升高水温当水温高于80摄氏度时,系统关闭加热装置,停止加热这样可以使水箱里边的水温控制在一个合适的温度4 水位自动控制当系统检测到水位低于“下”时,启动自动上水装置,开始上水当水位到“上”时,停止上水5 智能警报当系统检测到水位低于“下” ,且此时还在加热时,启动警报装置,警报干烧无论水位如何,当温度高于80摄氏度且还在加热时,系统启动警报装置,警报过烧2.22.2 总体设计方案总体设计方案系统的硬件通过单片机控制,其他部分由键盘模块、温度传感器模块、水位传感器模块、液晶显示模块、警报装置、继电器驱动的温度和水位控制电路等组成如图2-1所示,该控制器选用STC89C

23、52单片机主控,供电部分通过电源模块将220V的交流电转化成5V直流电压本设计设置了6个按键,分别实现电源、复位、加热、上水、停止加热、停止上水功能,人们可以通过外部按键的控制它们来实现相应的功能温度传感器选用了防水的DS18B20,将其放入水箱中来实时检测水温水位检测部分选用干簧管水位传感器,在水箱中设置4个检测点,用来帮助判断水箱中水位显示部分用1602液晶显示器,主要显示当前水温和水位状况温度和水位控制部分通过控制继电器驱动相应的加热装置或电磁阀来实现对温度和水位的调控本系统还设计了警报装置,用来警报干烧和过烧情况,增强了系统的安全性图 2-1 系统的总体设计框图 2.32.3 芯片选择

24、方案论证芯片选择方案论证2.3.12.3.1 单片机芯片的选择方案和论证单片机芯片的选择方案和论证方案一: 采用 89C51 芯片作为硬件核心,采用 Flash ROM,部具有 4KB ROM 存储空间,能于 3V的超低压工作,而且与 MCS-51 系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP 在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏方案二:采用 STC89C524该芯片部存储器为 8KB ROM 存储空间,同样具有 89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序

25、的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏另外,STC 系列单片机的 P0 口不需要上拉电阻,可使电路更加简洁综上所述,本设计选择采用 STC89C52 作为主控制系统2.3.22.3.2 温度传感器的选择方案和论证温度传感器的选择方案和论证方案一:使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻串联分压,利用热敏电阻阻值随着温度的变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换此设计方案需要用到A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线不是严格线性的,这样会产生较大的测量误差方案二:采用数字式温度传感器DS18B20

26、,此类传哪去为数字式传感器,仅需要一条数据线进行数据传输,易于与单片机连接,也不需要A/D转换模块,降低硬件成本和系统的复杂度此外,数字式温度传感器具有精度高,测量围广等优点从电路简化和系统稳定性角度考虑,本设计采用DS18B20传感器由于是测热水器水箱的水温,所以选择防水型DS18B202.3.32.3.3 水位传感器的选择方案和论证水位传感器的选择方案和论证方案一:投入式液位传感器把传感器探头投入液体中间,利用探头检测到的液体压力来测量出液体的深度这种方案的缺点是长时间使用时探头会被腐蚀,不适合长期在水箱中使用方案二:干簧管水位传感器如图2-2所示在一段密封塑料管分上、中上、中下、下四处放

27、置四个干簧管作为四个检测点在塑料管外套一个部有环形磁铁的浮子,当水位变化时浮子也上下滑动,当浮子经过干簧管检测点时会触发其闭合,形成通路,使对应的水位输出级输出低电平,这样便可知道水箱水位了本方案干簧管的接触点与大气隔绝,管有 7 / 46稀有气体,可有效防止水蒸气和尘埃等对其的腐蚀图2-2 干簧管水位传感器示意图由于方案一的探头易被腐蚀,所以本设计采用方案二2.42.4 太阳能热水器的组成与工作原理简介太阳能热水器的组成与工作原理简介在进行太阳能热水器控制器硬件设计之前,先来补充一下太阳能热水器的组成和工作原理,熟悉其基本结构和工作过程图 2-3 太阳能热水器工作原理如图2-3所示太阳能热水

28、器主要由集热管,循环水箱和补给水箱三大部分组成其中集热管主要用来吸收太阳能热量,加热过的水通过上升水管进入循环水箱循环水箱中的冷水通过下降水管进入集热管中进行加热自来水管用来往补给水箱中注水,补给水箱是用来给循环水箱提供冷水的最终的热水通过热水输出管输出 太阳能热水器的最主要器件是集热管5,在热水器的集热管表面有一特殊涂层,它在太阳发出的可见光波长围对光有极大的吸收率,吸收的光能转化为热能而在集热器散热辐射的波长围下,该涂层对长波的发射率很低,这样又可以保留吸收的太阳能热量,从而逐渐将冷水加热成热水此外,集热管的结构也十分讲究它像一根被拉长的热水壶胆,是由两只玻璃管套合而成,外层是透明的,层才

29、是涂有光谱选择性的吸收涂层,外管之间是真空的,可以防止散热套管下边还有一块反射光板,这样使得玻璃管背光部分也会被照射到通过这么多精心的设计,使得集热管可以能够最大限度的吸收光能而且最小限度的散失热量,所以即使在高寒地区,太阳能热水器也可以一年四季都正常使用集热管的水通过吸收太阳能的热量温度上升,由于热水的密度要小于冷水,所以循环水箱中的冷水会通过下降水管进入集热管,而热水会通过上升水管进入循环水箱循环水箱中的热水通过热水出水管输出时,循环水箱的水位会下降,这时补给水箱中的来自自来水管中的冷水会进入循环水箱,这样保证了冷水也是一直可以提供的太阳能热水器就是通过这样的水循环原理实现不断将冷水加热成

30、热水的这种热水器利用循环加热的原理,因此又称循环热水器 9 / 46第第 3 3 章章 硬件电路设计硬件电路设计3.13.1 总述总述该控制器以单片机核心,结合其他模块来实现温度、水位的控制和显示等功能系统上电后,会首先初始化和扫描按键,当检测到来自键盘的信号时,单片机会通过控制相应的引脚电平来驱动相应的控制电路温度传感器 DS18B20 和干簧管水位传感器用来检测实时的温度和当前的水位当温度过高或水位高出或低于设定值时,单片机也会做出的反馈如:停止加热、控制上水等,并会在一定条件下做出相应的警报LCD 液晶显示模块用来显示当前的温度和水位状况硬件系统原理图如图 3-1 所示,单片机的 P1.

31、0 口与温度传感器 DS18B20 的数据线 DQ 相连P1.1 和 P1.2 均连接继电器驱动电路,P1.1 连的继电器用来驱动一个电磁阀,以实现水位控制功能P1.2 的继电器驱动一个加热装置用来实现温度控制P1.3 引脚连接警报装置,当水位低于中下且还在加热或者当水温高于 70 摄氏度还在加热的时候,警报装置启动,以防止出现干烧和过烧的情况P1.4P1.7 四个引脚分别连接水位传感器的下、中下、中上、上四个水位探针的输出极P0.0P0.7 与 1602 显示器的数据线相连,1602显示器的使能端接在单片机的 P2.0 口,读写控制端分别接 P2.7 和 P2.6单片机的P2.1P2.4 分

32、别接停止上水开关、上水开关、停止加热开关和加热开关,当按下相应的按键时,单片机对应 I/O 口接收到信号再通过程序控制来做出相应的反馈图 3-1 硬件系统原理框图 3.23.2 温度传感器模块设计温度传感器模块设计3.2.13.2.1 DS18B20DS18B20 简介简介温度传感器是最常用的传感器之一早期的温度传感器都是模拟传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据特定的公式就可计算当前环境温度随着科技的进步,现代的温度传感器已经走向数字化,并广泛的应用到生产实践的各个领域,为我们生活提供了很大的便利条件随着现代仪器的发展,微型化、集

33、成化、数字化正在成为传感器的一个重要方向美国DALLAS半导体公司推出的数字化温度传感器DS18B204采用单总线协议,即与单片机接口仅需占用一个I/O端口,无须任何外部元件,直接将环境温度转化为数字信号,以数字码方式串行输出,从而大大的简化了传感器与单片机的接口联系DS18B20 只有电源、数据和地线三个引脚,使用起来非常方便电路连接如 3-2 所示GND 接地线,VCC 接电源信号输入输出端 DQ 与单片机 P1.0 引脚相连,并且连有10K 欧的上拉电阻,确保总线空闲时一直处于高电平图 3-2 DS18B20 电路连接3.2.23.2.2 DS18B20DS18B20 工作原理工作原理硬

34、件电路连接好以后,接下来的问题就是单片机如何将 DS18B20 中的温度数据读取出来本设计只需要一个温度传感器,就不需要读取 ROM 编码以与匹配 ROM 编码了,只要用跳过 ROM(CCH)命令,就可以开始进行温度转换和读取的操作6DS18B20 在出厂时默认配置为 12 位,其中最高位为符号位,即温度值共 11 位,单片机在读取数据时,一次会读 2 字节共 16 位,读完后将低 11 位的二进制数转化为十进制数后再乘以 0.0625 边为所测的实际温度值另外,还需要判断温度的正负由于温度值只占用了 11 位,所以前五位均为符号位,这五位同时变化前五位位 1 时,读取的温度为负值,此时测量的

35、数值需要取反加 1 再乘以 0.0625 才可得得到实际温度值前五位为0 时,读取的温度为正值,此时仅需要将测量的数值直接乘以 0.0625 即为实际温度 11 / 46值表 3-2 所示为常用的 DS18B20 指令表 3-2 常用 DS18B20 指令读ROM33H读DS18B20中的编码(即64位地址)符合ROM55H发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位RO

36、M地址,直接向DS18B20V 温度转换命令,适用于单个DS18B20工作告警搜索命令0ECH执行后,只有温度超过预设值上限或下限的片子才做出响应温度转换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入部 9 字节 RAM 中读暂存器BEH读部RAM中9字节的容写暂存器4EH发出向部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据复制暂存器48H将RAM中第3、4字容复制到E2PROM中重调E2PROM0B8H将E2PROM中容恢复到RAM中的第3、4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B2

37、0发送“0” ,外部供电时DS18B20发送“1”3.33.3 水位传感器模块设计水位传感器模块设计本设计采用干簧管水位传感器图3-3所示为干簧管7,也称舌簧管,是一种特殊的开关它部触点通常由两个软磁性金属簧片构成,两个金属簧片平行放置,并且中间有一部分重叠,如图3-4所示在正常的情况下,它们的是断开的,当外部有磁场作用时,两个簧片会被磁化,然后吸合,形成通路,当磁场撤去时,簧片断开,形成断路干簧管部充有惰性气体以保障其簧片的性能干簧管比一般机械开关结构简单、体积小、速度高、工作寿命长、可靠性高,基于上述优点,干簧管也被广泛的应用到人们的生产生活中 图 3-3 图 3-4水位传感器是在一端封闭

38、的一段 PVC 管,在上、中上、中下、下四个位置分别垂直安装四个干簧管,干簧管的公共端接+5V 电源,另外四个端分别为水位高、中上、中下、低的信号输出端PVC 管外套一个环形磁铁浮漂,当热水器水位变化时,浮漂会随着液面变化而上下浮动,当带有环形磁铁的浮漂经过管的干簧管时会吸合相应的干簧管,随即输出相应的水位信号水位输出极的外部连接四个公共端接+5V 电源的上拉电阻并分别与单片机的 P3.0 、P3.1、P3.2、P3.3 四个引脚相连当没有水的状态下,单片机四个引脚在上拉电阻的作用下为高电平水位经过时,干簧管被磁化吸和形成通路,此时单片机对应的引脚为低电平,单片机通过读取对应引脚的逻辑电平来判

39、断水位的高低此外,水位的高低会最终显示在 1602 液晶显示器上水位检测部分的原理图如 3-5 所示:图 3-5 水位传感器电路连接与示意图3.43.4 LCDLCD 显示模块设计显示模块设计3.4.13.4.1 16021602 液晶显示器工作原理液晶显示器工作原理液晶是一种高分子材料,因为其特殊的物理、化学、光学特性,20 世纪中叶开始广泛应用在了显示器上液晶显示器的主要原理是用电流车技液晶分子产生点、线、面并配合背部灯光构成画面各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名本设计中使用的 1602 就是每行显示 16 个字符,一共可以显示两行常用的 1602 显示器有

40、16 个引脚,各引脚的功能如表 3-39所示: 13 / 46表 3-3 1602 液晶显示器引脚介绍编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极对应各个引脚,有一些常用的指令如表 3-44所示:表 3-4 1602 常用指令序号 指令RS R/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/

41、关控制0000001DCB5光标或字符移位000001S/C R/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到 CGRAM 或 DDRAM)10要写的数据容11从 CGRAM 或 DDRAM 读数11读出的数据容1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1 为高电平、0 为低电平)指令 1:清显示,指令码 01H,光标复位到地址 00H 位置指令 2:光标复位,光标返回到地址 00H指令 3:光标和显示模式设置 I/D:光标移动方向,高电

42、平右移,低电平左移 S:屏幕上所有文字是否左移或者右移高电平表示有效,低电平则无效指令 4:显示开关控制 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示5x10 的点阵字符指令 7:字符发生器 RAM 地址设置指令 8:DDRAM

43、地址设置指令 9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙指令 10:写数据指令 11:读数据液晶显示模块是一个慢显示器件,所以在执行每条指令前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图 3-6 是 1602 的部显示地址图 3-6例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7 恒定为高电平1 所以实际写入的数据应该是 01000000B(40H)+

44、10000000B(80H)=11000000B(C0H)在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预每次输入指令前都要判断液晶模块是否处于忙的状态1602 液晶模块部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A” 3.4.23.4.2 显示模块电路连接显示模块电路连接如图 3-7 所示,

45、1602 的使能端与单片机 P2.0 相连,当 P2.0 从高电平变成低电平时液晶模块开始执行指令RS 和 RW 分别与单片机 P2.7 和 P2.6 引脚相连,用于控制数据的读写数据引脚 D0D7 与单片机的 P0.0P0.7 相连,用来进行数据交换 15 / 46图 3-7 1602 电路原理图3.53.5 温度控制模块设计温度控制模块设计3.5.13.5.1 继电器驱动电路继电器驱动电路继电器10的定义是:当输入量的变化达到规定要求时,在电气输出电流中使被控量发生预定的阶跃变化的一种电器通俗一点说,继电器实际上是 用小电流来控制大电流运作的一种“自动开关” ,在电路中起着自动调节、安全保

46、护、转换电路等作用图 3-8 继电器驱动电路原理常见的继电器驱动电路如图 3-8 所示我们知道,单片机是一个弱电器件,通常的工作环境电压在 5V 作用,电流也是毫安级别的而要把它用到一些像电动机那样大功率场合,显然是不行的所以就需要有一个环境来衔接,这就是所谓的“功率驱动” 继电器驱动就是一种典型的、简单的功率驱动环节这里的驱动主要是指用继电器驱动其他负载,继电器驱动相当于是单片机与其他大功率负载的接口单片机对继电器的控制利用了三极管的开关作用当单片机在三极管基极给出高电平时,继电器两端无电势差,继电器也就不工作当想让继电器驱动其他大功率负载的时候,单片机在三极管基极给出低电平,继电器两端电压

47、不等,则继电器有输入电压,继而输出更大的电压来驱动其他负载图中二极管为继电器线圈在由吸合变为断开时提 供续流,以免瞬间产生高压将三极管击穿3.5.23.5.2 继电器驱动温控模块继电器驱动温控模块本设计规定,当水箱水温低于二十摄氏度并且水位高于百分之七十五时,加热模块开始自动加热当加热至温度已经达到八十度或者水箱水位低于百分之二十五时,单片机控制停止加热,以防水温过高或者形成干烧的情况此外,本设计也可以通过外部按键控制来进行加热和停止加热温控模块电路连接如图 3-9 所示:图 3-9 温度控制模块电路原理图3.63.6 水位控制模块设计水位控制模块设计3.6.13.6.1 电磁阀简介电磁阀简介

48、电磁阀11是用电磁控制的工业设备,是用来控制流体的自动化基础元件其部有密闭的腔,腔中间是活塞,两边是两块电磁铁哪边的磁铁线圈通电阀体就会被吸引到哪边通过控制阀体的移动来开启或关闭两边的管道电磁阀从原理上可以分为直动式电磁阀、分布直动式电磁阀和先导式电磁阀3.6.23.6.2 水位控制模块水位控制模块本设计选用最简单的水用直动式电磁阀12其原理为在通电时,电磁线圈产生电磁力把活塞从阀座上提起,阀门打开;断电时电磁力消失,弹簧把活塞压在阀座上,阀门关闭当水位低于百分之一时,最下端的干簧管断开,单片机接收信号并发出控制指令,驱动电磁阀打开,进行上水,当水位高于百分之九十九时,最上端的干簧管吸合,单片

49、机控制电磁阀关闭,停止上水本设计也可以通过外部按键控制来实现上水和停止上水功能水位控制模块电路连接如图 3-10 所示: 17 / 46图 3-10 水位控制模块电路原理图3.73.7 电源模块设计电源模块设计由于整个系统是在 5V 电压环境下工作的,所以需要设计一个 5V 输出的电源模块4如图 3-11 所示,市电 220V 电压首先通过一个变压器使电压降到 12V 左右的交流电压,然后经由二极管组成的整流电路处理后,变成直流电压最后在通过三端稳压器就可以输出一个稳定的直流电压了图中稳压器输入和输出端的电容起到滤波的作用,使输入和输出的电压更加稳定由于我们要得到一个 5V 的直流电压,所以稳

50、压器的型号选择 7805图 3-11 电源模块原理图3.83.8 按键模块设计按键模块设计本设计共有六个按键,包括总电源开关、系统复位开关、和四个功能按键,分别是加热、上水、停止加热和停止上水在系统上电的情况下,按下按键即可执行相应的操作功能按键电路部分如图 3-12 所示 图 3-12 按键模块原理图3.93.9 报警模块设计报警模块设计本设计还设置了报警模块当水位低于百分之一且此时还在加热或者当水温超过 80摄氏度而且还在进行加热的时候,单片机的 P1.3 口给出低电平,触发报警模块报警模块的设计可以防止热水器的干烧和过烧情况报警模块电路设计如图 3-14 所示图 3-13 报警模块电路原

51、理图3.103.10 单片机辅助电路单片机辅助电路3.10.13.10.1 时钟电路时钟电路时钟电路是用于产生单片机工作时所必需的时钟信号时钟是单片机的心脏,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性电路中的电容 C2、C3 典型值为 3010 pF外接电容的值虽然没有严格的要求,但是电容的大小会影响振荡器的稳定性和起振的快速性,本设计采用的是 22pF 电容同时,在系统中采12MHz 的晶体振荡器来产生时钟脉冲时钟电路原理图,如图 3-12 所示 19 / 46图 3-14 时钟电路原理图 图 3-15 复位电路原理图3.10.23.10.2 复位电路复位电路复

52、位是单片机初始化操作,其主要功能是把 PC 初始化为 0000H,使单片机从 0000H单元执行程序除了进入系统的正常初始化之外,当程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动复位操作有上电自动复位和按键手动复位两种方式本设计采用了按键手动复位方式该复位电路如图 3-15 所示开关闭合瞬间 RST 引脚获得高电平,单片机复位电路随着电容的 C1 的充电,RST 引脚的高电平逐渐下降RST 引脚的高电平只要能保持足够的时间(2 个机器周期),单片机就可以进行复位操作第第 4 4 章章 系统软件设计系统软件设计本设计软件部分采用模块化结构,将整个设计分成若干功能模

53、块先将每个模块的功能实现,然后再组合到一起,使其逻辑关系更清晰易读,而且可以增强程序的可移植性系统的程序框图如图4-1所示主程序温度测控子程序水位测控子程序键盘扫描子程序液晶显示子程序图 4-1 系统程序框图4.1 主程序流程图主程序流程图主控模块控制整个程序运行的流程,协调各个功能模块的工作,如图4-2所示执行开始后温度和水位传感器分别显示温度和水位的状态然后扫描按键,看是否有按键按下,当检测到有按键中断操作时,主程序再去执行对应的功能程序实现相应功能如: 上水、升温等等当没有按键操作时,系统开始判断水位,当水位低于“上”时,系统均控制水位模块执行上水操作,当水位高于“上”时,系统接收水位传

54、感器输出极的信号继而执行停止上水操作当水位高于“中下”时,系统开始检测温度值当水位满足要求且温度低于20度时,主程序控制相应的功能程序执行加热功能当加热至温度操作80度时,执行停止加热操作此外,当系统检测到当水位低于“下”且此时正在加热时,警报模块启动扬声器来警报干烧;无论水位多少,当系统检测到温度高于80度且还在加热时,系统发出过烧警报 21 / 46开始系统初始化扫描按键P2.4为0?水位低于“下”P1.1给低电平自动上水Y水位低于“中下”水位低于“中上”水位低于“上”P1.1给低电平自动上水P1.1给低电平自动上水P1.1给低电平自动上水返回P1.2是否为0?检测是否加热P1.3给低电平

55、警报干烧P1.2给低电平加热温度低于20度温度低于80度P1.2给高电平停止加热P1.1给高电平停止上水P1.2给低电平加热警报过烧YNNNYNNYNYYYY读P1.4P1.5P1.6P1.7,值判断当前水位P2.3为0?N执行加热操作Y执行停止加热操作YP2.2为0?N执行上水操作YP2.1为0?N执行停止上水操作YN图 4-2 系统总流程图 4.2 温度测控部分流程图温度测控部分流程图单片机访问 DS18B20 必须遵守其复位、执行 ROM 指令、执行 DS18B20 功能指令这个顺序而在单点上,可以直接跳过 ROM 指令DS18B20 的转换精度默认为 12 位,而分辨率是 0.0625

56、DS18B20 温度读取包括三个步骤第一步让 DS18B20 启动温度转换,这一步中首先让 DS18B20 复位,然后连续写入跳过 ROM 的字节命令:0 xCC,开始转换的功能命令:0 x44,之后延时一段时间第二步为读暂存数据,具体为首先让 DS18B20 复位,然后写入跳过 ROM 的字节命令:0 xCC 和读暂存的功能命令:0 xBE完成后读入第 0 个字节 LS Byte,转换结果的低八位读入第 1 个字节 MS Byte,转换结果的高八位最后DS18B20 复位,表示读取暂存结束最后一步为整合 LS Byte 和 MS Byte 的数据乘以0.625 即得到带一位小数的温度值温度采

57、集程序流程图和温度控制流程图如图 4-2、图 4-3 所示开始数据端置位复位DS18B20DS18B20是否存在?Y写跳过ROM匹配命令OXCC写温度转换命令OX44延时10mS(读温度前)复位DS18B20写读温度字节命令0XBE写跳过ROM匹配命令0XCC读温度返回图 4-2 温度采集模块流程图 23 / 46开始扫描按键 P2.4为低电平?即加热按键是否按下?执行加热操作Y当前温度是否低于20度?P1.2给出低电平,执行加热操作Y判断温度是否高于80度NP1.2给高电平,停止加热。 P2.3为低电平?即停止加热按键是否按下N执行停止加热操作YNYN返回等待按键图 4-3 温度控制部分流程

58、图4.3 水位测控部分流程图水位测控部分流程图执行水位控制部分程序时,照例首先读取当前水位,然后扫描按键,当 P2.1 和 P2.2端口检测到按键按下时,程序中断去执行相应的上水和停止上水的操作当没有按键按下时,程序判断当前水位,如果水位信号“上”的 P1.7 端口为高电平,说明当前水位低于该检测点,则 P1.1 给出低电平“0” ,此时系统通过继电器驱动电磁阀给水箱上水当 水箱中水高于“上”检测点时,该点的干簧管被磁化,P1.7 口被拉低,此时系统控制电磁阀关闭,停止上水水位检测的部分是通过读取与水箱 4 个检测点连接的引脚电平来实现的水位传感器的设计原理是当水位高于检测点时,使对应的引脚由

59、高电平变成低电平,程序通过电平的变化即可判断此时水箱中位的高低水位控制和水位检测部分流程图如图 4-4、4-5 所示开始扫描按键P2.2为低电平?即上水按键是否按下P1.1给低电平执行上水操作P1.7为低电平?判断水位是否高于“上”P1.1给低电平执行停止上水操作返回YYP1.1给低电平执行上水操作NP2.1为低电平?即停止上水按键是否按下P1.1给低电平执行停止上水操作YNN图 4-4 水位控制部分流程图 25 / 46开始检测P1.4 P1.5 P1.6 P1.7引脚电平P1.4为“0”?水位低于“下”NP1.5为“0”?P1.6为“0”?YY水位在“下”与“中下”之间水位在“中下”与“中

60、上”之间NNP1.7为“0”?水位在“中上”与“上”之间NY水位高于“上”调用显示子程序显示水位信息返回图 4-5 水位检测部分流程图4.4 液晶显示部分流程图液晶显示部分流程图本设计选用的 1602 液晶显示器采用并行方式与单片机连接实现通信的在对液晶模块读写操作时,其操作顺序首先对显示器进行判忙,然后依次对读写使能端(RS) 、数据 /命令操作选择端(R/W) 、读写操作端(EN)共三个引脚进行配置,最后将要显示的容经由 P0 口的 8 个引脚传送到显示器中,继而显示在液晶面板上本设计中液晶上行显示当前温度,下行显示当前的水位信息“HIGH”,“MID HIGH” , “MID LOW”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论