基于单片机水温控制系统Word文件下载.docx
《基于单片机水温控制系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机水温控制系统Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
本系统由键盘显示和温度控制两个模块组成,通过模块间的通信完成温度设定、实温显示、水温升降等功能。
具有电路结构简单、程序简短、系统可靠性高、操作简便等特点。
关键词:
单片机,继电器,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℃,满刻度范围误差为±
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
附录
汇编程序
主程序如下:
ORG0000H
AJMPSTART;
主程序
ORG000BH
AJMPTIMO;
T0中断子程序
ORG0023H
AJMPRT;
串口中断接受子程序
ORG0100H
START:
MOV50H,#00H;
初始化设定温度
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
MOV54H,#0C6H;
发送第五个数码管字形码C
MOVTMOD,#01H;
T0工作在MODE1
MOVTH0,#0ECH;
晶振12M,50ms中断一次
MOVTL0,#78H
SETBTR0
MOVTOMD,#20H;
T1工作在MODE2
MOVTH1,#0E6H;
设波特率
MOVTL1,#0E6H
STETR1
MOVSCON,#50H
MOVIE,#92H;
允许T0,R1中断
MOVR6,#04H;
初始要接收的数据个数
MOVR1,#50H;
初始要接收的其实地址
MOVR4,#00H
REY:
MOVA,53H
CJNEA,#00H,YES
SJMPREY
YES:
MOVR3,#00H
YES1:
CLRP2.0;
开始A/D转换
CLRP3.6
SETBP3.6
ACALLDELAY
J1:
MOVXA,@R0
ACALLSJCL;
调用数据处理子程序
ACALLDISP
DJNZR3,MM
ACALLFS;
调用串口发送子程序
AJMPYES
MM:
AJMPYES1
SJCL:
MOVB,#60H
MULAB
MOV61H,A
MOVA,B
ADDA,#35
ACALLL10
MOV60H,R5;
存十进制高八位(个位和十位)
MOVA,61H
MOVB,#9
MOV61H,B;
存十进制低八位(小数点)
RET
L10:
CLRC
MOVR5,#00H;
初始化十进制转换的地位寄存器
MOVR4,#08H;
调整次数
NEXT:
RLCA
MOVR2,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R2
DJNZR4,NEXT
DISP:
MOVA,60H
ANLA,#0F0H;
取D2的显示数据存入70H
SWAPA
MOV70H,A
MOVA,60H
取D1的显示数据存入71H
MOV71H,A
MOV72H,61H;
取D0的显示数据存入72H
MOVR0,#70H;
取相应的字形码分别存入55-57H
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOV55H,A
INCR0
MOVA,@R0
MOV56H,A
MOV57H,A
MOVA,56H
ADDA,#80H;
在D1字形码上加小数点
FS:
MOVA,R0
PUSHAC