当前位置:首页 >> 机械/仪表 >>

恒温箱说明说


测控技术课程设计 说明书
设计题目 姓 名 恒温控制系统的设计 贺莲花 1106054114 米兰 1106054110 陶成堂 06054110 张金晨 1106054119 班 专 级 业 测控一班 测控技术与仪器 刘源 赵金才 董桂梅 吴海云 常若葵 2014 年 9 月 12 日 2014 年 9 月 19 日

指导教师 完成日期 提交日期



1

目 录 1 2 概述???????????????????????????????????1 单片机人机接口系统的软件设计???????????????????????1

2.1 系统组成??????????????????????????????? 1 2.2 基本要求??????????????????????????????? 2 3 温度测量模块的设计????????????????????????????2

3.1 DS18B20 介绍???????????????????????? 2 3.2 DS18B20 的驱动程序?????????????????????? 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 总 结 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 2

参考文献??????????????????????????X 附录????????????????????????????X

2

1.概述
恒温控制在工业生产过程中举足轻重, 温度的控制直接影响着工业生产的产 量和质量。本设计是基于 AT89C51 单片机的恒温箱控制系统,系统分为硬件和软 件两部分,其中硬件包括:温度传感器、显示、控制和报警的设计;软件包括: 键盘管理程序设计、显示程序设计、控制程序设计和温度报警程序设计。编写程 序结合硬件进行调试,能够实现设置和调节初始温度值,进行数码管显示,当加 热到设定值后立刻报警。另外,本系统通过软件实现对按键误差、加热过冲的调 整,以提高系统的安全性、可靠性和稳定性。本设计从实际应用出发选取了体积 小、 精度相对高的数字式温度传感元件 DS18B20 作为温度采集器, 单片机 AT89C51 作为主控芯片,数码管作为显示输出,实现了对温度的实时测量与恒定控制。 [关键词] 单片机;温度传感器;恒温;控制;报警

1

The Design of Refrigerator Door Shell Shaping Control System Based on Siemens WINCC
Electronic Information Engineering WANG Feng Abstract: The system makes use of the single chip AT89C51 as the temperature controlling center, uses numeral thermometer DS18B20 which transmits as 1-wire way as the temperature sensor, through the pressed key, the numerical code demonstrated composite of the man-machine interactive connection ,to realize set and adjust the initial temperature value. After the system works, the digital tube will demonstrate the temperature value, when temperature arriving to the setting value, the buzzer will be work immediately. In addition, the system through the software adjusting to the pressed key error, and the excessively hutting. All of these are in order to enhance the system’s security, reliability and stability. Keywords: DS18B20;MCU;Constant temperature control; 1-wire transmission

2

2.单片机人机接口系统的软件设计
恒温控制系统是一种广泛用于工业、农业、医疗和科研项目的温度控制设备,它 可以根据实际的工作需要实现升温、保温、降温等控制,从而实现物料的烘干和 产品的老化等功能。 本课程设计采用数字式温度传感器 DS18B20 和半导体制冷片 构成温度测量与加/降温系统,实现温度控制的智能化和自动化,系统的基本框 图如下:

温度显示





单 片 机 系 统

DS18B20 风扇控制电路 风 扇

温控箱
制冷片

温度控制电路 LU 路

图1

恒温控制系统框图

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

2.2

基本要求

2.1 温度测量精度:±1℃; 2.2 制冷片输出功率可调; 2.3 测量温度值在数码管上显示出来;

3

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

3. 温度测量模块的设计
3.1 DS18B20 介绍

美国 Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一 线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部 传感元件及转换电路集成在形如一只三极管的集成电路内。 一线总线独特而且经 济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 现在,新一代的 DS18B20 体积更小、更经济、更灵活。使你可以充分发挥“一线 总线”的优点。目前 DS18B20 批量采购价格仅 10 元左右。

3.1.1

DS18B20 的主要特征

(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 校验码,具有极强的抗干扰纠错能力;
4

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

3.1.2

DS18B20 的内部结构与外形

DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥 发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列如图 1 所示:

图1 DS18B20 引脚定义: (1) GND 为电源地;

DS18B20 引脚排列图

(2) DQ 为数字信号输入/输出端; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地) 。

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

5

表1 序 号 1 2 3 名称 GND DQ VDD

DS18B20 详细引脚功能描述 引脚功能描述 地信号

数据输入/输出引脚。开漏单总线接口引脚。当被用着 在寄生电源下,也可以向器件提供电源。 可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须 接地。

表2

温度值分辨率配置表 数字输出(二进制) 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0001 0000 0000 1010 0010 0000 0000 0000 1000 0000 0000 0000 0000 1111 1111 1111 0000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 数字输出(十六进制) 07D0H 0550H 0191H 00A2h 0008H 000H FFF8H FF5EH FF6FH FC90H

温度 +125℃ +85℃ +25.0625℃ +10.125℃ +0.5℃ 0℃ -0.5℃ -10.125℃ -25.0625℃ -55℃

6

3.1.4

DS18B20 的使用方法

