恒温箱说明说.docx

上传人:b****6 文档编号:5998490 上传时间:2023-01-02 格式:DOCX 页数:20 大小:200.01KB
下载 相关 举报
恒温箱说明说.docx_第1页
第1页 / 共20页
恒温箱说明说.docx_第2页
第2页 / 共20页
恒温箱说明说.docx_第3页
第3页 / 共20页
恒温箱说明说.docx_第4页
第4页 / 共20页
恒温箱说明说.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

恒温箱说明说.docx

《恒温箱说明说.docx》由会员分享,可在线阅读,更多相关《恒温箱说明说.docx(20页珍藏版)》请在冰豆网上搜索。

恒温箱说明说.docx

恒温箱说明说

 

测控技术课程设计

说明书

设计题目恒温控制系统的设计

姓名贺莲花1106054114米兰1106054110

陶成堂06054110张金晨1106054119

班级测控一班

专业测控技术与仪器

指导教师刘源赵金才董桂梅吴海云常若葵

完成日期2014年9月12日

提交日期2014年9月19日

目录

1概述……………………………………………………………………………………………1

2单片机人机接口系统的软件设计……………………………………………………………1

2.1系统组成…………………………………………………………………………………1

2.2基本要求…………………………………………………………………………………2

3温度测量模块的设计…………………………………………………………………………2

3.1DS18B20介绍………………………………………………………………2

3.2DS18B20的驱动程序…………………………………………………………4

4温度控制模块设计……………………………………………………8

4.1光电隔离控制电路的设计……………………………………………………8

4.2风扇PWM驱动/制冷片的控制以及程序设计………………………………………………9

5温度测量试验与分析……………………………………………………………10

5.1温度测量实验……………………………………………………………10

5.2数据处理与误差分析…………………………………………………………10

6温度控制试验与分析…………………………………………………………11

6.1升温…………………………………………………………………………………………11

6.2恒温…………………………………………………………………………………………11

7总结…………………………………………………………12

参考文献……………………………………………………………………X

附录…………………………………………………………………………X

 

1.概述

恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的产量和质量。

本设计是基于AT89C51单片机的恒温箱控制系统,系统分为硬件和软件两部分,其中硬件包括:

温度传感器、显示、控制和报警的设计;软件包括:

键盘管理程序设计、显示程序设计、控制程序设计和温度报警程序设计。

编写程序结合硬件进行调试,能够实现设置和调节初始温度值,进行数码管显示,当加热到设定值后立刻报警。

另外,本系统通过软件实现对按键误差、加热过冲的调整,以提高系统的安全性、可靠性和稳定性。

本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。

[关键词]单片机;温度传感器;恒温;控制;报警

 

TheDesignofRefrigeratorDoorShellShapingControlSystem

BasedonSiemensWINCC

Electronic Information Engineering WANG Feng

Abstract:

ThesystemmakesuseofthesinglechipAT89C51asthetemperaturecontrollingcenter,usesnumeralthermometerDS18B20whichtransmitsas1-wirewayasthetemperaturesensor,throughthepressedkey,thenumericalcodedemonstratedcompositeoftheman-machineinteractiveconnection,torealizesetandadjusttheinitialtemperaturevalue.Afterthesystemworks,thedigitaltubewilldemonstratethetemperaturevalue,whentemperaturearrivingtothesettingvalue,thebuzzerwillbeworkimmediately.Inaddition,thesystemthroughthesoftwareadjustingtothepressedkeyerror,andtheexcessivelyhutting.Alloftheseareinordertoenhancethesystem’ssecurity,reliabilityandstability.

Keywords:

DS18B20;MCU;Constanttemperaturecontrol;1-wiretransmission

 

2.单片机人机接口系统的软件设计

恒温控制系统是一种广泛用于工业、农业、医疗和科研项目的温度控制设备,它可以根据实际的工作需要实现升温、保温、降温等控制,从而实现物料的烘干和产品的老化等功能。

本课程设计采用数字式温度传感器DS18B20和半导体制冷片构成温度测量与加/降温系统,实现温度控制的智能化和自动化,系统的基本框图如下:

2.1系统组成

如图1所示,系统由温度检测电路、单片机系统和温度控制电路三部分组成。

其中,温度检测电路采用数字式温度传感器,温度控制电路采用场效应管驱动制冷片加热或者降温,单片机系统不仅能够完成温度信号的采集和控制信号的输出,而且还能够实时显示温度值,通过键盘实现温度值和工作方式的设定(详细内容见设计指导书)。

