烘箱温度测控系统的设计说明书.docx
《烘箱温度测控系统的设计说明书.docx》由会员分享,可在线阅读,更多相关《烘箱温度测控系统的设计说明书.docx(17页珍藏版)》请在冰豆网上搜索。
烘箱温度测控系统的设计说明书
测控技术课程设计
说明书
设计题目烘箱温度测控系统的设计
姓名
班级
学号
专业测控技术与仪器
指导教师
完成日期2011-12-19
提交日期2011-12-20
摘要
随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器。
为了更好地推广单片机在实际生活和生产中的应用,本文介绍一种应用AT89C51单片机设计的烘箱温度控制系统。
该烘箱温度系统采用温度传感器DS18B20通过按键设定值与实际值相比较进而进行温度的加热或制冷系统自动控制升温的操作,将温度稳定在所设定的温度值。
系统由温度检测电路、单片机系统和温度控制电路三部分组成。
其中,温度检测电路采用数字式温度传感器,温度控制电路采用场效应管驱动制冷片加热,单片机系统不仅能够完成温度信号的采集和控制信号的输出,而且还能够实时显示温度值,通过键盘实现温度值和工作方式的设定。
经实验表明该烘箱温度控制系统具有体积小、操作灵活、可靠性高、实用、成本低等特点具有一定的实际意义。
关键词:
单片机;温度传感器;温度控制;场效应管
ABSTRACT
Withthedevelopmentofelectronicproductsintelligenceandmicrominiaturized,SMChasbeenthepriorityforcontrollerinelectronicproductsresearchanddevelopment.InordertobetterpromoteSMCapplicationinreallifeandproduction,thispaperintroducescontrollingsystemofoventemperaturebasedonSCM—AT89C51.
Byapplyingtemperaturesensor—DS18B20,comparedsettingvaluewithactualvalue,itcancontrolwarmingupoperationanddestabilizethetemperatureintherangeofsettingvalue.Thesystemconsistsoftemperaturedetectingcircuit,whichusestemperaturesensor—DS18B20,SCMandcontrollingcircuit,whichdrivesrefrigerationfilmheatingbyusingMOSFET.TheSCMsystemsaccomplishestemperaturesignalcollectionsandcontrolmessageoutput,butalsobringaboutreal-timedisplayandtemperatureandmannerofworkingsettingthoughkeyboards.
Practiceindicatescontrollingsystemofoventemperatureissmaller,lighter,flexibleoperationandfunctional.
Keywords:
SCM;temperaturesensor;controllingtemperature;MOSFET
1.概述
1.1主要任务:
将温度控制在设定的温度值,设定范围为2°~98°,针对在生产和日常生活中温度智能化控制系统的实现。
1.2原始资料:
烘箱(恒温干燥箱)是一种广泛用于工业、农业、医疗和科研项目的温度控制设备,它可以根据实际的工作需要实现升温、保温、降温等控制,从而实现物料的烘干和产品的老化等功能。
本课程设计采用数字式温度传感器DS18B20和半导体制冷片构成温度测量与加/降温系统,实现温度控制的智能化和自动化。
1.3基本设计原则:
在该烘箱温度控制系统中,单片机作为核心部件进行检测控制,增强了设计的通用性,适时性。
在该烘箱温度控制系统中温度检测采用DS18B20温度传感器,它不仅具有较高的精度,而且适用电压宽。
温度控制分为升温和降温控制。
1.4设计所要完成的基本内容:
系统的基本框图如图1所示:
总体设计框图如图2所示
图2总体设计框图
2.单片机人机接口系统的软件设计
2.1软件设计主要包括键盘扫描程序
voidkeyscan(void)
{if(m%2==0)
{xianshi=key*10;}
elsexianshi=TT;
if(P22==0)
m++;
while(!
P22)
{display();}
if(P20==0)
key++;
while(!
P20)
{display();}
if(P21==0)
key--;
while(!
P21)
{display();}
}
2.2四位数码管动态显示程序
/********************************************************************
*名称:
Delay_1ms()
*功能:
延时子程序,延时时间为1ms*x
*输入:
x(延时一毫秒的个数)
*输出:
无
***********************************************************************/
voidDelay_1ms(uinti)//1ms延时
{
ucharx,j;
for(j=0;j
for(x=0;x<=148;x++);
}
display()
{
P0=table[xianshi/100];
P24=0;
P25=1;
P26=1;
P27=1;
Delay_1ms(5);
P0=table[xianshi%100/10]+0x80;
P25=0;
P24=1;
P26=1;
P27=1;
Delay_1ms(5);
P0=table[xianshi%10];
P25=1;
P24=1;
P26=0;
P27=1;
Delay_1ms(5);
//P0=table[key%10];
//P25=1;
//P24=1;
//P26=1;
//P27=0;
//Delay_1ms(5);
}
2.3任意浮点数显示程序
voidTime0_Init()
{
TMOD=0x11;
IE=0x82;
TH0=(65536-3000)/256;
TL0=(65536-3000)%256;
TR0=1;
}
voidTime0_Int()interrupt1
{
l++;
TH0=(65536-30000)/256;
TL0=(65536-30000)%256;
if(l>k)
{P10=1;}
if(l>T)
{P10=0;l=0;}
}
voidmain()
{uintftemp;
floattt;
T=100;
k=99;
Time0_Init();
while
(1)
{
keyscan();
//if(k!
=5)
if(tt<=key-0.5)
{TR0=0;P10=0;P11=0;P12=0;}
if((tt>key-0.5)&&(tt<=key-0.2))
{k=90;}
if((tt>key-0.2)&&(tt<=key-0.1))
k=70;
if(tt<=key&&tt>key-0.5)
{TR0=1;P11=0;P12=0;}
if(tt>=key)
{TR0=0;P11=1;P11=1;P12=1;}
Reset();
write_byte(jump_ROM);
write_byte(start);
Delay_1ms(5);
display();
Reset();
write_byte(jump_ROM);
write_byte(read_EEROM);
TMPL=read_byte();
TMPH=read_byte();
ftemp=TMPL&0x0f;
tt=ftemp/15.0*0.95;
temp=TMPL/16+TMPH*16;
if(temp>60)
temp=temp1;
temp1=temp;
tt+=temp;
TT=tt*10;
display();
}
}
3温度测量模块的设计
3.1DS18B20介绍
DS18B20温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的温度传感器,十分方便。
3.1.1DS18B20的特性:
DS18B20是美国DALLAS公司继DS1820之后推出的增强型单总线数字温度传感器,它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,这给用户带来了更方便的使用和更令人满意的效果。
其特点如下:
(1)单线接口:
仅需一根口线与单片机连接;
(2)由总线提供电源,也可用数据线供电,电压范围:
3.0~5.5V;
(3)测温范围为:
-55~+125℃,在-10~+85℃时,精度为0.5℃;
(4)可编程的分辨率为9~12位,对应的分辨率为0.5~0.0625℃;
(5)用户可编程的温度报警设置;
(6)12位分辨率时最多在750ms内把温度值转换为数字量。
3.1.2DS1820温度数据格式:
在DS1820中,转换温度值是以9位二进制形式表示的,而输出温度则是以16位符号扩展的二进制补码读数形式提供。
采用的办法是将低八位用补码表示,第九位以符号扩展形式扩展至其它七位。
3.1.3DS18B20的测温原理:
内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。
计数器设置为-55℃时的值,如果计数器到达0之前门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于-55℃。
同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。
如果门电路仍然未关闭,则重复以上过程。
温度转换所需时间不超过750ms,得到的温度值的位数因分辨率不同而不同
3.2DS18B20的驱动程序
总结:
传统的温度计反应速度慢、读数麻烦、测量精度不高、误差大。
利用集成温度传感器DS18B20设计并制作了一款基于AT89C51的4位数码管显示的数字温度计,其电路简单,软硬件结构模块化,易于实现。
其中温度传感器DS18B20,它集温度测量、A/D转换于一体,其测量范围宽(-55℃~125℃),DS18B20是一款具有单总线结构的器件。
由DS18B20组建的温度测量单元体积小,便于携带、安装。
同时,DS18B20的输出为数字量,可以直接与单片机连接,无需后级A/D转换,控制简单。
4温度控制模块设计
4.1光电隔离控制电路的设计
图光电隔离控制电路图
4.2风扇PWM驱动程序
4.3制冷片的控制以及程序设计
/********************************************************************
*名称:
Reset()
*功能:
复位DS18B20
*输入:
无
*输出:
无
***********************************************************************/
voidReset(void)
{
DQ=0;
delayus(29);
DQ=1;
delayus(28);
}
/********************************************************************
*名称:
read_bit()
*功能:
从DS18B20读一个位值
*输入:
无
*输出:
从DS18B20读出的一个位值
***********************************************************************/
ucharread_bit(void)
{
uchari;
DQ=0;
DQ=1;
for(i=0;i<3;i++);
return(DQ);
}
/********************************************************************
*名称:
write_bit()
*功能:
向DS18B20写一位
*输入:
bitval(要对DS18B20写入的位值)
*输出:
无
***********************************************************************/
voidwrite_bit(ucharbitval)
{
DQ=0;if(bitval==1)
DQ=1;
delayus(5);
DQ=1;
}
/********************************************************************
*名称:
read_byte()
*功能:
从DS18B20读一个字节
*输入:
无
*输出:
从DS18B20读到的值
***********************************************************************/
ucharread_byte(void)
{
uchari,m,receive_data;
m=1;
receive_data=0;
for(i=0;i<8;i++)
{
if(read_bit())
{
receive_data=receive_data+(m<
}
delayus(6);
}
return(receive_data);
}
/********************************************************************
*名称:
write_byte()
*功能:
向DS18B20写一个字节
*输入:
val(要对DS18B20写入的命令值)
*输出:
无
***********************************************************************/
voidwrite_byte(ucharval)
{
uchari,temp;
for(i=0;i<8;i++)
{
temp=val>>i;
temp=temp&0x01;
write_bit(temp);
delayus(5);
}
}
5.温度测量试验与分析
表1温度测量值
5.1温度测量实验
DS18B20测量值
玻璃温度计值
5.2数据处理与误差分析(最大的引用误差)
从表格数据可以看出,温度显示正常,误差较小,输出数据平滑,跳动不大,频率响应一般,基本符合测试要求。
该系统为一温度控制系统,产生误差的方面主要有:
温度箱不保温以致于箱内外有温差;DS18B20与温度计之间有间距产生的误差;DS18B20与温度计本身与实际温度不符的物理误差;人为读数不准确产生的误差,等等。
引用误差=绝对误差/量程(或测量范围);引用误差可以用来度量器件的精确度。
如:
一个测温计量程为0-100℃。
水温实际为50℃是,测温计为49℃。
则:
相对误差=1/50*100%=2%.引用误差=1/100*100%=1%如果恰好在50摄氏度时,是这个测温计的最大误差,则这个表的精度就是1%。
总结:
数字温度传感器DS18B20相对误差比水银温度计小很多,精度较高,在实际工控应用中,数字温度传感器可以更精确地控制温度在所需要的范围内造成的误差很小,广泛应用。
6.温度控制试验与分析
6.1升温
序号
1
2
3
4
5
6
7
8
9
系统测量值
时间
升温曲线与分析
6.2降温
序号
1
2
3
4
5
6
7
8
9
系统测量值
时间
升温曲线与分析
6.3恒温
控制温度值:
时间:
分钟
时间
10
20
30
40
50
60
70
80
90
系统测量值
分析:
温度变化曲线、控制精度
7.总结
在硬件调试过程中,焊接电路较顺利,但是接在烘箱上实际调试时风扇不转。
后查证是在烘箱制作中,不小心用胶枪把风扇粘住以致其不能转动。
在加热过程中,为了避免加热速度过快,采用PWM调制R0口的输出,使得加热片加热至温度设定值时,放慢加热速度,使温度稳定。
为保护加热片,在调试期间,使用示波器模拟加热片工作过程。
由于使用定时器进行PWM调制,使得DS18B20在温度转换时不能等待转换,导致转换结果出错,使温度发生突变。
【参考文献】
[1]徐亚飞.温箱温度PID与预测控制[J].武汉理工大学学报(交通科学与工程版)2004(4):
56-58.
[2]胡基贵.基于数值模拟的等温挤压研究[D].湖南大学2007(3):
27-29.
[3]刘长勇,叶希梅.基于DS18B20的温度测量装置的设计[J].鲁东大学学报(自然科学版)2009(3):
88-89.
[4]王海燕,高之圣.基于数字温度传感器DS18B20的智能温度控制器的设计[J].科技信息(科学教研)2007(13):
45-49.
[5]徐文进.智能温度传感器DS18B20在多路测温中的应用[J].现代电子技术2004(22):
189-191.