温度自动控制系统课程综合设计.docx
《温度自动控制系统课程综合设计.docx》由会员分享,可在线阅读,更多相关《温度自动控制系统课程综合设计.docx(14页珍藏版)》请在冰豆网上搜索。
温度自动控制系统课程综合设计
课程设计说明书
题目:
温度自动控制系统
学院(系):
电气工程及其自动化
年级、专业:
2001级4班
姓名:
吴俊江
学号:
2
指导教师:
王军
完成时间:
2004.06.25
温度自动控制系统课程综合设计
摘要:
这次综合设计,主要是设计一个温度自动控制系统,用8位单片机控制,DS18B20数字温度传感器采集数据,并用LCD液晶显示器模块显示。
它属于一个恒温系统。
通过单片机处理,并发出指令,使用继电器控制、隔离。
DS18B20数字温度传感器是一个12位的数字温度传感器,直接输出二进制数字信号。
在本次设计中设值为9位,灵敏度为0.5度。
前言
本次设计分为显示、数据处理、数据采集和执行机构四个部分。
显示器采用图形液晶显示器QH2001,它是一个象素为128×64的点阵,数据处理用MCS-51系列单片机AT89S52进行集中控制,同时它还可以扩展为和上位机通信,并通过上位机设定为恒定值。
数据采集部分采用集成数字温度传感器直接转换为二进制代码,并通过1-WIRE总线传送数据和发送控制指令,控制数字温度传感器的读写操作。
数字温度传感器和单片机接口只需要一个I/O口,但是在单片机中需要按照数字温度传感器的时序进行软件编程模拟。
在执行部分采用继电器,并通过它进行电气隔离,继电器再接通加热器和冷却设备进行温度调节。
继电器用NPN三极管SKT9014驱动。
本次综合设计是为毕业设计作准备。
该系统有自动调节的功能,通过改变设定值可以使该设备处于不同的恒温状态,并使控制温度基本上等于设定温度,精度为±0.5度。
总体方案设计
这次课程设计题目为温度自动控制系统,实现这种控制目的的方案有两个。
方案
(一)热电偶温度自动控制系统。
方案
(二)数字温度传感器温度控制系统。
这两个方案都是采用单片机控制,液晶显示模块LCM显示。
两个方案的比较部分为温度检测部分。
方案
(一)的系统框图如下图:
该部分温度检测部分检测部分采用热电偶,它需要冷端补偿电路和其配套,并且热电偶输出电压只有几毫负,必须经过放大处理才能A/D转换和D/A转换器接口,若采用8位A/D转换器,CADC0809则输人端需采用仪用放大器,把几毫伏的电压信号放大到5伏左右。
由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。
这种系统具有测量温度范围可以从零下一XX到早上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。
但构成系统复杂,抗干扰能力不强。
数字温度传感器DS18B20
方案
(二)的框图如下:
该方案才用数字温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度。
它具有直接输出数字信号和数据处理,并且它和单片机接口只需要一位I/O口,因此由它构成的系统简单使用,由于DS18B20,按照工业设计要求设计,抗干扰性能强。
但温度测量范围从-55摄氏度—-125摄氏度,比较有限位综合比较方案
(一)和方案
(二),我们只在常温下使用,并且经济合理,因此选择了方案
(二)。
一、LCM显示部分
(一).器件介绍:
本次设计的显示部分采用图形点阵显示器模块QH2001,内带两片HD61202控制器,分别控制左右屏点阵数据。
每片控制器带512字节的RAM。
其中的每一位数据和屏幕上的一个象素对应。
QH2001显示模块无内带字库,它是在纯图形的方式下工作的。
所以我们利用字模软件生成了所需汉字代码,用以进行调用。
其程序设计的基本过程是:
首先对显示器模块初始化,写入相应控制字和设置显示初始行,然后对显示器清屏。
在进行汉字和测试数据显示时,首先确定显示所在行的行数和所调用代码表的标号。
如果显示数据,还要确定动态显示的起始列数和字符数。
设置完成后,调用选择表处理程序,动态显示处理程序以及显示程序,完成显示过程。
(二)控制指令介绍
12864采用两片HD61202分别控制左右半屏的显示,在编程时要注意分别控制,这里的左右屏选取由片选信号CS1、CS2完成。
当CS1=1时选取左半屏为操作对象,CS2=1时选取右半屏为操作对象,某些情况下可以同时选择左右屏同时操作。
另外还有读写(R/W)信号、数据指令(D/I)信号、E信号等。
指令说明如下:
操作
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1、显示器开
0
0
0
0
1
1
1
1
1
1/0
2、起始行设置
0
0
1
1
行地址:
0~63
3、页地址设置
0
0
1
0
1
1
页地址:
0~7
4、列地址设置
0
0
0
1
列地址:
0~63
5、读状态
1
0
Busy
0
onoff
RST
0
0
0
0
6、写显示数据
0
1
数据(8位)
7、读显示数据
1
1
数据(8位)
注:
1、该指令控制显示的开关,不影响模块中RAM的数据和内部状态。
DB0=1,开;DB0=0,关。
2、RES=1表明系统正在初始化;RES=0表明初始化完成;On/off=1时不显示;On/off=0时显示;Busy=1时正在进行内部操作;Busy=0时准备好接收指令。
3、将欲显示的数据写入显示存储器中。
4、从显示存储器中读出被显示的数据。
注意:
在读写操作之前,要先确定模块的内部状态,当RES=0时,才能进行地址设置和数据的读写操作。
显示RAM的存取地址每进行一次写操作,列地址自动加1。
显示器开关设置
显示初始行设置
数据指针设置
(三)LCD的控制地址分配表
CS1CS2RWDIE(OTHERSE=0)
LCD_CMD_LXBYTE[0XFF00]10001//命令(写)左
LCD_STD_LXBYTE[0XFF01]10101//状态(读)左
LCD_DATAW_LXBYTE[0XFF02]10011//数据(写)左
LCD_DATAR_LXBYTE[0XFF03]10111//数据(读)左
LCD_CMD_RXBYTE[0XFF04]01001//命令(写)右
LCD_STD_RXBYTE[0XFF05]01101//状态(读)右
LCD_DATAW_RXBYTE[0XFF06]01011//数据(写)右
LCD_DATAR_RXBYTE[0XFF07]01111//数据(读)右
CMD_LCD_ON0X3F//开显示器
CMD_LCD_OFF0X3E//关显示器
CMD_LCD_START0XC0//显示器开始显示
CMD_LCD_X0XB8//写显示数据(列地址)
CMD_LCD_Y0X40//写显示数据(页地址)
(四)LCM接口电路
该部分和单片机接口电路如图
(1)所示。
图
(1)
单片机通过对P1口和P2口相关引脚的操作间接控制LCM的初始化和显示。
其初始化和数据传输都通过调用相关的子程序来实现。
初始化子程序的框图如图
(2)所示。
在初始化子程序中,操作非常简单,主要是对LCM的初始行设置在第1行显示,即向LCM发出初始化控制命令0C0H,然后开显示器,写入3FH,初始化过程就算完成。
最后是对LCM内每一个RAM写入“0”,使整个屏幕白屏。
白屏部分程序是通过一个循环程序来实现的。
在向LCM输入显示数据的过程中,是通过一个16
16的矩阵的子程序来实现的,该子程序可以显示16
16的汉字和16
8的数字矩阵。
该部分子程序程序框图如下图(3)所示。
图3
该子程序的具体逻辑是通过对页地址和列地址的设置决定显示的初始显示数据,再通过对一个循环次数单元39H的内容的确定决定显示是汉字还是数据。
在该程序中有两个循环嵌套来确定换列地址和行地址。
该显示的整个过程为:
首先显示固定不动的汉字,其次是显示设定值,最后是动态循环显示测量数据,所有这些数据的显示都固定的位置。
这一点可以通过附录主程序的框图很清楚地表达出来。
显示屏幕显示内容的布置如下图(4)所示。
温
度
自
动
控
制
系
统
设
定
值
0
0
0
.
0
0
测
量
值
0
0
0
.
0
0
加
热
状
态
图4
数据处理部分
(一)功能介绍
数据处理部分使用的器件是MCS-51系列单片机AT89C52,它自带8K的FLASH程序存储器,它的核心处理单元为8位。
数据处理主要是对数字温度传感器采集温度数据,并进行逻辑判断,根据数据的具体情况输出到LCM显示和使继电器动作。
这部分包括三个方面的工作,主要由三个子程序来完成,分别为GETWD、DATA-PRO和ZTBJ。
它主要的功能包括初始化数字温度传感器、写数据到数字温度传感器、从数字温度传感器读数据三个步骤。
从这个子程序读出的
数据由两个字节组成,高字节为35H,低字节为34H,数据格式如下图(5)所示。
S
S
S
S
S
0
0
0
图5
高字节前五位为符号位,低字节在传感器设置为9位分辨率的情况下,最低三位由0补充。
数据处理环节,其主要处理过程如框图(6)所示。
图6
首先,把高位字节不带进位位Cy左移四位,再和F0H相和,把低四位置零,高四位保持不变,把所得结果存储,低位字节的处理是:
首先把该字节高低四位相互交换,存储该字节在R3中,然后把这个数据和0FH相和去除高四位,最后把这个低位字节和处理后的高位字节相或,把高低位字节最后处理为一个字节,除去最高位符号位,后七位就是要显示的数据,存储在36H中。
最后把R3中数据取出,带进位位左移一位,判断其进位标志位C是否为“1”,若为“1”则把数字5存储在37H中,供LCM显示测量值小数部分。
否则把37H中置零。
到此,整个数据处理过程到此结束。
三温度数据采集
(一)DS18B20简介
DS18B20是采用“1-wire”一线总线传输数据的集成温度传感器。
它共有三个引脚一个VCC电源引脚,一个数据总线,一个地引脚,可采用外部电源供电,也可采用总线供电方式,此时,把VCC连接在一起作为数字电源。
在本次设计中采用外部电源供电方式。
它内部有一个64位的ROM区,其中前8位为该器件的序列号,接下来48是该器件的编号,每个器件都不一样,用于在一线总线上连接多传感器时进行对象识别,第8位是前56位的CRC校验码。
接下来是RAM区和EERAM区。
RAM前五个字节分别为LSB、MSB、FH、TL和CONFIG值,分别表示温度测量值的低位字节、高位字节、温度高温低温报警和使用传感器分辨率设置位。
EERAM分别用于TH和TL的数据保存。
每次上电时,数据会自动从EERAM拷贝到TH和TL中。
fonfrg值的数据格式如下图(7)。
0
R1
R0
1
1
1
1
1
图7
R1R0的状态有00011011分别表示9位,10位,11位,12位分辨率设置。
(二)软件设计
对DS18B20软件的设计主要根据其操作时序和控制协议编写的。
其时序分为初始化操作时序,读操作时序,写操作时序,分别如下图(8)、图(9)所示。
相应的子程序也根据这三个步骤来完成,它们都是严格按照以上时序图编写的。
图(8)
图(9)
1.18B20的一线工作协议流程是:
初始化—ROM操作——存储器操作指令——数据传输。
每进行一次操作都要遵守这一协议流程。
这一过程可以从GETWD字程序的框图
(图10)来表达。
图(10)
该图中每一个具体操作除初始化外都是通过命令的方式实现的。
如下表
(1)所示。
读
BEH
从RAM到单片机
写
4EH
从单片机到DS18B20
拷贝
48H
从DS18B20到内部RAM到内部ERAM
SikpROM
CCH
跳到ROM区直接操作存储器
启动转换
44H
启动DS18B20开始转换温度
表1
初始化子程序框图如下图(11)所示。
图(11)
它的过程可具体描述为主机的总线低电平持续时间480至900微秒然后释放总线,等60微秒后读总线是否为低,为低电平表示器件DS18B20反馈存在信号等待主机的下一步操作。
读操作子程序是主机先发出低电平维持等待6ns释放总线,再等待8ns读入数据。
在写操作子程序则为使总线常产生一个由高到低的阶段,保持低电平16ns方式向总线写数据等待40ns以保持写过程持续60ns,然后重复以上操作。
以上的单位机向DS18B20操作的过程。
在这个过程中要严格地保证时序要求因此,在执行以上程序不允许产生中断。
,而且要用4.7千欧以上的电阻连接在读总线上,以保证在主机释放总线只能把总线拉回高电平。
四执行机构部分
(一)硬件部分和参数计算
该部分是单片机和外部控制的接口部分,主要起执行和电气隔离作用,其电路图如下图(12)所示。
图(12)
它是加热通道的电路图,另一通道原理跟加热通道原理一样。
继电器采用SRD-D6VDC-SL-C型,240AC通通断TA的电流。
其直流线圈电阻95欧,三极管Q1采用KTC9014,蔬菜电流IC为150mA,放大系数β为60至1000范围内,若取β为200则Ic在5V下为50mA左右,则基极电流为0.25mA。
只有P0口在高点位输出时才能达到这样大的电流值。
因此把这两个口分别用P0和P01代替。
由于P0口属于三态输出输入口,因此,必须接上拉电阻,其阻值大小可计算为:
我们取10千欧的电阻让Q1在高电平时饱和导通,此时,基极电流为
。
二极管D1主要起保护作用,在Q1关断时续流,以免电感线圈断路时产生过压损坏三极管。
(二)软件部分设计
软件部分实现也是用一个名叫IJBT的子程序实现的,它的末程序框图如下图(13)所示。
图(13)
由框图可知,首先把测量值取出判定是否大于零摄氏度,小于零摄氏度,则把测量值和设定值比较,小于就加热大于就制冷。
由于比较的知识整数部分,因此,其控制精度为正负1摄氏度。
当测量值和设定值相等时,把这种状态作为测量温度大雨设定温度值处理。
程序的具体操作过程是,首先设置汉字显示状态矩阵为16
16的点阵,再通过逻辑和操作,把测量值整数部分和080H相和。
筛选出符号位,看温度是否大于零摄氏度,小于零摄氏度则直接加热,不用比较。
当大于零摄氏度,直接和设定值通过减法指令比较,用借位标志判断谁大谁小,小于设定值就加热,大于设定值就制冷。
由于温度属于缓慢比较信号,因此,没有制滞环处理。
总结
通过本次设计,使我进一步熟悉了一个系统的设计过程,为毕业设计打下了坚实的基础,这次设计属于理论设计,没有得到实践的检验,只有在逻辑上完成了这次设计。
由于时间紧迫,没有进行人机接口的设计,这部分原计划用键盘接口和串行通讯,这样可以使系统成为一个智能系统,在串行通行口中,我们可以使系统和上位机联系,进行测量数据和有上位机检测设定值,自动控制系统的温度。
键盘的接口可以使系统在操作现场完成人机接口,不需要上位机的干预,就可以完成控制功能。
它是我们对整个系统的设计构思。
在这次综合设计中还用到了Prtel软件设计做电路板,设计结果见附件。