由于 DS18B20 采用的是 1-Wire 总线协议方式,即在一根数据线实现数据 的双向传输,而对 AT89S51 单片机来说,硬件上并不支持单总线协议,因此,我 们必须采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问。 由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格 的时序要求。DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整 性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都 是将主机作为主设备, 单总线器件作为从设备。而每一次命令和数据的传输都是 从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后, 主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20 的复位时序,见图 3

图 3 DS18B20 的复位时序图 置总线为低电平并保持至少 480us,然后拉高电平,等待从端重新拉低电平作为 响应,则总线复位完成。 DS18B20 的读时序,见图 4。

图 4 DS18B20 的读时序图 对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。 对于 DS18B20 的读时 隙是从主机把单总线拉低之后,在 15 秒之内就得释放单总线,以让 DS18B20 把 数据传输到单总线上。DS18B20 在完成一个读时序过程,至少需要 60us 才能完 成。

7

DS18B20 的写时序 ,见图 5。

图 5 DS18B20 的写时序图 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程。对于 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线要被拉低至少 60us, 保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的“0”电平, 当要写 1 时序时,单总线被拉低之后,在 15us 之内就得释放单总线。 DS18B20 在电路中的连接,见图 6。 wire 总线支持一主多从式结构,硬件上需外接上拉电阻。当一方完成数据通信 需要释放总线时, 只需将总线置高点平即可;若需要获得总线进行通信时则要监 视总线是否空闲,若空闲,则置低电平获得总线控制权。
VC C

R1 4 . 7K IC 2 VC C DQ GND DS18 B 20 3 2 1 P1. 0

图 6 DS18B20 测温电路

3.1.5

DS18B20 工作原理

DS18B20 测温原理如图 2 所示。图中低温度系数晶振的振荡频率受温度影响很 小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其 振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄 存器被预置在-55℃ 所对应的一个基数值。 计数器 1 对低温度系数晶振产生的脉
8

冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1, 计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉 冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累 加,此时温度寄存器中的数值即为所测温度。图 2 中的斜率累加器用于补偿和 修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。
斜率累加器 预置 比较 LSB 置位/清除 低温度系数晶振 计数器 1 预置

=0

加1

温度寄存器

高温度系数晶振

计数器 2

=0

停止

图 2 DS18B20 测温原理框图

3.2 DS18B20 的驱动程序
#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit DS=P2^2; uint temp; uchar flag1; sbit dula=P2^6; sbit wela=P2^7; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
9

//define interface // variable of temperature // sign of the result positive or negative

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef};

void delay(uint count) { uint i; while(count) { i=200; while(i>0) i--; count--; } }

//delay

void dsreset(void) { uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--; }

//send reset and initialization command

bit tmpreadbit(void)

//read a bit

10

{ uint i; bit dat; DS=0;i++; DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat); } //i++ for delay

uchar tmpread(void) { uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit();

//read a byte date

dat=(j<<7)|(dat>>1); 节在 DAT 里 } return(dat); }

//读出的数据最低位在最前面,这样刚好一个字

void tmpwritebyte(uchar dat) { uint i; uchar j; bit testb; for(j=1;j<=8;j++)

//write a byte to ds18b20

11

{ testb=dat&0x01; dat=dat>>1; if(testb) { DS=0; i++;i++; DS=1; i=8;while(i>0)i--; } else { DS=0; //write 0 //write 1

i=8;while(i>0)i--; DS=1; i++;i++; }

} }

void tmpchange(void) { dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0x44); }

//DS18B20 begin change

// address all drivers on bus // initiates a single temperature conversion

12

uint tmp() { float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp<<=8; temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp; }

//get the temperature

//two byte

compose a int variable

void readrom() { uchar sn1,sn2; dsreset(); delay(1); tmpwritebyte(0x33); sn1=tmpread(); sn2=tmpread(); }

//read the serial

13

void delay10ms() { uchar a,b; for(a=10;a>0;a--) for(b=60;b>0;b--); }

//delay

void display(uint temp) { uchar A1,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]; //显示十位

14

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); }

void main() { uchar a; do { tmpchange(); // delay(200); for(a=10;a>0;a--) { } display(tmp());

15

} }

while(1);

4.温度控制模块设计
4.1 光电隔离控制电路的设计
光耦合器一般由三部分组成:光的发射、光的接收及信号放大。 输入的电信号驱动发光二极管(LED) ,使之发出一定波长的光,被光探测器接收 而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而 起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输 具有单向性等特点, 因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器 的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以, 它在长线传输信息中作为终端隔离元件可以大大提高信噪比。 在计算机数字通信 及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。

4.2

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

sbit ge=P2^0; sbit he=P1^0; void main() { uchar a,key,i,j=0,t[]={1,1},s=0,s3,m,n; he=1; ge=1; do {
16

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) {

17

s=0; s2=(int)s2%10; } } disp(); if(s1<s2) { 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); } else if(s1<s2) { bj=0; } else {

he=0; ge=0; } } else

18

