温度控制系统设计课设.docx
- 文档编号:4538403
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:25
- 大小:166.13KB
温度控制系统设计课设.docx
《温度控制系统设计课设.docx》由会员分享,可在线阅读,更多相关《温度控制系统设计课设.docx(25页珍藏版)》请在冰豆网上搜索。
温度控制系统设计课设
<<温度控制系统的设计>>
课程设计报告
题目:
_温度控制系统的设计_
专业:
_电子信息工程______
年级:
2011级___
学号:
_B110301
学生姓名:
联系电话:
完成日期:
2014年12月绪论
随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。
特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。
针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。
温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。
在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。
比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。
没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。
因此,各行各业对温度控制的要求都越来越高。
可见,温度的测量和控制是非常重要的。
单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。
随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。
单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
而51单片机是各
单片机种最为典型和最有代表性的一种。
本系统是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以显示出实时温度。
本系统基于单片机技术原理,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制出一个温度控制系统,包括以下功能:
1能设置需要控制的温度;2检测实际温度;3能显示设置温度和实际温度;4比较实际温度和设定温度,判断是否启动加热装置;该温度系统主要有LCD显示模块、LED状态灯模块、键盘模块、温度检测模块,复位模块等部分组成。
2011年1月4日于长沙
第一章单片机温度控制系统方案及原理简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
1.1单片机温度控制系统方案⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
1.2原理简介⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯第二章系统硬件处理方案及原理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
2.1单片机控制电路模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
2.2矩阵键盘模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
2.3LCD液晶显示模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
2.4单片机温控模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯第三章系统软件设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
3.1主程序流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
3.2系统软件设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
总结
第一章单片机温度控制系统方案及原理简介
1.1单片机温度控制系统方案
单片机温度控制系统是数控系统的一个简单应用。
在冶金、化工、建材、机械、食品、石油等各类工业中,广泛使用着加热炉、热处理炉、反应炉等,因此,温度是工业对象中一个主要的被控参数。
本单片机温度控制系统是以MCS-5l单片机为控制核心,其系统结构框图可表示为:
系统采用单闭环形式,其基本控制原理为:
将温度设定值和温度采样值同时送入控制电路部分,然后经过单片机运算得到输出控制量,输出控制量控制其他驱动电路,以此来对所要控制的对象进行温度控制,因此达到一定的温度。
图1-1硬件电路设计框图
1.2原理简介
本温度控制系统共有四个模块,分别是单片机控制系统,矩阵键盘电路,温度检测电路,液晶显示电路,其中以单片机控制系统为控制核心,如图1-1所示。
首先由温度检测电路对环境进行温度采集,本系统中检测电路中用的温度传感器是DS18B20,将所在环境温度检测出来,单片机读取温度数据,接着进行液晶显示。
矩阵键盘输入设定的数据,然后与实际温度比较,决定加热还是降温,并在液晶显示屏上显示相应的状态。
1.3系统总的原理图
见附1.
第二章系统硬件处理方案及原理
2.1单片机控制电路模块
根据系统要求分析,我们选用MCS-51系列的单片机来完成系统设计,下面对MCS-51系列的单片作简要介绍。
MCS-51单片机有4个I/O端口,公32根I/O线,4个端口都是准双向口。
每个口都包含一个锁存器,即专用寄存器P0~P3,一个输出驱动器和输入缓冲器。
为方便起见,我们把4个端口和其中的锁存器都统称P0~P3。
在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。
在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O口使用。
P0口:
可作为一般的I/O口用,但应用系统采用外部总线结构时,它分时作低8位地址和8位双向数据总线用。
P1口:
每一位均可独立作为I/O口。
P2口:
可作为一般I/O口用,但应用系统采用外部系统采用总线结构时,它分时作为高8位地址线。
P3口:
双功能口。
作为第一功能使用时同P1口,每一位均可独立作为I/O口。
另外,每一位均具有第二功能,每一位的两个功能不能同时使用。
图2-1单片控制电路原理图
单片机的外围电路有复位电路,晶振电路以及其他一些控制电路。
其他引脚功能:
1)主电源引脚VCC和VSS
温度控制系统设计课设VSS(40脚):
主电源+5V,正常操作的对EPROM编程及验证时均接+5V电源。
VSS(20脚):
接地。
2)XTAL1(19脚)和XTAL2(18脚):
接外部晶振的两个引脚。
3)RST/VPD、ALE、/PROG——、PSEN——控制信号引脚。
RST/VPD(9脚):
单片机复位/备用电源引脚。
刚接上电源时,其内部寄存器处于随机状态,在引脚上输入持续两个机器周期的高电平将使单片机复位。
VCC掉电期间,此引脚可接上备用电源,一旦芯片在使用中VCC电压突然下降或短电,能保护片内RAN中信息不丢失,使复电后能继续正常运行。
ALE、/PROG——(30脚):
当访问片外存储器时,ALE的输出用于锁存低字节地址信号。
即使不访问片外存储器,ALE端仍以不变的频率周期性地出现脉冲信号。
其频率为振荡器频率1/6。
因此,它可用作对外输出的时钟,或用于定时的目的。
应注意的是:
当访问片外数据存储器时,将跳过一个ALE脉冲;ALE端可以驱动8个LSET负载。
对含有EPROM的单片机,片内EPROM编程期间,此引脚用于输入编程脉冲(PRO—G—)。
PRO—G—(29脚):
输出访问片外程序存储器的读选通信号。
CPU在从片外程序存储器取指令(或常数)期间,每个机器周期两次有效。
每当访问片外存储器时,这两次有效的PRO—G—信号将不会出现。
该端同样可驱动8个LSTTL负载。
EA——/VPP(31脚):
当EA——输入端输入高电平时,CPU可访问片内程序存储器4KB的地址范围。
若PC值超出4KB地址时,将自动转向片外程序存储器。
当EA——输入低电平时,不论片内是否有程序存储器,则CPU只能访问片外程序存储器。
本系统直接将EA端接高电平。
2.2矩阵键盘模块键盘分为编码键盘和非编码键盘,键盘上闭合键的识别有专用的硬件编码器实现,并产生编码号或键值的称为编码键盘,如计算机键盘。
而靠软件编程来识别的键盘称为非编码键盘,在单片机组成的各种系统中,用的较多的是非编码键盘。
而非编码键盘又分为独立键盘和矩阵(又称行列式)键盘。
在本系统中,所需的案件要有12个,故所采用的方案就是矩阵键盘。
温度控制系统中3×4矩阵键盘(如图2-1),是将12个按键排成3行4列,第一行将每个按键的一段连接在一起构成行线,第一列将每个按键的另一端连接在一起构成列线,这样便一共有3行4列共7跟线,我们将这7跟线连接到单片机的7个I/O口上,通过程序扫描键盘就可检测12个键。
单片机检测是否有键被按下的依据是检测该键对应的I/O口是否为低电平。
矩阵键盘两端都与单片机I/O口相连,因此在检测时需认为通过单片机I/O口送出低电平。
检测时,先送一列为低电平,其余几列全为高电平(此时确定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电平(这时又确定了行数),则便可以确认当前被按下的键是哪一行哪一列的,用同样的方法送各列一次低电平,这就是矩阵键盘检测的原理和
方法。
图2-2矩阵键盘
2.3LCD液晶显示模块
温度控制系统选用的液晶显示屏HD44780。
各引脚功能如下:
1)主电源引脚VCC和VSS
VSS(引脚1):
电源地;
VCC(引脚2):
电源(+5V);
2)VEE(引脚3):
对比调整电压;
3)RS,R/W,E
RS(引脚4):
数据/命令选择端;
R/W(引脚5):
读写控制端;
E(引脚6):
使能端;
4)DB0-DB7(引脚7-14):
I/O端;
5)A和K
A(引脚14):
LCD背光源正极;
K引脚15):
LCD背光源负极;
1602液晶模块内部的控制器共有11条控制指令,如表下表:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF计数器地址
10
写数到CGRAM或DDRA)M
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光
标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
2.4温度检测模块
温度检测模块中检测温度的器件为温度传感器,选用DS18B20,连接电路如图2-2所示:
图2-2温度传感器电路
温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产
温度控制系统设计课设
的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。
对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。
了解其工作原理和应用可以拓宽您对单片机开发的思路。
DS18B20的主要特征:
1)全数字温度转换及输出。
2)先进的单总线数据通信。
3)最高12位分辨率,精度可达土0.5摄氏度。
4)12位分辨率时的最大工作周期为750毫秒。
5)可选择寄生工作方式。
6)检测温度范围为–55°C~+125°C(–67°F~+257°F)
7)内置EEPRO,M限温报警功能。
8)64位光刻ROM,内置产品序列号,方便多机挂接。
9)多样封装形式,适应不同硬件系统。
DS18B20引脚功能:
·GND电压地·DQ单数据总线·VDD电源电压
如图所示2-2,DS18B20只需要接到控制器(单片机)的一个I/O口上。
如要采用寄生工作方式,只要将VDD电源引脚与单总线并联即可。
但在程序设计中,寄生工作方式将会对总线的状态有一些特殊的要求。
本系统采用的是外接电源。
DS28B20芯片ROM指令表:
1)ReadROM(读ROM)[33H](方括号中的为16进制的命令字)
这个命令允许总线控制器读到DS18B20的64位ROM。
只有当总线上只存在一个DS18B20的时候才可以使用此指令,如果挂接不只一个,当通信时将会发生数据冲突。
2)MatchROM(指定匹配芯片)[55H]
这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才可以做出反应,其它芯片将等待下一次复位。
这条指令适应单芯片和多芯片挂接。
3)SkipROM(跳跃ROM指令)[CCH]
这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。
如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。
4)SearchROM(搜索芯片)[F0H]在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。
5)AlarmSearch(报警芯片搜索)[ECH]在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件
温度控制系统设计课设的芯片做出反应。
只要芯片不掉电,报警状态将被保持,直到再一次测得温度什达不到报警条件为止。
6)DS28B20芯片存储器操作指令表:
WriteScratchpad(向RAM中写数据)[4EH]
这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警
RAM之TH)和地址3(报警RAM之TL)。
写入过程中可以用复位信号中止写入。
7)ReadScratchpad(从RAM中读数据)[BEH]
此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。
芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。
8)CopyScratchpad(将RAM数据复制到EEPROM中)[48H]
此指令将RAM中的数据存入EEPRO中M,以使数据掉电不丢失。
此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,
来维持芯片工作。
9)ConvertT(温度转换)[44H]收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。
此
后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储
存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS,来维持芯片工作。
10)RecallEEPROM(将EEPROM中的报警值复制到RAM)[B8H]此指令将EEPROM中的报警值复制到RAM中的第3、4个字节里。
由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
另外,此指令将在芯片上电复位时将被自动执行。
这样RAM中的两个报警字节位将始终为EEPROM中数据的镜像。
注:
每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。
DS18B20的测温过程
由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
图2-3温度传感器DS18B20测温过程
第三章系统软件设计
3.1主程序
图2-4主程序流程图
3.2系统总程序:
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineActualTemp_worth9
#defineTempSet_worth9
#definerow_worth16
voiddentify_key(ucharkey);
voidget_temp(void);ucharkeyscan();
voidsolid_data(void);
ucharsk,temp2;//sk表示有键按下标志,temp2用来临时存储扫描值ucharcodetable[]="RealTemp:
";
ucharcodetable1[]="TempRset:
";
ucharcodetable2[]={0xdf,'C'};
ucharcodetable3[]="ADD";
ucharcodetable4[]="SUB";
uchara,a_low,b,t,t1,temp1,key,c;//t表示温度整数部分,t1表示温度小数部分,temp1为中间变量(P3)
floatt2,f_temp;
uinttemp;
ucharsg=0,made_temp=0,made_temp1=0;
LCD1602
的使能端
sbitlcdrs=P1^6;
LCD1602
的数据命令端
DS18B20
的DS端
sbitSIG=P1^5;
按键输入信号
sbitADD=P1^2;
sbitSUB=P1^3;
sbitex0_enter=P3^2;
ucharcodetablenum[]={0xc0,0xf9,0xa4,0xb0,0x99,//0~9
0x92,0x82,0xf8,0x80,0x90};
ucharcodetablenum2[]={0x30,0x31,0x32,0x33,0x34,//0~9的ASIIC
值
0x35,0x36,0x37,0x38,0x39};
/*****************************************************************
LCD1602液晶显示
*****************************************************************/
ucharnum=0;
voiddelay(intz)//延迟函数delay
{
uintx,y;
for(x=z;x>0;x--)for(y=110;y>0;y--);
}
voiddelay1(uinti)//延迟函数delay1
{
while(i>0)i--;
}
voidwrite_com(ucharcom)
{
lcdrs=0;
P0=com;
delay
(1);
lcden=1;
delay
(1);
lcden=0;
}
voidwrite_data(uchardate)
{
lcdrs=1;
P0=date;
delay
(1);
lcden=1;
delay
(1);
lcden=0;
}
voidinit_lcd()//LCD1602初始化函数
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
bitint_DS18B20(void)//DS18B20初始化函数
{
unsignedcharx=0;
uinti;
DQ=0;
i=103;
while(i>0)i--;
DQ=1;
i=4;
while(i>0)i--;
x=DQ;//延时片刻后,若x=0,则初始化成功;若x=1,则初始化失败
delay(20);
returnx;
}
//*************DS18B20读取一位数据函数
bittempreadbit(void)
{
uinti;
bitdat;
DQ=0;i++;
DQ=1;i++;i++;
dat=DQ;
i=8;while(i>0)i--;
return(dat);
//*************DS18B20读取一个字节函数ucharRead(void)//DS18B20读取一个字节{
unsignedchari=0;
unsignedcharj=0;
unsignedchardat=0;for(i=8;i>0;i--)
{
j=tempreadbit();dat=(j<<7)|(dat>>1);
}
return(dat);
}
//*************DS18B20写一个字节函数
Write(unsignedchardat)
{
uinti;
ucharj;
bittestb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)
{
DQ=0;
i++;i++;
DQ=1;
i=8;while(i>0)i--;
}else
{
DQ=0;i=8;while(i>0)i--;
DQ=1;
i++;i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 控制系统 设计