《智能家用太阳能热水器控制器.doc》由会员分享,可在线阅读,更多相关《智能家用太阳能热水器控制器.doc(28页珍藏版)》请在三一办公上搜索。
1、题目:智能家用太阳能热水器控制器院 系:数字设计工程系专 业:应用电子技术年 级:2009级学 号:0923003002 0923003011作者姓名:陈柳东 完成日期:2012-02-13目录1、前言11.1 本设计的目的和意义11.2 控制系统设计要求11.3 本设计实现思路及方法12、总体方案设计12.1 方案一32.1.1 系统的组成及原理32.1.2 系统框图32.2 方案二32.2.1 系统组成及工作原理32.2.2 系统框图42.3 方案选择53、单元模块设计53.1 单片机概述53.2 水位检测模块63.3 温度检测模块73.4 键盘模块83.5 显示模块83.6 器件介绍93
2、.6.1 AT89C51单片机93.6.2数码管显示94、软件设计114.1 主程序流程图114.2 温控进水程序124.3 温度显示子程序134.4 键盘处理程序145、系统调试与原理图156、总结与体会16附录A 电路原理图18附录B 源程序19智能家用太阳能热水器控制器摘 要:针对目前家用太阳能热水器功能单一、操作复杂、控制不方便等特点,本文提出了一种新型的太阳能热水器控制系统设计方案。根据太阳能热水器对控制系统的要求以AT89C51 单片机为检测控制核心,设计了一种太阳能热水器智能控制器. 该控制器具有时间、温度、水位设定与控制功能,及良好的抗干扰性能.关键词:太阳能热水器、传感器、实
3、时时钟、单片机 Intelligent household solar water heater of the ControllerChenliudong WenchuanjianChaoShan Vocational And Technical College ,No.1 University Road, Puning City, Guangdong Province. 515300Abstract: In view of at present home use solar-powered water heater function sole, the operation complex,
4、the control not convenient and so on the characteristics, this article proposed one kind of new solar-powered water heater control system design proposal.According to the solar-powered water heater to the control system request take at89C51 monolithic integrated circuit as the examination control co
5、re, has designed one kind of solar-powered water heater intelligence controller. This controller has the time, the temperature, the water level hypothesis and the control function, and good resistance to interference.Keywords: Solar Water Heater、Sensor、Real clock、Single Chip Microcomputer(SCM)1、前言1.
6、1 本设计的目的和意义本设计具有很强的实用性,用成本低廉的电阻式传感器以及电极配以单片机技术对生产实际中的太阳能热水器的水温的控制以及水位的显示。本装置电路简单、实用性强、性价比高、水温控制灵活,水位显示直观醒目,可广泛应用于家庭生活对太阳能热水器的水位显示与水温控制,具有良好的市场前景。1.2 控制系统设计要求1、能够根据水位和水温两个条件控制是否需要进水,每次只进整个水箱的四分之一水量,也可以在手动状态下自由进水(上满时自动停止)或停止进水。2、控制系统具有手动和自动切换功能;3、具有水温和水位显示功能;4、具有进水超水位和超水温报警指示;5、用水时若水温达不到设置值时,可手动起动加热装置
7、,这样可在很大程度上节约电能;6、用水时可自由调节水温;7、控制系统具有管道排空功能,这样防止冬天时因水管内有积水而在夜间冻裂水管。1.3 本设计实现思路及方法水位由潜入储水容器不同深度的水位电极和潜入容器底部的公共电极(导线)检测;并由四个绿色LED发光二极管显示:若无水则绿灯不亮;若有四分之一储水箱的水亮一盏绿灯;通过观察绿灯点亮的数量可识别水位的高低,这里取4段显示,也可根据需要进行增减。水温由四个LED数码管显示,前三个数码管显示的为温度最后一个数码管我们只用到了四段码显示为温度的符号C,水温有效值最多可显示为99.9。2、总体方案设计如图2-1所示,本系统主要由控制器、自动控制阀、手
8、动控制阀、水位检测电极、水温检测传感器、电阻加热丝、储水箱等组成。控制器:主要通过里面的电磁阀控制YV1和YV2的通断,控制水温检测传感器检测水温、控制水位检测传感器检测水在水箱中的位置以及控制电阻加热丝加热。自动控制阀:主要通过控制器控制,当水箱中的水的实际温度大于所设置的温度时,自动阀就自动打开往水箱中上水,直到上到上一个目标水位为止。图1 系统组成示意图手动控制阀:当自动阀损坏时,可以通过手动阀进行上下水。水位检测电极:主要用来检测水箱中水的位置,主要把水箱分成四等分,一共有五个电极,接地的电极放在最水箱的最底下,其余分别放在四等分点上,比如当水箱中的水在第一等分和第二等分之间,则显示水
9、箱中有四分之一的水,当超过第二等分,则显示二分之一的水。水温检测传感器:主要用来检测水箱中水的实际温度。电阻加热丝:主要用来加热水箱中水,使其达到用户所需要的温度。本控制系统分为手动和自动两种控制方式,在系统处于自动状态下,当检测温度高于设置温度,且水位未达到最高时,控制器打开电磁水阀YV1和YV2进行上水,同时点亮上水指示灯,当水位上至上一目标水位时,自动停止上水(即关闭电磁水阀YV1和YV2),若水箱内无水,则自动上水至最低水位处。在系统处于手自动状态下,可自由上水或停止上水(上水时水箱水位必须未满),若水位达到最高则自动停止上水;若需要启动加热器则必须先设定加热温度,然后按下加热键进行加
10、热;若需洗浴时,则需打开手动阀YV4,系统自动打开电磁水阀YV2,可通过YV5自由调节水温;当电磁水阀YV1和YV2损坏或停电时,可通过打开YV5和YV6进行上下水解决燃眉之急;此系统设置YV3是为了防止冬天气温过低引起水管因内有积水而冻裂(即手动打开此阀放完水管中的积水)。2.1 方案一2.1.1 系统的组成及原理(1)智能控制系统采用MCS-5l单片机为中心控制单元。由于系统运算量不是大,没有太多的中间数据需要处理、保存,使用AT89C51已完全能够满足要求。系统的硬件电路包括:控制器实时时钟接口电路、蓄水箱温度和水位检测接口电路、设定键和串行显示接口电路、看门狗和复位电路等(2)特点:利
11、用单片机实时监测水温及水位。用水时,若日晒水温达不到设定值,单片机控制电加热器自动补温至设定温度间;缺水时能自动上水到设定值。采用外扩EEPROM对设置的参数具有断电保留功能,断电后,参数无须重新设置。该系统具有使用方便、稳定性高。节能等特点,实用性高。2.1.2系统框图AT89C51显示器A/D转换看门狗继电器电磁阀加热控制控制上水时钟控制水量设定温度设定报警装置 温度水量检测图2 热水器微控系统框图2.2方案二2.2.1 系统组成及工作原理本系统由温度传感器及调理电路、水位传感器及调理电路、AD转换电路、液晶显示电路(显示水温和水位)、FPGA控制模块、按键输入和继电器执行部件组成,其中F
12、PGA控制模块是本系统的核心。系统结构如图2.2.2所示。(1)液位传感器采用ATSl73型霍尔元件121,若干霍尔元件固定在一个垂直导槽上,浮子带动磁钢沿导槽运动,霍尔元件的输出经电阻网络转换成不同电压,经ADC送入智能控制模块中。温度传感器采用负温度(NTC)型通用热敏电阻,信号经一路ADC送入智能控制部分。(2)FPGA控制部分根据检测到的水位信号、温度信号以及用户的设定或操作,通过必要的逻辑运算,以确定当前应该进行的操作,并通过输出口送至执行部件,进而控制进水阀、加热泵的状态,以实现所要求的控制功能。在顶层设计中加入了定时器模块和液位、水温信号共同完成控制功能,实现分时段控制,进而实现
13、在自动补水的同时不影响使用热水,在自动开启电加热器补温的同时不造成能源浪费,从而解决了定时补水、加热的问题。2.2.2 系统框图FPGALCD报警电路储水箱温度传感器及其调理电路液位传感器及其调理电路A/D继电器执行部件键盘图3 系统结构示意图2.3方案选择 通过比较以上两个方案可知,都能实现太阳能热水器所要求的各种功能 :水温测量电路、水位测量电路、显示电路、自动加热上水控制电路等部分,实现对水温和水位的实时监测和显示,实现自动加热和上水的控制,但由于采用单片来实现更加灵活,简便。应用更加广泛,从性价比方面来说,方案一更具实用性,故此次设计选择方案一。3、单元模块设计3.1 单片机概述 图4
14、 时钟电路与复位电路图3.1中,晶体振荡器的频率选6MHZ,复位电路采用上电复位,电路参数如图中所示,以满足系统复位时两个机器周期的高电平的要求。由于CPU的内部已含有程序存储器,所以EA引脚接高电平。该水位自动显示控制器采用AT89C51单片机,机内有一高增益反相放大器,构成自激振荡电路,振荡频率取6MHz,外接6MHz晶振,两个电容C1、C2取20pF,以便于起振荡的作用。右图中XTAL1为内部时钟工作电路的输入,XTAL2为来自反向振荡器的输出。该水位自动显示控制器采用上电复位电路,由R14、C3构成复位电路,在上电瞬间,产生一个脉冲,AT89C51将复位。为保证可靠复位,脉冲宽度应大于
15、两个机器周期,这取决于R、C时间长数。取电容C=10uF,电阻R=10K。 3.2水位检测模块实验证明,纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的Mg2+、Ca2+等离子,它们的存在使水导电。本控制装置就是利用水的导电性来完成的。我们把储水箱大致分为四个等份,水位由潜入太阳能热水器的储水箱不同深度的水位电极和潜入储水箱底部的公共电极(导线)进行检测;由单片机依次使各水位电极呈现高电平,由公共电极所接的三极管进行电 位转换,水位到达的电极,转换电位为低(0);水位没有到达的电极,转换电位为高(1);每检测一位便得到一位数据,5个电极检测一遍以后便得到了5个串行数据,然
16、后把这5个数据转化为字节一路送发光二极管;在这里我们可以用发光二极管亮的盏数来显示水位的高低。(若没有发光二极管亮则表示箱内没有水或者只有少量的水,若有一个发光二极管灯亮则表示箱内有四分之一箱的水,以此类推,若有四个发光二极管亮,则表示水箱水是满的。)图5 水位检测电路3.3温度检测模块本设计温度传感器选用AD590。AD590属于半导体集成电路温度传感器,测温范围-55- +150,在其二端加上一定的工作电压,其输出电流与温度变化成线性关系,1uA/K,误差有几种等级:1、0.5、0.3,本设计中选取0.5品种。OP07为高精度运算放大器,AD590电流流经R1、RP1转换为电压信号,R2、
17、RP2为运算负反馈电阻,成反相比例放大器,将温度信号转换成0-5V的电压信号,ADC0832再将其转换为数字信号,输入CPU。图3.5为温度检测和A/D转换电路图。图6 温度检测电路 3.4键盘模块P1.0- P1.7口作为按键的信号输入端,键按下,就执行该键的功能。其电路如图3.4所示。(为了编程简单、方便,采用独立式键盘电路)图7 键盘电路3.5显示模块本设计采用共阳型数码管,8个LED灯如图3.9中接法,灯的负极依次接到数码管的a-f段,采用动态扫描电路,并把显示程序作为主程序。数码管的段用P0口控制,P2.0口、P2.3口作为数码管的位控制,P2.4作为指示灯的控制。 图8 显示电路3
18、.6 器件介绍3.6.1 AT89C51单片机图9 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存储单元,另一个256B
19、ytesRAM区与ATMEL之AT89系列8052兼容的单片机是一致的,AT89C51结合通用的8位微处理器和Flash存储技术构成功能强大单片微处理器,可提供许多高性能低价位的系统控制应用场合。AT89C51主要特点:40个引脚,32kBytes的程序存储器,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,内置时钟振荡器,其Flash存储器,可反复擦写1000次的Flash存储器可有效地降低开发成本。软件设置电 源省电模式,睡眠其间,定时/计数器,串行口和中断口均停止工作,RAM中的数据被“冻结”,直到下次被中断激活或硬件复位方
20、可恢复工作。3.6.2数码管显示由单片机的定时器To做16位计数器(为便于数据处理,这里只用低8位计数值,即寄存器TL0中的值)。一边记录脉冲数量,一边以厘米为单位由四位数码管显示出来。四位数码管采用动态扫描方式显示。长度计量仪采用0.5英寸共阳极连接的LED数码管。LED数码管由发光二极管作为显示字段的数码型显示器件。下图为LED图数码管外形和引脚图,其中7只发光二极管分别对应a-g笔段,构成“日”字形,另一只发光二极管DP作为小数点,因此这种LED显示器称为八段数码管。共阳极型LED数码管,是将各段发光二极管的阳极连在一起,作为公共端com,应接高电平。ag、Dp各笔段中,某笔段接低电平时
21、发光,高电平时不发光。为了节省单片机I/O口的数量,将各位数码管的ag对应笔画并联起来分别与单片机的P2.0P2.7引脚连接。显示时,由P2口依次输出各位数字的笔段码,并依次由P1.0、P1.1、P1.2、P1.3输出低电平位选信号接通数码管的公共端,轮流进行,循环不止,由于循环的频率较高(约50Hz),加上人眼的视觉暂留,既保障了各位数字的对应显示,又不会出现闪烁现象,实现动态扫描显示。图10 LED数码管4、软件设计4.1 主程序流程图开中断调水位控制子程序开始初始化调温度控制子程序调键盘控制子程序判定水位?显示温度温度设定启动辅助加热延时关闭加热Y图11 主程序流程图4.2温控进水程序水
22、位控制子程序测量值设置值是否在上水?是否最高?赋目标水位值打开上水阀水位是否为目标值?关闭上水阀返回NNN赋实际水位值图12 水温控制图4.3 温度显示子程序水温显示取十位值DPTR#TAB查表的字段码判断是否闪烁?字段码P0使十位LED有效延时1ms使十位LED无效取个位值使温度字母C的LED无效返回DPTR#TAB图13 温度显示流程图4.4 键盘处理程序NYNY有键闭合?KEY延时去抖动有键闭合?是何键?转相应键处理程序返回KEYYY图14 键处理流程图5、系统调试与原理图本次设计主要在系统软件调试方面。困难主要出现在软件的编写。虽然没有错误,但是进行仿真时,不能达到预期的效果。经过多次
23、调试,程序也修改过好几次,仍然走不通。而问题也主要集中在扫描显示这一模块。最后通过在网上查找资料及在单片机论坛上与其它高手的交流,结合设计思想,进行了修改、调试,也终于达到了方案的总体要求。对软件方面逐步进行分析之后,重新进行系统的软件上的仿真。图15 控制系统原理图6、总结与体会本控制装置充分应用AT89C51单片机的软硬件资源,该系统具有智能化、结构紧凑、性能稳定等优点,通过对这次基于单片机的太阳能温控进水及水温水位显示控制装置的设计,我将在大学里所学的专业知识在这次毕业设计中的到了广泛的运用,加深了理论与实际的联系。提高了思维与动手能力,增长了才干;培养了自己的创新意识,使自己在单片机应
24、用方面得到了全面提高,为今后的工程实际应用,新产品开发奠定了基础。通过这次毕业设计,自己进一步熟悉和掌握了PROTEL仿真软件和Keil编程软件,体会到PROTEL、Keil等功能强大的设计软件,在现代电子系统设计中发挥的强大的作用。总之,此次毕业设计经过自己独立思考、查找资料,自己受益匪浅。而且,通过这次设计,更深切地感觉到团队合作的重要性。是和组员的共同努力,才完成了此次智能家用太阳能热水器控制器毕业设计任务!总之,以往的课程设计都是停留在理论层面上,而这次毕业设计的实际意义非常明显。经过这次毕业设计,自己从心理上就成长了不少,这将是自己以后人生路上一笔宝贵的财富。参考文献1 张迎新.单片
25、机原理及应用M/北京:电子工业出版社,2009.2 郝波.电子技术基础模拟电子技术M/西安:电子科技大学出版社,2008.3 郝波.电子技术基础数字电子技术M/西安:电子科技大学出版社,2009.4 白乃平.电工基础M/西安:电子科技大学出版社,2008.5 田华.电子测量技术M/西安:电子科技大学出版社,2009.6 吴小花. 电子技能训练与EDA技术应用M/广州:华南理工大学出版社,2009.7 大学生电子实验室EB/OL 8 PROTEUS仿真论坛EB/OL 附录:附录A 电路原理图附录B 源程序主程序:ORG 0000H LJMP MAINORG 000BHLJMP CT0;转定时器0
26、中断服务程序ORG 0030H;主程序MAIN: MOV 30H,#00H;0.1秒单元MOV 20H,#00000100B;置相应标志位MOV P2,#0FFH;P2口不显示,电磁阀不通电,不加热MOV SP,#5FH;设置堆栈深度SETB EA;开中断SETB ET0;允许T0中断MOV TMOD,#01010001B;T0方式1定时,T1工作于方式1计数MOV TH0,#3CH;定时常数MOV TL0,#0B7HMOV TH1,#00H;清计数单元MOV TL1,#00HSETB TR0;启动定时定时器0SETB TR1;启动T1MOV 28H,#60;设置初始温度为60度MOV 40H
27、,#0FFH;转显示状态为全灭MOV 36H,#0;清温度存放单元MOV 37H,#0MOV 2FH,#1;目标水位为1LOOP: LCALL WATER;水位检测LCALL DISP;显示程序LCALL KEY;键盘处理程序SJMP LOOP中断子程序:CT0: MOV TH0,#3CH;重置时间初值MOV TL0,#0B0HPUSH ACC;保护现场PUSH PSWSETB RS0;选工作寄存器1组MOV R1,#30H;指向0.1秒单元INC R1CJNE R1,#10,RET_TIMEMOV R1,#00HCPL 00HLCALL TEST_TEMP;调温度处理程序RET_TIME:P
28、OP PSW;恢复现场POP ACCRETI;中断返回温度检测程序:TEST_TEMP:;温度处理程序,将温度存放在27H单元,设置的温度存放于28H单元 JB 01H,RE_AD;若为设置状态,则不进处理MOV SCON,#00H ;置串口方式0,禁止接收CLR ES ;串口禁中CLR P3.6 ;片选0832MOV A,#06H ;置CH0通道配置ADC0: MOV SBUF,A ;启动A/DADC1: JNB TI,ADC1 ;串行发送启动及通道配置信号CLR TI ;清发送中断标志SETB REN ;允许(启动)串行接收ADC2: JNB RI,ADC2 ;接收第一字节CLR RI ;
29、清接收中断标志,同时启动接收第二字节MOV A,SBUF ;读第一字节数据MOV B,A ;暂存ADC3: JNB RI,ADC3 ;接收第二字节CLR RI ;清接收中断标志MOV A,SBUF ;读第二字节数据ANL A,#0FH ;第二字节屏蔽高4位ANL B,#0F0H ;第一字节屏蔽低4位ORL A,B ;组合SWAP A ;高低4位互换,组成正确的A/D数据MOV 36H,A ;存A/D数据CLR REN ;两通道A/D完毕,禁止接收SETB P3.6 ;清0832片选RET水温控制上水程序:MOV 27H,36H MOV 42H,#00H JNC N05 MOV 42H,#05H
30、;显示小数0.5N05: JNB ACC.7,OK MOV A,#0OK: CJNE A,#64H,EADEAD: JNC ERRAD;温度超过100则显示99EAD1: MOV B,#10;转换成十进制数,送显示单元 DIV AB MOV 44H,A MOV 43H,B MOV 41H,#0CH;最后一位显示C CLR 05H JNB 02H,RE_AD MOV A,27H CJNE A,28H,EADDEADD: JC BSH;未到设定温度,不上水 MOV A,2EH CJNE A,#04H,SWSW: JNC RE_AD JB 03H,RE_AD MOV 2FH,2EH;未到设定温度,上
31、至高一档水位 INC 2FH;目标水位 CLR P2.6 CLR P2.7 SETB 03HRE_AD: RETERRAD: MOV A,#63H;温度超过100则显示99 SJMP EAD1BSH: SETB P2.6; SETB P2.7 CLR 03 SJMP RE_AD温度显示子程序:DISP: MOV R0,#44H;显示温度及状态信息MOV DPTR,#TABDISP1:MOV A,R0MOVC A,A+DPTRJNB 01H,NDOT1JNB 00H,NDOT1MOV R5,45HCJNE R5,#44H,NDOT1MOV A,#0FFHNDOT1:MOV P0,ACLR P2.
32、0LCALL D1MSSETB P2.0DECR0MOV A,R0MOVC A,A+DPTRJB 05H,NDOT22CLR ACC.7NDOT22:JNB 01H,NDOT2JNB 00H,NDOT2MOV R5,45HCJNE R5,#43H,NDOT2 MOV A,#0FFHNDOT2:MOV P0,ACLR P2.1 LCALL D1MSSETB P2.1DEC R0MOV A,R0MOVC A,A+DPTRJNB 01H,NDOT3JNB 00H,NDOT3MOV R5,45HCJNE R5,#42H,NDOT3MOV A,#0FFHD1MS: MOV R7,#25 DJNZ R7,
33、$ RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0FFH,0afH,0C6H,00h,86HEND键盘处理程序:KEY:ORL P1,#0FFH;键处理程序 MOV A,P1CPL AJZ RET_KEY;无键返回JNLCALL DISP;有键,延时去抖动ORL P1,#0FFHMOV A,P1CPL AJZ RET_KEY;无键返回ORL P1,#0FFH;有键,延时去抖动MOV A,P1JNB ACC.0,S1JNB ACC.1,S2JNB ACC.2,S3JNB ACC.3,S4JNB ACC.4,S5JNB ACC.5,S6JNB ACC.6,S7JNB ACC.7,S8RET_KEY:RETS1: CPL 01H; 置预置标志JNB 01H,SAVE_TEM;01H=0,存储当前预置的温度MOV 45H,#44H; 01H=1,为预置状态,当前预置对象存放于45H单元S11: LCALL DISP ORL P1,#0FFH;等待按键释放 MOV A,P1 CPL A JNZ S11; 未释放,继续等待 RETSAVE_TEM:MOV A,44HANL A,#0FHMOV B,#10MUL ABADD A,43HMOV 28H,ASJMP S11