{ ge=1; he=1; } } while(1);

}

5. 温度测量试验与分析
5.1 温度测量实验
DS18B20 测量值 玻璃温度计值 29.4 28.4 31.5 30.2 33.6 32.4 36.5 35.3 38.7 37.5 40.5 39.1 42.5 41.2 44.0 43.6 46.7 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 33.2 3 35.4 4 37.6 5 39.5 6 41.7 7 43.6 8 44.3 9 45.2

系 统 测 量 29.3 值 时间 1min

2min

3min

4min
19

5min

6min

7min

8min

9min

升温曲线与分析

由折线图可看出,温度上升幅度随着温度的升高逐渐减慢,原因:制冷板制冷的 一面温度相对太低无法及时的升高,导致散热的一面温度不能升得很高。恒温箱 密封不够好,有热量散出,箱内温度越高,散出的热量越多,芯片的工作效率维 持在一定的数值上,不能持续的升高温度。

6.3 恒温
表3 温度控制性能数据表 31 2 31.4 3 32 4 31.3 时间:分钟 5 30.8 6 30.5 7 31 8 31 9 31.3

控制温度值: 时间 1

系 统 测 量 31 值

20

分析:温度变化曲线、控制精度 由上图可知,恒温箱的温度始终在 31 度上下徘徊当温度升高时,恒温箱停止对 箱子加热,则恒温箱由于散热温度下降,当温度下降时,恒温箱芯片开始工作加 热,使恒温箱重新回到 31 度。 由于密封性和元器件精度原因,误差较大。

7.总结
恒温箱的制作在于团队协作,各尽其职,各展其能,各施其才。 专业知识方面有很大的不足,大家也是在制作中学习,在制作中进步, 我们不能在软件编程方面独树一帜,但在焊接,组装,排版方面也是尽善尽美。

21

参 考 文 献
[1] 《单片微型计算机原理及应用》 出版社. [2] 《单片机外围电路设计》 社 [3] 《基于单片机 8051 的嵌入式开发指南》 2003.胡大可等. [4] 《单片机应用系统开发实例导航》 民邮电出版社 求是科技 靳达 编著 人 2003 年 10 月 电子工业出版社, 北京: 北京电子工业出版 西安: 西安电子科技大学

[5] 《51 系列单片机高级实例开发指南(附 CD-ROM 光盘一张) 》李 军 等编著 北京航空航天大学出版社 2004 年 06 月

22


相关文章:
课程设计说明书-恒温箱
课程设计说明书-恒温箱_信息与通信_工程科技_专业资料。在本设计中,通过对恒温系统温度的检测与变送传到单片机,与给定值进行比较,单片机对数据进行处理,当温度达到报...
恒温箱操作说明
恒温金属浴操作指南 4页 1财富值 低温恒温槽操作说明书 2页 1财富值 恒温恒湿...蓄电池恒温箱 27页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问...
恒温箱控制器的课程设计说明书
恒温箱控制器的课程设计说明书_工学_高等教育_教育专区。恒温控制在工业生产过程中举足轻重,温度的控制直接影响着工业生产的产量和质量。本设计是基于AT89C51单片机...
恒温恒湿箱使用说明
YH-40B 型标 准恒温恒湿养护箱 使用说明书 YH-40B 型标准恒温恒湿养护箱概述: (箱内传感器上的白色塑料盒内要加满水、不可断水) 是根据国家 GB1345-99《...
恒温恒湿机操作说明书
恒温恒湿机操作说明书_机械/仪表_工程科技_专业资料。恒温恒湿机使用说明和操作...TEIM 300恒温恒湿箱操作... 23页 2下载券 开利SL1600F-TH2恒温恒湿... ...
飞利浦恒温吹风机说明说中英文
飞利浦恒温吹风机说明说中英文_英语学习_外语学习_教育专区。飞利浦恒温吹风机说明说中英文 Introduction The unique Thermoflow System This new Philips beauty hair...
制冷加热两用恒温箱使用说明书
制冷加热两用恒温箱使用说明书_建筑/土木_工程科技_专业资料。制冷加热两用恒温箱使用说明书Tianjin King-ber Scientific and Technical Co., Ltd, China AT制冷/ ...
恒温电热板说明书
恒温电热板说明书_工学_高等教育_教育专区。用途恒温电热板可广泛用于农业、林业、环保、地质、化工、食品等部门以及高等院校、科研部门对样品进行加热、烘干、消解...
半导体技术在小型恒温箱的应用设计说明书
半导体技术在小型恒温箱的应用设计说明书_信息与通信_工程科技_专业资料。半导体技术...本设计运用半导体芯片制作了小型恒温 箱,达到箱体恒定温度的目的。 二、国内外...
恒温龙头说明书_图文
恒温龙头说明书 一 技术参数1,操作压力:0.05Mpa-0.5Mpa 2,推荐压力:0.1Mpa-0.5Mpa 3,冷水供给温度:5℃-29℃ 4,热水供给温度:55℃-85℃ 5,出水温度...
更多相关标签: