您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于单片机水温控制系统
水温控制系统设计姓名:盛朋克学号:B11041307系别:电气工程与自动化系水温控制系统设计摘要本系统以AT89C51,AT89C2051单片机为核心,主要包括传感器温度采集,A/D模/数转换,按扭操作,单片机控制,数码管数字显示等部分。本系统采用PID算法实现温度控制功能,通过串行通信完成两片单片机信息的交互而实现温度设定、控制和显示。本设计还可以通过串口与上位机(电脑)连接,实现电脑控制。系统设计有体积小、交互性强等优点。为了实现高精度的水温控制,本单片机系统采用PID算法控制和PWM脉宽调制相结合的技术,通过控制双向可控硅改变电炉和电源的接通、断开,从而改变水温加热时间的方法来实现对水温的控制。本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。具有电路结构简单、程序简短、系统可靠性高、操作简便等特点。关键词:单片机,继电器,DS18B20,按键,数码显示,PID,PWM第1章引言在能源日益紧张的今天,电热水器,饮水机,电饭煲之类的家用电器在保温时,由于其简单的温控系统,利用温敏电阻来实现温控,因而会造成很大的能源浪费。但是利用AT89C51单片机为核心,配合温度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。单片机可将温度传感器检测到的水温模拟量转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。1.1水温控制系统概述能源问题已经是当前最热门的话题,离开能源的日子,世界将失去色彩,人们将寸步难行,虽然本设计是节省电能角度出发,而电能又是可再生能源,但是今天还是有很多的电能是依靠火力,核电等不可再生资源产生,一旦这些自然资源耗尽,我们将面临电能资源的巨大缺口,因此本设计从开源节流的角度出发,节省电能,保护环境。1.2本设计任务和主要内容设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。本设计主要内容如下:(1)温度设定范围为40-90℃,最小区分度为1℃,标定温度≤1℃。(2)环境温度降低是温度控制的静态误差≤1℃。(3)用十进制数码管显示水的实际温度。(4)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。(5)温度控制的静态误差≤0.2℃。第2章系统硬件电路设计2.1单片机控制系统原理图2-1单片机控制系统原理框图2.2温度采样电路系统的信号采集电路主要由温度传感器(AD590)、基准电压(7812)及A/D转换电路(ADC0804)三部分组成。如图:2-2。图2-2信号采集电路2.2.1温度传感器的选取目前市场上温度传感器较多,有一下几种:方案一:选用铂电阻温度传感器,此类温度传感器线性度、稳定性等当面都很好,但其成本较高。方案二:采用热敏电阻,选用此类元器件有价格便宜的优点,但由于热敏电阻的非线性特性会影响系统的精度。方案三:选用美国AnalogDevices公司生产的二端集成电流传感器AD590。其测量范围在-50℃--+150℃之间,满刻度范围误差为±0.3℃,当电源电压在5-10V之间,稳定度为1%时,误差只有±0.01℃。此器件具有体积小、质量轻、线性度好、性能稳定等优点其各方面特性都满足此系统的要求。比较以上三种方案,方案三具有明显的优点,因此选用方案三。2.2.2温度传感器AD590测量范围在-50℃--+50℃,满刻度范围误差为±0.3℃,当电源电压在5-10V之间,稳定度为1%时,误差只有±0.01℃。AD590为电流型传感器温度没变化1℃其电流变化1uA在35℃和95℃时输出电流分别为308.2uA和368.2uA。2.2.3电路原理及参数计算温度采样电路的基本原理是采用电流型温度传感器AD590将温度的变化量转化为电流量,再将电流量转化为电压量通过A/D转换器ADC0804将其转换成数值量交由单片机处理。2.2.4ADC0804性能描述ADC0804为8bit的一路A/D转换器,其输入电压范围在0-5V,转换速度小于100us,转换精度0.39%。满足系统的要求。如图2-3A/D转换电路。图2-3温度转换电路2.3温度控制电路此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。MOC3041光电耦合器的耐压值为400V,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。100欧电阻和0.01uF电容组成双向可控硅保护电路。控制部分电路图如图2-4部分控制电路。图2-4部分控制电路2.4主机控制部分此部分是电路的核心部分,系统的控制采用了单片机89C52。单片机内部有8K单元的程序存储器及256字节的数据存储器。因此系统不必扩展外部程序存储器和数据存储器这样大大减少了系统的硬件部分。如图2-5主机控制部分。图2-5主机控制部分2.5键盘及数字显示部分在设计键盘/显示电路时,我们使用单片机2051作为电路控制电路的核心,单片机2051具有一个全双工的串行口,利用此串行口能够方便的实现系统的控制和显示功能。键盘/显示电路如图2-6图2-6键盘/显示部分电路如图2-7中单片机2051的P1口接数码管道的8只引脚,这样易于度数码管的译码,使数码管能显示设计者所需的各数值、小数点、符号等等。单片机2051的P3.3、P3.4、P3.5接3-8译码器74L138,译码器的输出端和键盘,键盘扫描和显示器扫描同用端口这样能大大的减少单片机的I/O,减少硬件的花费。图2-7单片机2051连接图键盘的接法的差别直接影响到硬件和软件的设计,考虑到单片机2051的端口资源有限,所以我们在设计中将传统的4*4的键盘接成8*2的形式(如图2-8),键盘的扫描除了和显示公用的8个端外,另外的两个端直接和2051的P3.2和P3.7相连。图2-8键盘接线如图2-8的接法已经完全用了单片机的15个I/O口,有效的利用了单片机的资源。第3章系统的软件设计3.1系统的主程序设计软件设计流程图如下:图3-1主程序流程图3.2主程序主程序在附录中。3.3键盘和显示程序设计键盘和显示程序流程图如下:图3-2键盘显示程序流程图3.4键盘和显示程序具体程序在附录中。总结首先,通过这次课程设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,熟悉了下载调试等一系列的操作。我设计系统的主要思想符合目前节省能源和国内实际的应用特点和要求,采用计算机控制的形式,实现对水温的自动控制。通过本设计的思考,更加加深了对单片机的认识,熟练了单片机的编程,更对当前的温度传感器有了更深刻的认识和了解,但是由于此系统依赖温度传感器,因而对温度传感器的线性和稳定性等诸多方面有着严格的要求,但是传感器的性能越好,相对而言其价格也就越高,因而在此设计中,温度传感器还是存在遗憾,其次,由于采用了汇编语言,所以其编程过程复杂不易查错。最后,由于时间紧迫,本设计还有诸多地方需要改进。总的来说,收获很大。把书本知识应用到实际中,让我对书本中的理论知识有了更加深刻和立体的认识,同时,让我了解到动手实践的重要性,以后会更加注重理论与实践的结合。参考文献[1]张毅刚、彭喜元、姜守达、乔立岩.新编MCS-51系列单片机应用设计.哈尔滨工业大学出版社,2003.6[2]胡汉才.单片机原理及接口技术.清华大学出版社,1996[3]沈德金,陈粤初.MCS-51系列单片机接口电路与应用程序实例.北京航空航天大学出版社,1990[4]李建民.单片机在温度控制系统中的应用.江汉大学学报,1996.6[5]何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社,1990[6]李志全等.智能仪表设计原理及应用.国防工业出版社,1998.6[7]杨素行,模拟电子技术基础简明教程,高等教育出版社,1985附录汇编程序主程序如下:ORG0000HAJMPSTART;主程序ORG000BHAJMPTIMO;T0中断子程序ORG0023HAJMPRT;串口中断接受子程序ORG0100HSTART:MOV50H,#00H;初始化设定温度MOV51H,#00HMOV52H,#00HMOV53H,#00HMOV54H,#0C6H;发送第五个数码管字形码CMOVTMOD,#01H;T0工作在MODE1MOVTH0,#0ECH;晶振12M,50ms中断一次MOVTL0,#78HSETBTR0MOVTOMD,#20H;T1工作在MODE2MOVTH1,#0E6H;设波特率MOVTL1,#0E6HSTETR1MOVSCON,#50HMOVIE,#92H;允许T0,R1中断MOVR6,#04H;初始要接收的数据个数MOVR1,#50H;初始要接收的其实地址MOVR4,#00HREY:MOVA,53HCJNEA,#00H,YESSJMPREYYES:MOVR3,#00HYES1:CLRP2.0;开始A/D转换CLRP3.6SETBP3.6ACALLDELAYJ1:MOVXA,@R0ACALLSJCL;调用数据处理子程序ACALLDISPDJNZR3,MMACALLFS;调用串口发送子程序AJMPYESMM:AJMPYES1SJCL:MOVB,#60HMULABMOV61H,AMOVA,BADDA,#35ACALLL10MOV60H,R5;存十进制高八位(个位和十位)MOVA,61HMOVB,#9MULABMOV61H,B;存十进制低八位(小数点)RETL10:CLRCMOVR5,#00H;初始化十进制转换的地位寄存器MOVR4,#08H;调整次数NEXT:RLCAMOVR2,AMOVA,R5ADDCA,R5DAAMOVR5,AMOVA,R2DJNZR4,NEXTRETDISP:MOVA,60HANLA,#0F0H;取D2的显示数据存入70HSWAPAMOV70H,AMOVA,60HANLA,#0F0H;取D1的显示数据存入71HMOV71H,AMOV72H,61H;取D0的显示数据存入72HMOVR0,#70H;取相应的字形码分别存入55-57HMOVDPTR,#TABMOVA,@R0MOVCA,@A+DPTRMOV55H,AINCR0MOVA,@R0MOVCA,@A+DPTRMOV56H,AINCR0MOVA,@R0MOVCA,@A+DPTRMOV57H,AMOVA,56HADDA,#80H;在D1字形码上加小数点MOV56H,ARETFS:MOVA,R0PUSHACCMOVTMOD,#20HMOVTH1,#0E6HMOVTL1,#0E6HSETTR1MOVSCON,#50HMOVR0,#54H;设定发送起始地址MOVR7,#04HLOOP:MOVSBUF,@R0JNBT1,$CLRT1INCR0DJNZR7,LOOPPOPACCMOVR0,ARET;串口中断接受子程序RT:PUSHACCPUSHPSWCLRET0CLRESSJ:MOV@R1,SBUFINCR1CJNER4,#03H,MOVESJMPMOVE1MOVE:INCR4CLRRIJNBRI,$MOVE1:DJNZR6,SJMOVR4,#00HMOVR1,#50H;重置接收起始地址MOVR6,#04H;重置接收个数SETBET0SETESPOPPSWPOPACCRETI;T0中断子程序TIM0:PUSHACCPUSHPSWMOVTH0,#0ECH;重设中断时间MOVTL0,#78HCLRCACCALJSMOVA,51HCJNEA,70H,Q1;最高位比SJMPQ2Q1:JCOFFSJMPONQ2:MOVAM,52HCJNEA,71H,Q3Q3:JCOFFON:CLRP1.4CLRP1.2RE:POPPSWPOPACCRETIOFF:SETBP1.4SETBP1.2SJMPREDELAY:MOVR7,#50DJNZR7,$RETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H
本文标题:基于单片机水温控制系统
链接地址:https://www.777doc.com/doc-4684772 .html