课程设计水温控制系统.docx
《课程设计水温控制系统.docx》由会员分享,可在线阅读,更多相关《课程设计水温控制系统.docx(24页珍藏版)》请在冰豆网上搜索。
![课程设计水温控制系统.docx](https://file1.bdocx.com/fileroot1/2023-1/6/15e02846-4932-4b6f-a677-430088e1a9c5/15e02846-4932-4b6f-a677-430088e1a9c51.gif)
课程设计水温控制系统
数理与信息工程学院
《单片机原理及应用》期末课程设计
题目:
基于单片机的水温控制系统
专业:
电子信息工程
班级:
姓名:
学号:
指导老师:
成绩:
11自己的东西少,格式也欠规范
(2007.1)
目录
第1节引言……………………………………………………………………………3
1.1水温控制系统概述……………………………………………………………3
1.2本设计任务和主要内容………………………………………………………3
第2节系统主要硬件电路设计………………………………………………………4
2.1单片机控制系统原理…………………………………………………………4
2.2温度采样电路…………………………………………………………………4
2.2.1温度传感器的选取……………………………………………………4
2.2.2温度传感器AD590……………………………………………………5
2.2.3电路原理及参数计算…………………………………………………5
2.2.4ADC0804性能描述……………………………………………………5
2.3温度控制电路…………………………………………………………………5
2.4主机控制部分…………………………………………………………………6
2.5键盘及数字显示部分…………………………………………………………6
第3节系统软件设计…………………………………………………………………8
3.1主程序流图……………………………………………………………………8
3.2主程序…………………………………………………………………………8
3.3键盘和数字显示流程图………………………………………………………14
3.4键盘显示程序…………………………………………………………………14
第4节结束语…………………………………………………………………………23
参考文献…………………………………………………………………………24
基于单片机的水温控制系统
数理与信息工程学院电信041班王炜
指导教师:
余水宝
第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℃--+150℃,满刻度范围误差为±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-3A/D转换电路
由于系统控制的水温范围为35℃--95℃,所以当输出电压为零伏时AD590的输出电流为308.2uA,因此为了使Ui的电位为零就必须使电流
等于电流
等于308.2uA,三端稳压7812的输出电压为12v所以取电阻R2=30k,R1=10k的电位器。
又由于ADC0804的输入电压范围为0—5v,为了提高精度所以令水温为95℃时
ADC0804的输入电压为5v(即
Uo=5v)。
当水温为95℃时AD590的输出电流为368.2uA。
因此取R5=81k,R5=5k的电位器。
2.3温度控制电路
此部分电路主要由光电耦合器MOC3041和双向可控硅BTA12组成。
MOC3041光电耦合器的耐压值为400v,它的输出级由过零触发的双向可控硅构成,它控制着主电路双向可控硅的导通和关闭。
100Ω电阻与0.01uF电容组成双向可控硅保护电路。
控制部分电路图如图2-4部分控制电路。
如图2-4部分控制电路
2.4主机控制部分
此部分是电路的核心部分,系统的控制采用了单片机89C52。
单片机89C52内部有8KB单元的程序存储器及256字节的数据存储器。
因此系统不必扩展外部程序存储器和数据存储器这样大大的减少了系统硬件部分。
如图2-5主机控制部分
如图2-5主机控制部分
2.5键盘及数字显示部分
在设计键盘/显示电路时,我们使用单片机2051做为电路控制的核心,单片机2051具有一个全双工的串行口采用串口,利用此串行口能够方便的实现系统的控制和显示功能。
键盘/显示接口电路如图2-6。
图3-4-1中单片机2051的P1口接数码管的8只引脚,这样易于对数码管的译码,使数码管能显示设计者所需的各数值、小数点、符号等等。
单片机2051的P3.3、P3.4、P3.5接3-8译码器74L138,译码器的输出端直接接八个数码管的控制端和键盘,键盘扫描和显示器扫描同用端口这样能大大的减少单片机的I/O,减少硬件的花费。
图2-6键盘/显示部分电路
键盘的接法的差别直接影响到硬件和软件的设计,考虑到单片机2051的端口资源有限,所以我们在设计中将传统的4*4的键盘接成8*2的形式(如图2-7),键盘的扫描除了和显示共用的8个端外,另外的两个端直接和2051的P3.2和P3.7相连。
图2-7键盘接线
如图2-7的接法已经完全用完了单片机的15个I/O口,有效的利用了单片机的资源。
第3节系统的软件设计
3.1系统主程序设计
3.2主程序
主程序如下:
ORG0000H
AJMPSTART;主程序
ORG000BH
AJMPTIM0;T0中断子程序
ORG0023H
AJMPRT;串口中断接受子程序
ORG0100H
START:
MOV50H,#00H;初始化设定温度
MOV51H,#00H
MOV52H,#00H
MOV53H,#00H
MOV54H,#0C6H;发送第5个数码管字形码“C”
MOVTMOD,#01H;T0工作在MODE1
MOVTH0,#0ECH;晶振12M,50ms中断一次
MOVTL0,#78H
SETBTR0
MOVTMOD,#20H;T1工作在MODE2
MOVTH1,#0E6H;设波特率
MOVTL1,#0E6H
SETBTR1
MOVSCON,#50H
MOVIE,#92H;允许T0,RI中断
MOVR6,#04H;初始要接收的数据个数
MOVR1,#50H;初始要接收数据的起始地址
MOVR4,#00H
REY:
MOVA,53H
CJNEA,#00H,YES
SJMPREY
YES:
MOVR3,#00H
YES1:
CLRP2.0;开始AD转换
CLRP3.6
SETBP3.6
ACALLDELAY
J1:
MOVXA,@R0
ACALLSJCL;调用数据处理子程序
ACALLDISP
DJNZR3,MM
ACALLFS;调用串口发送子程序
AJMPYES
MM:
AJMPYES1
SJCL:
MOVB,#60
MULAB
MOV61H,A
MOVA,B
ADDA,#35
ACALLL10
MOV60H,R5;存十进制高八位(个位和十位)
MOVA,61H
MOVB,#9
MULAB
MOV61H,B;存十进制低八位(小数点)
RET
L10:
CLRC
MOVR5,#00H;初始化十进制转换的地位寄存器
MOVR4,#08H;调整次数
NEXT:
RLCA
MOVR2,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R2
DJNZR4,NEXT
RET
DISP:
MOVA,60H
ANLA,#0F0H;取D2的显示数据存入70H
SWAPA
MOV70H,A
MOVA,60H
ANLA,#0FH;取D1的显示数据存入71H
MOV71H,A
MOV72H,61H;取D0的显示数据存入72H
MOVR0,#70H;取相应的字形码分别存入55-57H
MOVDPTR,#TAB
MOVA,@R0
MOVCA,@A+DPTR
MOV55H,A
INCR0
MOVA,@R0
MOVCA,@A+DPTR
MOV56H,A
INCR0
MOVA,@R0
MOVCA,@A+DPTR
MOV57H,A
MOVA,56H
ADDA,#80H;在D1字形码上加小数点
MOV56H,A
RET
FS:
MOVA,R0
PUSHACC
MOVTMOD,#20H
MOVTH1,#0E6H
MOVTL1,#0E6H
SETBTR1
MOVSCON,#50H
MOVR0,#54H;设定发送起始地址
MOVR7,#04H
LOOP:
MOVSBUF,@R0
JNBTI,$
CLRTI
INCR0
DJNZR7,LOOP
POPACC
MOVR0,A
RET
;串口中断接受子程序
RT:
PUSHACC
PUSHPSW
CLRET0
CLRES
SJ:
MOV@R1,SBUF
INCR1
CJNER4,#03H,MOVE
SJMPMOVE1
MOVE:
INCR4
CLRRI
JNBRI,$
MOVE1:
DJNZR6,SJ
MOVR4,#00H
MOVR1,#50H;重置接收起始地址
MOVR6,#04H;重置接收个数
SETBET0
SETBES
POPPSW
POPACC
RETI
;T0中断子程序
TIM0:
PUSHACC
PUSHPSW
MOVTH0,#0ECH;重设中断时间
MOVTL0,#78H
CLRC
;ACALLJS
MOVA,51H
CJNEA,70H,Q1;最高位比
SJMPQ2
Q1:
JCOFF
SJMPON
Q2:
MOVA,52H
CJNEA,71H,Q3
Q3:
JCOFF
ON:
CLRP1.4
CLRP1.2
RE:
POPPSW
POPACC
RETI
OFF:
SETBP1.4
SETBP1.2
SJMPRE
DELAY:
MOVR7,#50
DJNZR7,$
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
3.3键盘显示程序
3.4键盘显示程序
键盘显示程序如下:
FLAGABIT4EH
FLAGBBIT4FH
ORG00H
JMPSTART
ORG23H
JMPUARTI
START:
CLRFLAGA
CLRFLAGB
MOV30H,#07H;系统显示
MOV31H,#07H;PPPPPPPP
MOV32H,#07H
MOV33H,#07H
MOV34H,#07H
MOV35H,#07H
MOV36H,#07H
MOV37H,#07H
MOVR1,#90H
MOVR0,#50H
PP:
CLRP3.3;P3.5P3.4P3.3=000
CLRP3.4
CLRP3.5
MOVA,30H
MOVP1,A
SETBP3.3;001
MOVA,31H
MOVP1,A
SETBP3.4;010
CLRP3.3
MOVA,32H
MOVP1,A
SETBP3.3;011
MOVA,33H
MOVP1,A
SETBP3.5;100
CLRP3.4
CLRP3.3
MOVA,34H
MOVP1,A
SETBP3.3;101
MOVA,35H
MOVP1,A
SETBP3.4;110
CLRP3.3
MOVA,36H
MOVP1,A
SETBP3.3;111
MOVA,37H
MOVP1,A
DJNZR0,PP
MOVR0,#0FFH
DJNZR0,$
DJNZR1,PP;系统显示
MOVSCON,#52H;串行口方式2,允许接收,初态TI=1
MOV30H,#0FH;0
MOV34H,#0FH
MOV33H,#93H;C
MOV37H,#93H
Z1:
CLRP3.3;000
CLRP3.4
CLRP3.5
MOVA,30H
MOVP1,A
JBP3.2,Z11
ACALLDELAY;JIANCHULI
JNBP3.2,$
SETBFLAGA
JMPZ2
Z11:
JBP3.7,Z2
ACALLDELAY;JIANCHULI
JNBP3.7,$
JNBFLAGA,Z2
JBFLAGB,Z12
MOV31H,#0C0H;
MOVR0,#0
SETBFLAGB
JMPZ2
Z12:
MOV32H,#0C0H;
MOVR1,#0
CLRFLAGB
Z2:
SETBP3.3;001
MOVA,31H
MOVP1,A
JBP3.2,Z21
ACALLDELAY;JIAN
JNBP3.2,$
JNBFLAGA,Z3
JBFLAGB,Z22
MOV31H,#0F9H;
MOVR0,#1
SETBFLAGB
JMPZ3
Z22:
MOV32H,#0F9H;
MOVR1,#1
CLRFLAGB
JMPZ3
Z21:
JBP3.7,Z3
ACALLDELAY;JIAN
JNBP3.7,$
JNBFLAGA,Z3
JBFLAGB,Z23
MOVR0,#2
MOV31H,#0A4H;
SETBFLAGB
JMPZ3
Z23:
MOV32H,#0A4H;
MOVR1,#2
CLRFLAGB
Z3:
SETBP3.4;010
CLRP3.3
MOVA,32H
MOVP1,A
JBP3.2,Z31
ACALLDELAY;JIAN
JNBP3.2,$
JNBFLAGA,Z4
JBFLAGB,Z32
MOV31H,#0B0H;
MOVR0,#3
SETBFLAGB
JMPZ4
Z32:
MOV32H,#0B0H;
MOVR1,#3
CLRFLAGB
JMPZ4
Z31:
JBP3.7,Z4
ACALLDELAY;JIAN
JNBP3.7,$
JNBFLAGA,Z4
JBFLAGB,Z33
MOV31H,#99H;
MOVR0,#4
SETBFLAGB
JMPZ4
Z33:
MOV32H,#99H;
MOVR1,#4
CLRFLAGB
Z4:
SETBP3.3;011
MOVA,33H
MOVP1,A
JBP3.2,Z41
ACALLDELAY;JIAN
JNBP3.2,$
JNBFLAGA,Z5
JBFLAGB,Z42
MOV31H,#92H;
MOVR0,#5
SETBFLAGB
JMPZ5
Z42:
MOV32H,#92H;
MOVR1,#5
CLRFLAGB
JMPZ5
Z41:
JBP3.7,Z5
ACALLDELAY;JIAN
JNBP3.7,$
JNBFLAGA,Z5
JBFLAGB,Z43
MOV31H,#82H;
MOVR0,#6
SETBFLAGB
JMPZ5
Z43:
MOV32H,#82H;0
MOVR1,#6
CLRFLAGB
Z5:
CLRP3.3;100
CLRP3.4
SETBP3.5
MOVA,34H
MOVP1,A
JBP3.2,Z51
ACALLDELAY;JIAN
JNBP3.2,$
JNBFLAGA,Z6
JBFLAGB,Z52
MOV31H,#0F8H;
MOVR0,#7
SETBFLAGB
JMPZ6
Z52:
MOV32H,#0F8H;
MOVR1,#7
CLRFLAGB
JMPZ6
Z51:
JBP3.7,Z6
ACALLDELAY;JIAN
JNBP3.7,$
JNBFLAGA,Z6
JBFLAGB,Z53
MOV31H,#80H
MOVR0,#8
SETBFLAGB
JMPZ6
Z53:
MOV32H,#80H
MOVR1,#8
CLRFLAGB
Z6:
SETBP3.3;101
MOVA,35H
MOVP1,A
JBP3.2,Z61
ACALLDELAY;JIAN
JNBP3.2,$
JNBFLAGA,Z7
JBFLAGB,Z62
MOV31H,#98H
MOVR0,#9
SETBFLAGB
JMPZ7
Z62:
MOV32H,#98H
MOVR1,#9
CLRFLAGB
JMPZ7
Z61:
JBP3.7,Z7
ACALLDELAY;JIAN
JNBP3.7,$
JNBFLAGA,Z7
MOVA,R0
MOVB,#10
MULAB
MOVB,R1
ADDA,B
MOVSBUF,A
CLRFLAGA
CLRFLAGB
Z7:
SETBP3.4;110
CLRP3.3
MOVA,36H
MOVP1,A
Z8:
SETBP3.3;111
MOVA,37H
MOVP1,A
JMPZ1
DELAY:
MOVR7,#0F0H
DL0:
MOVR6,#0F0H
DJNZR6,$
DJNZR7,DL0
RET
UARTI:
PUSHACC
PUSHPSW
MOVDPTR,#TABLE
MOVA,SBUF
JNBRI,$
CLRRI
MOVB,A
ANLA,#00FH
MOVCA,@A+DPTR
MOV36H,A
MOVA,B
ANLA,#0F0H
MOVB,#10H
DIVAB
MOVCA,@A+DPTR
MOV35H,A
MOVA,R1
POPPSW
POPACC
RETI
TABLE:
DB11H,7DH,23H,29H,4DH
DB89H,81H,1DH,01H,09H;
结束语
首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更好。
我所写的系统主要根据目前节省能源的发展趋势和国内实际的应用特点和要求,采用了自动化的结构形式,实现对水温的自动检测和控制。
系统以单片机AT89C52为核心部件,单片机系统完成对水温信号的采集、处理、显示等功能;用Protel软件绘制电路原理图和PCB电路印刷板图,并在电路板厂制作控制主板;利用MCS51汇编语言编制,运行程序该系统的主要特点是:
1)适用性强,用户只需对界面参数进行设置并启动系统正常运行便可满足不同用户水温的要求,实现对水温的实时监控。
避免了电力力资源的浪费,节省了能源。
2)将单片