2.2基本要求

2.1温度测量精度:

±1℃;

2.2制冷片输出功率可调;

2.3测量温度值在数码管上显示出来;

2.4控制温度值可通过键盘设定,并在数码管上显示;

3.温度测量模块的设计

3.1DS18B20介绍

美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持"一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。

全部传感元件及转换电路集成在形如一只三极管的集成电路内。

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

现在,新一代的DS18B20体积更小、更经济、更灵活。

使你可以充分发挥“一线总线”的优点。

目前DS18B20批量采购价格仅10元左右。

3.1.1DS18B20的主要特征

(1)适应电压范围更宽,电压范围:

3.0~5.5V,在寄生电源方式下可由数据线供电;

(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;

(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;

(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;

(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;

(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;

(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;

(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力;

9.负压特性:

电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

3.1.2DS18B20的内部结构与外形

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的管脚排列如图1所示:

图1DS18B20引脚排列图

DS18B20引脚定义:

(1)GND为电源地;

(2)DQ为数字信号输入/输出端;

(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

3.1.3DS18B20的引脚及功能介绍

DS18B20的外形及TO-92封装引脚排列见左图,其引脚功能描述见表1,实测温度和数字输出的对应关系见表2.

表1DS18B20详细引脚功能描述

序号

名称

引脚功能描述

1

GND

地信号

2

DQ

数据输入/输出引脚。

开漏单总线接口引脚。

当被用着在寄生电源下,也可以向器件提供电源。

3

VDD

可选择的VDD引脚。

当工作于寄生电源时,此引脚必须接地。

 

表2温度值分辨率配置表

温度

数字输出(二进制)

数字输出(十六进制)

+125℃

0000011111010000

07D0H

+85℃

0000010101010000

0550H

+25.0625℃

0000000110010001

0191H

+10.125℃

0000000010100010

00A2h

+0.5℃

0000000000001000

0008H

0℃

0000000000000000

000H

-0.5℃

1111111111110000

FFF8H

-10.125℃

1111111101011110

FF5EH

-25.0625℃

1111111001101111

FF6FH

-55℃

1111110010010000

FC90H

3.1.4 DS18B20的使用方法

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

DS18B20的复位时序,见图3

图3DS18B20的复位时序图

置总线为低电平并保持至少480us,然后拉高电平,等待从端重新拉低电平作为响应,则总线复位完成。

DS18B20的读时序,见图4。

图4DS18B20的读时序图

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。

DS18B20在完成一个读时序过程,至少需要60us才能完成。

DS18B20的写时序,见图5。

图5DS18B20的写时序图

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

DS18B20在电路中的连接,见图6。

wire总线支持一主多从式结构,硬件上需外接上拉电阻。

当一方完成数据通信需要释放总线时,只需将总线置高点平即可;若需要获得总线进行通信时则要监视总线是否空闲,若空闲,则置低电平获得总线控制权。

图6DS18B20测温电路

 

3.1.5DS18B20工作原理

DS18B20测温原理如图2所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图2DS18B20测温原理框图

 

3.2DS18B20的驱动程序

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitDS=P2^2;//defineinterface

uinttemp;//variableoftemperature

ucharflag1;//signoftheresultpositiveornegative

sbitdula=P2^6;

sbitwela=P2^7;

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsignedcharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

0x87,0xff,0xef};

voiddelay(uintcount)//delay

{

uinti;

while(count)

{

i=200;

while(i>0)

i--;

count--;

}

}

voiddsreset(void)//sendresetandinitializationcommand

{

uinti;

DS=0;

i=103;

while(i>0)i--;

DS=1;

i=4;

while(i>0)i--;

}

bittmpreadbit(void)//readabit

{

uinti;

bitdat;

DS=0;i++;//i++fordelay

DS=1;i++;i++;

dat=DS;

i=8;while(i>0)i--;

return(dat);

}

uchartmpread(void)//readabytedate

{

uchari,j,dat;

dat=0;

for(i=1;i<=8;i++)

{

j=tmpreadbit();

dat=(j<<7)|(dat>>1);//读出的数据最低位在最前面,这样刚好一个字节在DAT里

}

return(dat);

}

voidtmpwritebyte(uchardat)//writeabytetods18b20

{

uinti;

ucharj;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb)//write1

{

DS=0;

i++;i++;

DS=1;

i=8;while(i>0)i--;

}

else

{

DS=0;//write0

i=8;while(i>0)i--;

DS=1;

i++;i++;

}

}

}

voidtmpchange(void)//DS18B20beginchange

{

dsreset();

delay

(1);

tmpwritebyte(0xcc);//addressalldriversonbus

tmpwritebyte(0x44);//initiatesasingletemperatureconversion

}

uinttmp()//getthetemperature

{

floattt;

uchara,b;

dsreset();

delay

(1);

tmpwritebyte(0xcc);

tmpwritebyte(0xbe);

a=tmpread();

b=tmpread();

temp=b;

temp<<=8;//twobytecomposeaintvariable

temp=temp|a;

tt=temp*0.0625;

temp=tt*10+0.5;

returntemp;

}

voidreadrom()//readtheserial

{

ucharsn1,sn2;

dsreset();

delay

(1);

tmpwritebyte(0x33);

sn1=tmpread();

sn2=tmpread();

}

 

voiddelay10ms()//delay

{

uchara,b;

for(a=10;a>0;a--)

for(b=60;b>0;b--);

}

voiddisplay(uinttemp)//显示程序

{

ucharA1,A2,A2t,A3,ser;

ser=temp/10;

SBUF=ser;

A1=temp/100;

A2t=temp%100;

A2=A2t/10;

A3=A2t%10;

dula=0;

P0=table[A1];//显示百位

dula=1;

dula=0;

wela=0;

P0=0x7e;

wela=1;

wela=0;

delay

(1);

dula=0;

P0=table1[A2];//显示十位

dula=1;

dula=0;

wela=0;

P0=0x7d;

wela=1;

wela=0;

delay

(1);

P0=table[A3];//显示个位

dula=1;

dula=0;

P0=0x7b;

wela=1;

wela=0;

delay

(1);

}

voidmain()

{

uchara;

do

{

tmpchange();

//delay(200);

for(a=10;a>0;a--)

{display(tmp());

}

}while

(1);

}

4.温度控制模块设计

4.1光电隔离控制电路的设计

光耦合器一般由三部分组成:

光的发射、光的接收及信号放大。

输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。

又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。

所以,

它在长线传输信息中作为终端隔离元件可以大大提高信噪比。

在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。

4.2风扇PWM驱动程序/制冷片的控制以及程序设计

sbitge=P2^0;

sbithe=P1^0;

voidmain()

{

uchara,key,i,j=0,t[]={1,1},s=0,s3,m,n;

he=1;

ge=1;

do

{

tmpchange();

display(tmp());

key=key_scan();/*当按下按键不松手时,程序会停在key_scan()子程序中;六个数码管的最右边

一个显示上次的数字,其他5个全灭,这是因为:

六个数字是动态显示的,每一时刻只能有一个显示,

又由于显示程序中最后点亮的是最右边的一个,所以其显示的数字保持到下一次显示前。

*/

if(key==11)j=!

j;

if(16!

=key&&j)

{

for(i=4;i<6;i++)

{

table_buffer[0+i]=table_buffer[1+i];

}

table_buffer[5]=table[key];//更新缓冲数组的最右边的值,即当前按下的键号。

s3=key*t[s];

if(key==10&&j)

{

table_buffer[4]=0x40;

table_buffer[5]=0x40;

}

s2=s2*10+s3;

s=s+1;

if(s==2)

{

s=0;

s2=(int)s2%10;

}

}

disp();

if(s1

{

if(s1>0)

{

he=0;

m=(int)((s2-s1)*s1/s*10);

n=(int)(s1/s2*0.01);

ge=0;

for(;m--;m>0);

ge=1;

for(;n--;n>0);

}

elseif(s1

{

bj=0;

}

else

{

he=0;

ge=0;

}

}

else

{

ge=1;

he=1;

}

}while

(1);

}

5.温度测量试验与分析

5.1温度测量实验

DS18B20测量值

29.4

31.5

33.6

36.5

38.7

40.5

42.5

44.0

46.7

玻璃温度计值

28.4

30.2

32.4

35.3

37.5

39.1

41.2

43.6

45.3

5.2数据处理与误差分析(最大的引用误差)

误差分别为,1.0、1.3、1.2、1.2、1.2、1.4、1.3、1.4、1.4

由误差分析可得温度计总是比DS18B20测量值要低,因此可以知道DS18B20要比温度计要灵敏且反应箱子内的温度及时,并且随着温度的升高,误差越来越大。

6.温度控制试验与分析

6.1升温

温度测量数值表

序号

1

2

3

4

5

6

7

8

9

系统测量值

29.3

33.2

35.4

37.6

39.5

41.7

43.6

44.3

45.2

时间

1min

2min

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1