水温自动控制系统的设计.docx
- 文档编号:7959711
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:13
- 大小:75.34KB
水温自动控制系统的设计.docx
《水温自动控制系统的设计.docx》由会员分享,可在线阅读,更多相关《水温自动控制系统的设计.docx(13页珍藏版)》请在冰豆网上搜索。
水温自动控制系统的设计
目录
一、课程设计背景·····················3
二、课程设计要求及分析·····················4
三、电路原理框图及说明··················4
四、电路原理图·······················5
五、程序及解析······················6
六、课程设计总结和感言··················14
七、参考文献······················14
一、课程设计背景
温度控制无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。
特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来。
在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。
在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准,那么无论是哪种控制,我们都希望水温控制系统的精确度在满足我们要求的范围内,帮助我们实现我们想要的控制,解决身边的问题。
在计算机没有发明之前,这些控制都是我们难以想象的。
而当今,随着电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现水温控制并提高控制的精确度不仅是可以达到的而且是容易实现的。
用高新技术来解决工业生产问题,排除生活用水问题实施对水温的控制已成为电子行业的任务,以此来加强工业化建设,提高人民的生活水平。
二、课程设计要求及分析
要求及分析:
本课题要求利用单片机对水温进行自动控制,细分为以下几点具体的要求:
(1)要有一个加热系统,能对水进行加热,并有一个可控的开关;
(2)要有一个反馈系统,能把实际水温反馈回来用于系统的控制;
(3)要有一个以单片机为核心的控制系统,能够通过比较设定值和反馈值的大小控制加热系统的工作,并可以对温度进行设定。
三、电路原理框图及说明
根据以上要求得到水温控制的电路原理框图如图4.2.13所示:
简要说明如下:
用加热器给容器中的水加热,并用温度传感器检测水温,将水温变成电信号,然后经温度变送器对电信号进行调理,送单片机处理。
单片机根据给定的温度,控制加热器开关(继电器),超过一定的温度断开开关,低于一定的温度时合上开关。
温度变送器的介绍:
本课题用的温度变送器的作用是将0~255摄氏度的温度值,线性地变成0~5V的直流电压,可用于水温和油温的测量。
控制电路中,继电器由单片机的P1.3控制,温度信号接到TLC1543的3脚。
由于A/D转换器件TLC1543在被测信号电压为5V时,转换值为1023,而被测电压为5V时对应的温度为255℃,转换值和温度之间约为4倍的关系,因此应将转换值除以4才能换算为实际温度。
四、水温控制系统设计图
根据上面所得的电路原理框图及编程的需要设计的电路原理图如下:
五、程序及解析
根据课程设计对温度检测、显示和控制的要求,分别编写了一个主程序和7个子程序,子程序分别为显示子程序、A/D转换子程序、数制转换子程序、按键子程序、计时器0中断子程序、计时器1中断子程序和延时子程序。
程序代码如下:
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;统一定义下面程序中将用到的字符
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
AD_ADDREQU21H;用于存放TLC1543的地址信息
TIME0EQU59H;加热时间
TIME1EQU60H;不加热时间
AD_DAT0EQU64H;分别用于存放A/D转换结果的低八
AD_DAT1EQU65H;位和高两位
TEMPEQU67H;用于存放设置的温度值
D_DAT0EQU6AH
D_DAT1EQU6BH
D_DAT2EQU6CH
D_DAT3EQU6DH
D_DAT4EQU6EH
D_DAT5EQU6FH
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
ORG0000H
AJMPSTART
ORG000BH
LJMPTIM0
ORG001BH
LJMPTIM1
ORG0030H
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;变量初始化及中断和计数器设置
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
START:
MOVSP,#30H
MOVD_DAT0,#0
MOVD_DAT1,#0
MOVD_DAT2,#0
MOVD_DAT3,#0
MOVD_DAT4,#4
MOVD_DAT5,#0
MOV64H,#0
MOVTEMP,#40;设定温度的初始值为40
MOV57H,#2;用于0中断计数
MOV66H,#2;用于1中断计数
MOVTMOD,#11H
MOVTL0,#0B0H
MOVTL1,#0B0H
MOVTH0,#3CH
MOVTH1,#3CH
SETBET0
SETBET1
SETBEA
SETBTR0
SETBTR1
;显示子程序的初始化
MOVP0,#0
CLRP1.1;初始化有关I/O口
CLRP1.2
MOVR0,#D_DAT0;初始化显示指针寄存器
MOVR1,#01H;初始化需点亮数码管的位置代码
NOP
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;主程序。
在主程序里调用显示子程序显示A/D转换所得的温度值及
;设置的温度值。
并在主程序中实现加热时间和不加热时间的控制。
;比较温度设定值与实际温度的大小来决定每一秒时间中加热和不加
;热的时间。
当TEMP-64H≤0时,实际温度已经大于等于设置温度,
;故不应该再加热,即加热时间TIME0=0s,不加热时间TIME1=1s。
;当TEMP-64H≥10时,由于实际温度离设定温度还比较远,故应该
;不间断加热,即TIME0=1s,TIME1=0。
当0<TEMP-64H<10时,
;令TIME0=(TEMP-64H)×0.1s,令TIME1=(10-(TEMP-64H))×0.1s。
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
MAIN:
LCALLDISP;调用数码管循环点亮子程序
MOVA,TEMP
CLRC
SUBBA,64H
JCJDC2
MOV58H,A
SUBBA,#10
JCJDC1
SJMPJDC3
JDC1:
CLRC
MOVTIME0,58H
MOVA,#10
SUBBA,58H
MOVTIME1,A
SJMPRETURN2
JDC2:
CLRP1.3
SJMPRETURN2
JDC3:
SETBP1.3
RETURN2:
AJMPMAIN
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;计时器0中断子程序。
在这个字程序里根据主程序中得到的加热时
;间和不加热时间,通过改变P1.3的电平控制继电器的通断。
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
TIM0:
MOVTL0,#0B0H
MOVTH0,#3CH
DJNZ57H,RETURN3
MOV57H,#2
MOVA,TIME0
JZBJR
DJNZTIME0,JR
BJR:
MOVA,TIME1
JZRETURN3
DJNZTIME1,BJR1
SJMPRETURN3
JR:
SETBP1.3
SJMPRETURN3
BJR1:
CLRP1.3
RETURN3:
RETI
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;计时器1中断子程序。
在这个子程序中通过调用A/D转换子程序、
;按键子程序及数制转换子程序完成A/D转换、按键的扫描及二进制
;和十进制的转换,准备好显示子程序中将用到的六个值。
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
TIM1:
MOVTL1,#0B0H
MOVTH1,#3CH
DJNZ66H,RETURN
MOV66H,#4
CLRP3.4
CLRP3.5
CLRP3.6
MOVAD_ADDR,#0;选择通道0
LCALLAD_C;调用A/D转换子程序
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;A/D转换器件TLC1543在被测信号电压为5V时,转换值为1023,
;而被测电压为5V时对应的温度为255℃,转换值和温度之间约为4
;倍的关系,因此应将转换值除以4才能换算为实际温度。
以下部分
;为转换程序,转换结果存放在64H中。
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
MOVA,65H
RRCA
MOV65H,A
MOVA,64H
RRCA
MOV64H,A
CLRC
MOVA,65H
RRCA
MOVA,64H
RRCA
MOV64H,A
CLRC
LCALLTRANF
;调用数制转换子程序对A/D转换的结果进行数制转换,
;转换的结果从高位到低位依次存放在61H、62H、63H中。
MOVD_DAT0,61H
MOVD_DAT1,62H
MOVD_DAT2,63H
LCALLKEY;调用按键子程序,确定TEMP的值
MOVA,TEMP
LCALLTRANF;对TEMP进行数制转换
MOVD_DAT3,61H
MOVD_DAT4,62H
MOVD_DAT5,63H
RETURN:
RETI
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;按键子程序。
每隔0.2s对两个按键P1.4、P1.5进行一次扫描,若P1.4
;按下则TEMP加1,若P1.5按下则TEMP减1。
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
KEY:
JBP1.4,KEY1
LCALLDELAY
JBP1.4,KEY1
INCTEMP
KEY1:
JBP1.5,RETURN1
LCALLDELAY
JBP1.5,RETURN1
DECTEMP
RETURN1:
RET
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;A/D转换子程序,转换结果的低八位存在64H中,高二位存在65H
;中。
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
AD_C:
CLRP3.6;A/D转换子程序,片选信号/CS有效
MOVA,#00H
MOVC,08H
MOVP3.4,C;第一个地址信号(最高位)
;注意此处08H为位地址
SETBP3.5
;第一个时钟信号
MOVC,P3.3;取第一位数据(最高位MSB)
RLCA
CLRP3.5
MOVC,0AH
MOVP3.4,C;第二个地址信号
SETBP3.5
;第二个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
MOVAD_DAT1,A;存最高两位数据
MOVA,#00H
MOVC,09H
MOVP3.4,C;第三个地址信号
SETBP3.5
;第三个时钟信号
MOVC,P3.3;取第三位数据
RLCA
CLRP3.5
MOVC,08H
MOVP3.4,C;第四个地址信号
SETBP3.5
;第四个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
CLRP3.4;以下地址信号一直为0,无效
SETBP3.5
;第五个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
SETBP3.5
;第六个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
SETBP3.5
;第七个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
SETBP3.5
;第八个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
SETBP3.5
;第九个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
SETBP3.5
;第十个时钟信号
MOVC,P3.3
RLCA
CLRP3.5
MOVAD_DAT0,A;存低8位数据
SETBP3.6;传送数据完成,使片选信号/CS无效
RET
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;数制转换子程序
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
TRANF:
MOVR0,#61H
MOVB,#100
DIVAB
MOV@R0,A
MOVA,#10
XCHA,B
DIVAB
INCR0
MOV@R0,A
INCR0
MOV@R0,B
RET
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;通过574显示6位数字子程序
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡DISP:
MOVA,R1;取位代码
MOVP0,A;位代码送P0口
SETBP1.2
NOP
CLRP1.2;产生一个锁存脉冲,锁存位代码
MOVA,@R0;取需显示的数字
MOVDPTR,#DISPD;装载笔画编码表首地址
MOVCA,@A+DPTR;取需显示数字笔画代码
MOVP0,A;笔画代码送到P0口
SETBP1.1
NOP
CLRP1.1;产生一个锁存脉冲,锁存笔画代码
INCR0;R0增1指向下一个需显示数字
MOVA,R1
CLRC
RLCA
MOVR1,A;R1中的值左移1位,指向下一位数码管
CJNER0,#70H,DISP1;R0中不为70H则继续
MOVR0,#D_DAT0;R0中为70H,循环完一轮
;重新赋初值
MOVR1,#1;位置代码初值
DISP1:
NOP
RET
;数字笔画代码表
;0123456789熄
DISPD:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,0
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡
;延时子程序
;﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡﹡DELAY:
MOVR7,#40H
DELY1:
MOVR6,#0FH
DELY2:
DJNZR6,$;$代表当前行
;与DJNZR6,DELY2相同
DJNZR7,DELY1
RET
END
六、课程设计总结和感言
本次课程设计还是很有意思的,能够亲手设计一个系统实现水温的检测显示和控制给我带来了很大的满足感。
在此之前,当我看到生活中的各种用电器时总觉得他们充满了神秘感,对他们是怎么工作的充满了好奇。
虽然这次我做的系统很简单,实现的功能也很简单,但是通过这次课程设计,我打开了那个神秘世界的一角,可以一窥其真容,即使就那么一点对我都是很大的鼓舞。
这个过程中也有一些做得不足的地方。
在简单地自学了PID算法的原理后,我发觉这个算法的控制过程有几个参数需要确定,但由于经验不足,以及没有充分地时间去做实验调整这些参数,最终我的控制算法中只使用到了PID算法中的比例控制,没有用到微分和积分,所以控制的精度不够高,这是需要改进的地方。
七、参考文献
[1]MCS51系列单片机原理及应用实验指导书
[2]姜志海、黄玉清、刘连鑫.单片机原理及应用第二版
[3]《PID算法》,XX百科
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 水温 自动控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)