快速热水器控制系统设计.docx
《快速热水器控制系统设计.docx》由会员分享,可在线阅读,更多相关《快速热水器控制系统设计.docx(29页珍藏版)》请在冰豆网上搜索。
快速热水器控制系统设计
湖南文理学院课程设计报告
课程名称:
控制系统课程设计
系部:
电气与信息工程学院
专业班级:
电气自动化06102班
学号:
学生姓名:
xxx
指导教师:
xxx
完成时间:
2010年1月12
报告成绩:
评阅意见:
评阅教师日期
快速热水器控制系统设计
一.设计的作用与目的
快速热水器水温控制在日常生活中应用非常广泛,分类也较多,不同水温控制系统的控制方法也不尽相同,其中以温度检测比较法控制法最为常见。
如日常生活中冬天使用的电热宝,当加热到一定温度时自动停止加热,之后处于保温状态,低于一定温度设定值时再次进行加热。
本设计采用AT89S51单片机为核心,采用软件编程,再通过单片机电压输出控制双向可控硅的导通时间,进而控制电热丝的加热来实现温度控制。
然而,单纯的加热还无法实现设计要求指标,在加热过程中还需要不停的检测热水器加热的温度,以实现必要的时候进行热水器的开启和关闭。
同时可以通过外扩电路,用 DS18B20对外电路进行检测,并将所检测的温度通过显示屏显示出来。
本文首先用单片机来控制双向可控硅的导通时间,进而控制电热丝的加热来实现对热水器的快速控制。
设计了一套实用的温度测控装置实现对热水器的快速控制系统,使其在不同环境下均可以达到技术指标。
此外还外加显示电路,快速且精确的实现啦对热水器的控制。
快速热水器控制的核心是温度控制。
温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,随着生活水平的提高,基本家家户户都用上了清洁的热水器,取代污染严重的煤炭资源烧水方式。
在环保及安全上,热水器烧水远远优于煤炭烧水。
因此快速热水器的设计具有很大的实用价值。
热水器的快速反应性指标是衡量一个热水器性能的重要因素,并且精确性及安全性也是两个重要的指标。
此外,性能良好的热水器的还有利于节省水资源,提高资源利用率。
二.设计要求
1.基本要求
(1)温度的检测采用热电偶。
热电偶和变送器的选择与被控温度的范围和精度等级有关。
变送器由毫伏变送器和电流/电压变送器组成:
毫伏变送器用于把热电偶输出的毫伏级电压转换成毫安级电流;电流/电压变送器用于把毫伏变送器输出的毫安级电流变换成0~5V的电压。
(2)单片机对温度的控制通过双向可控硅实现。
双向可控硅与加热丝串接在交流220V,50Hz市电回路里。
在给定的周期内,单片机只要改变可控硅的接通时间即可改变加热丝的功率,达到温度条件的目的。
2.主要性能指标
(1)变送器为毫伏变送器,将毫伏级电压转变为毫安级电流。
(2)改变可控硅的接通时间就可以改变加热丝的功率。
(3)单片机对温度的控制通过双向可控硅实现。
3.扩展功能
(1)采用DS18B20实现对温度的采集,并与设定值不断比较。
(2)外加显示模块,将温度值传送至12864进行显示。
(3)当温度达到设定值,立即停止加热,处于保温状态。
三.所用硬软件简介
1.部分硬件简要介绍
(1)所用单片机为AT89S51型单片机,AT89S51是一个低功耗,高性能CMOS8位单片机,片内含40个引脚,128bytes的随机存取数据存储器,32个外部双向输入/输出口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片内时钟振荡器。
(2)DS18B20温度传感器为独特的一线结构,数据总线提供的电压为3至5V,可编程的分辨率在9至12位。
内部结构主要由四部分组成:
64位光刻ROM,温度传感器,温度报警触发器TH和TL配置寄存器。
(3)4×4键盘模块是一种常用的键盘模块,基本工作原理为扫描行线和列线,确定按键的位置,然后执行相应的动作,4×4键盘一定程度上节省了I/O口线。
(4)加热丝烧水的基本原理是加热丝两端有电压降,压降越大,功率越大,由电能转化为的热能也就越多,热水器水温升高的越快。
当两端的压降为零时,停止加热。
(5)双向可控硅是在普通晶闸管的基础上发展而来的,不仅能代替两只反极性并联的晶闸管,而且仅需一个触发电路即可。
应用领域非常广泛,常用于工业、交通、家用电器等领域。
(6)指示灯以及蜂鸣器模块为了起到安全作用,以及醒目的标志。
指示灯表明热水器的工作状态是处在加热状态,还是停止加热状态。
蜂鸣器为了警示热水加热到了一定的程度,再继续加热可能出现危险状况。
2.软件简要介绍
(1)Protel99软件ProtelTechnology公司系列软件,它是一个基于Windows平台的32位电路设计自动化系统,具有丰富多彩、功能强大的编辑功能;迅速便捷的自动化设计能力;完善有效的检测工具;灵活有序的设计管理手段;庞大的原理图元件库、PCB元件库和卓越的在线编辑元件功能;良好的开放性等等诸多特色。
下面为Protel99SE的部分最新功能1、强大的全局编辑功能2、满足国际化设计要求3、智能封装导航4、放置汉字功能5、方便易用的数模混合仿真6、可生成30多种格式的电气连接网络表7、专家导航帮您解决信号完整性问题8、提供大量的工业化标准电路板做为设计模版9、智能覆铜功能,覆铀可以自动重铺10、强大的“规则驱动”设计环境,符合在线的和批处理的设计规则检查11、同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉查找元器件、引脚、网络等等。
此外Protel99是应用最广泛的PCB设计软件,使用简单、易于学习、功能强大。
最新版本的Protel软件可以毫无障碍地读知名EDA公司设计文件,以便用户顺利过渡到新的EDA平台。
Protel99SE包括原理图设计、PCB设计、自动布线器、原理图混合信号仿真、PLD设计。
(2)ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
④具有强大的原理图绘制功能。
特点为:
支持ARM7,PIC,AVR,HC11以及8051系列的微处理器CPU模型,同时该软件还含有14种虚拟仪器。
四.系统设计
1.系统设计结构框图
2.方案论证
(1)快速热水器控制系统一般采用两种模式,一种模式是以PID为核心算法,单片机进行控制的温度控制模型,该模型使用相对较为广泛,是以单片机控制为核心,采用软件编程,用PID算法实现PWM波的产生,进而控制电热丝加热,以此进行热水器温度的调节。
优点为,操作过程比较简单,成本比较廉价。
但是单纯的PID算法很难适应不同的环境,使用范围不够广,在不同的环境中必须要设置参考温度,否则系统的稳定性会变的相对较差,要调整稳定性,需要重新改变PID算法,其过程相对比较繁琐,因此对热水器的设计不适用该设计方法,改用另外的一种模式。
(2)第二种模式为:
以单片机为核心,控制双向可控硅的导通时间,运用模糊控制算法,实现快速对以双向可控硅为核心的热水器的开启和关闭,用红色指示灯显示开启和关闭状态。
这种方案不仅设计上很合理,而且快速性非常好,此外在对环境的适应能力强,可在多种环境中长时间使用,使用寿命也比较长。
日常生活中使用非常广泛,因此对快速热水器的设计方案选择此方案。
3.各模块电路简介
(1)加热丝模块:
加热丝模块是该系统的重要模块,其作用在于将电能转化为热能,实现对水温的加热,利用单片机控制双向可控硅的导通时间,可以快速实现对加热丝的控制,若双向可控硅导通时间越长,电能转化为热能越多,水温当然也就越高。
不导通时,加热丝两端的压降为零,加热丝停止工作,这就是加热丝的工作原理。
(2)按键模块
按键模块主要是实现对温度初始值的设定,并且通过按键实现对12864显示模块的控制。
其中本设计中还可以通过按键实现对可控硅模块导通时间的控制,从而也可以控制加热丝的工作时间。
途中74LS21为下拉电阻,以防止产生过大电流,影响单片机的使用寿命。
(3)单片机模块:
AT89S51型单片机模块是整个系统中最核心的模块,相当于电脑的CPU,在整个系统中起到总控制的作用。
最关键在于对单片机的编程,用程序控制,方便且高效。
通过程序控制,再进行循环检测,当达到单片机内部设定的水温参考值时,将自动执行相关的操作,如进行导通时间的设置,由此来控制加热丝的工作状态,实现循环检测控制,工作效率非常高。
(4)蜂鸣器报警及指示灯模块:
该过程主要是在实现检测后,通过LED灯的显示状态,醒目的知道热水器正处在哪个状态,便于人为识别热水器的工作状态,指示灯的显示在整个过程中是非常重要的一环,因为指示灯的存在,人们在日常生活中使用热水器由此非常方便。
(5).双向可控硅
可控硅是一种非常实用的电子元件,相当于日常生活中的开关一样,相当于工作原理为可控硅一般是由两晶闸管反向连接而成.它的功用不仅是整流,还可以用作无触点开关以快速接通或切断电路,实现将直流电变成交流电的逆变,将一种频率的交流电变成另一种频率的交流电等等。
可控硅和其它半导体器件一样,其有体积小、效率高、稳定性好、工作可靠等优点。
它的出现,使半导体技术从弱电领域进入了强电领域,成为工业、农业、交通运输、军事科研以至商业、民用电器等方面争相采用的元件,在日常生活中叶因此实用非常广泛。
(6)DS18B20测温模块
DS18B20为数字式温度传感器,对热水器水温进行测量。
并将测得的温度输入单片机,通过单片机数据处理,然后通过接口输入到12864液晶模块进行显示所测得的温度。
(7)12864显示模块
用12864进行显示可以清楚的显示当前的温度,大大提高其方便性。
12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。
可完成图形显示,也可以显示8×4个(16×16点阵)汉字,也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
4.部分模块流程图分析
(1)测温模块流程图:
测温流程图简要分析:
该框图进行的流程是通过检测装置,检测热水器的温度然后根据DS18B20的测温原理,将检测到的温度数据存储在单片机相应的数据存储单元。
之后通过单片机传送至12864的液晶模块进行显示。
实现对温度的实时测量,提高装置的性能。
(2)LED及蜂鸣器模块流程图
该流程图为LED显示及蜂鸣器模块,主要感官判断热水器所处的状态。
通过LED灯是亮还是灭,可以知道热水器是在工作还是没有工作。
另外通过判断蜂鸣器的工作状态,可以判断热水器的水温程度,具有非常重要的显示意义,同时还可以提高热水器控制系统的安全性能。
五.系统调试与仿真
1.仿真部分
课程设计中仿真部分是一个非常重要的环节,一般做的课程设计很难有现成的实物进行操作,但在电子设计软件里一般包含虚拟元件,可以进行仿真,同时也可以检验了方案是否可行。
一个完整且正确的仿真模块,不仅仅验证了方案的可行性,还有利于提高自己的设计能力。
由此可知仿真是课程设计中一个很重要的部分。
2.调试过程及简要分析
在课程设计中,调试部分是课程设计中一个很重要的组成部分,与仿真息息相关,仿真的好坏,直接关系到课程设计的成败。
本设计中,调试过程比较复杂,采用汇编程序实现,还设计到对DS18B20温度传感器的编程以及显示模块12864的编程。
编程及调试过程中,对注重化繁为简,尽量多写注释,便于查找错误,比如说温度传感器运用单线通信,不能进行位操作,必须运用串口通信实现对温度数据的采集。
另外12864液晶的显示还分为动态和静态,通过改变扫描时间进行控制。
仿真图1.
简要分析:
图一显示的为设置温度为66.6摄氏度,当前实际温度为31.4摄氏度,正处在加热状态,指示灯也显示在啦加热的红灯状态,全部数据在12864上面都可以清楚看到。
开关可以控制加热丝的加热状态,方便快速且高效。
仿真图2.
图2所示为改变参数后的仿真模块,设置温度高于实际温度,装置依然处于加热状态,并且指示灯为红色,表明显示为加热状态。
12864屏上显示的为设置温度为76.6摄氏度,实际温度为50.4摄氏度,状态为加热状态。
六.总结与建议
此次设计快速热水器控制系统设计过程中遇到的问题及其解决方法
在实现温度—电压转换电路过程中,出现当温度为90度时,电压输出为1.5V却无论如何也不能调到5V的状况,后经检验发现是由于仿真原理图中上拉电阻太小,我们排阻500欧姆改为2K,此时可以实现调到电压0至5V的调节。
对该设计的建议
本次《基于单片机的水温控制系统设计》是以AT89C51为核心,采用软件编程,实现用单片机来控制双向可控硅的导通时间,进而控制加热丝的加热来实现温度控制,同时也可以通过键盘输入控制各种加热状态,并用12864液晶屏进行显示。
在系统的软硬件调试过程中,不断地有问题出现,如液晶屏12864的编程,对汉字的选择必须要通过专门的软件生成汇编代码,导入才可以显示出汉字。
以前对12864不是很熟悉,通过一段时间的学习。
基本弄懂啦12864的基本原理,会读懂程序,并修改程序。
最后根据要求编出自己需要的程序,同时也把以前忘记的东西重新温习啦一边,对以后找工作会有很大的帮助。
在编程时,同学帮助下,通过电路检查、原理分析、程序修改等工作,遇到的问题这些问题都一一得到了解决,并且在这次调试过程中,我们学到了很多知识,同时也大大地拓展了知识面,了解了很多元件的工作原理。
如热电偶以及双向可控硅等实用元件,这对我们以后的毕业设计会有很大的帮助。
同时,该系统还存在着一些问题,如温度显示精度不是很高,仅采用了一位小数部分;部分元件的参数的选择也不是非常精确,这影响热水器水的快速性,但总的来说,基本达到了设计要求。
七.参考文献
[1] 《8051单片机实践与应用》 吴金 清华大学出版社 2002.9
[2]《全国大学生电子设计竞赛获奖作品精选》 北京理工大学出版社 2003.3
[3]《全国大学生电子设计竞赛获奖作品汇编》 北京理工大学出版社 2004.8
[4]《单片微型机原理、应用与实验》 张友德 复旦大学出版社 2003.6
[5]《电子系统设计》 何小艇 浙江大学出版社 2004.6
[6]《电路原理图与电路板设计教程Protel 99SE》 石宗义 北京希望电子出版社 2002.6
附录A硬件设计电路图
附录B源程序
****************************资源分配**************************
FLAG1EQU54H;是否检测到DS18B20标志位
FLAG2EQU00H
COUNTEQU63H
CSAEQUP0.4
CSBEQUP0.3
RSEQUP0.2
RWEQUP0.1
EEQUP0.0
COMEQU21H;命令字
DATEQU22H;显示数据
columnEQU23H;列
pagefEQU24h;页
cpageEQU25H
ccolumnEQU26H;列(0-15)
CODEEQU27h
column2EQU52H
pagef2equ60h
cpage2EQU61H
ccolumn2EQU62H
column3EQU2eH
pagef3equ2fh
cpage3EQU30H
ccolumn3EQU31H
column4EQU32H
pagef4equ33h
cpage4EQU34H
ccolumn4EQU35H
column5EQU36H
pagef5equ37h
cpage5EQU38H
ccolumn5EQU39H
;*****************************主程序开始******************
ORG0000H
LJMPSTART
ORG0003H
LJMPINT0;外部中断
ORG0030H
START:
MOVSP,#70H
MOVP2,#0F0H
CLRA
CLRF0;清设置键
CLRFLAG2;清确认键
MOVCOUNT,#0;中断次数计数
SETBIT0
SETBEX0
SETBEA
LCALLINT;LCD12864初始化子程序
LCALLCLEAR;LDC12864清屏子程序
LCALLDISPLAY1;显示"温度自动控制系统"
LCALLDISPLAY2;显示"设置温度"
LCALLDISPLAY3;显示预设的温度
LCALLDISPLAY4;显示"实际温度"
LCALLDISPLAY5
LCALLGET_TEMPER;调用读温度子程序
ACALLDISPLAY5;调用显示
M:
LCALLGET_TEMPER
LCALLDELAY1
MM:
LCALLDISPLAY3
MM1:
JBF0,MM4;是否按上"设置"键
JNBF1,M;是否按下"确认"键
MOVA,48H
CJNEA,43H,MM5
MOVA,55H
CJNEA,42H,MM5
MOVA,56H
CJNEA,41H,MM5
LJMPMM8
MM4:
MOVA,COUNT
CJNEA,#1,MM2
LCALLDISPLAY8
LCALLDISPLAY8
LJMPMM
MM2:
CJNEA,#2,MM3
LCALLDISPLAY9
LCALLDISPLAY9
MM3:
CJNEA,#3,MM
LCALLDISPLAY10
LCALLDISPLAY10
LJMPMM
MM5:
JCMM7
LJMPMM6
MM6:
LCALLDISPLAY6
CLRP0.5
SETBP0.6
SETBP0.7
LJMPM
MM7:
LCALLDISPLAY7
SETBP0.5
CLRP0.6
SETBP0.7
LJMPM
MM8:
LCALLDISPLAY11
SETBP0.5
SETBP0.6
CLRP0.7
LJMPM
;***********************外部中断0子程序**************
INT0:
CLREX0
INCCOUNT;中断计数器加1
CPLP3.0
MOVDPTR,#JS
MOVA,P2
MOVP2,#0FH
MOV47H,P2
JNBACC.4,E1
JNBACC.5,E2
JNBACC.6,E3
JNBACC.7,E4
SETBEX0
RETI
E1:
MOV20H,#0
LJMPKEYH
E2:
MOV20H,#4
LJMPKEYH
E3:
MOV20H,#8
LJMPKEYH
E4:
MOV20H,#12
LJMPKEYH
KEYH:
MOVA,47H
JNBACC.0,D0
JNBACC.1,D1
JNBACC.2,D2
JNBACC.3,D3
SETBEX0
RETI
D0:
MOVA,#0
ADDA,20H
MOV59H,A
MOVB,#3
MULAB
JMP@A+DPTR
D1:
MOVA,#1
ADDA,20H
MOV59H,A
MOVB,#3
MULAB
JMP@A+DPTR
D2:
MOVA,#2
ADDA,20H
MOV59H,A
MOVB,#3
MULAB
JMP@A+DPTR
D3:
MOVA,#3
ADDA,20H
MOV59H,A
MOVB,#3
MULAB
JMP@A+DPTR
JS:
LJMPLOOP0
LJMPLOOP1
LJMPLOOP2
LJMPLOOP3
LJMPLOOP4
LJMPLOOP5
LJMPLOOP6
LJMPLOOP7
LJMPLOOP8
LJMPLOOP9
LJMPLOOP10
LJMPLOOP11
LOOP0:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP1:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP2:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP3:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP4:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP5:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP6:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP7:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP8:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP9:
ACALLSHIFT1
MOVP2,#0F0H
SETBEX0
RETI
LOOP10:
SETBF0;按下设置键
MOVCOUNT,#1
MOVP2,#0F0H
SETBEX0
RETI
LOOP11:
;按下"确认"键
CLRF0
SETBF1
MOVCOUNT,#0
MOVP2,#0F0H
SETBEX0
RETI
SHIFT1:
JBF0,LLL
LJMPEXIT
LLL:
MOVA,COUNT
CJNEA,#2,LLL1
MOV48H,59H
LJMPEXIT
LLL1:
CJNEA,#3,LLL2
MOV55H,59H
LJMPEXIT
LLL2:
CJNEA,#4,EXIT
MOV56H,59H
SETBF1
CLRF0
EXIT:
RET
;************