恒温箱的设计Word文档下载推荐.docx

上传人:b****5 文档编号:19382857 上传时间:2023-01-05 格式:DOCX 页数:21 大小:938.48KB
下载 相关 举报
恒温箱的设计Word文档下载推荐.docx_第1页
第1页 / 共21页
恒温箱的设计Word文档下载推荐.docx_第2页
第2页 / 共21页
恒温箱的设计Word文档下载推荐.docx_第3页
第3页 / 共21页
恒温箱的设计Word文档下载推荐.docx_第4页
第4页 / 共21页
恒温箱的设计Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

恒温箱的设计Word文档下载推荐.docx

《恒温箱的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《恒温箱的设计Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

恒温箱的设计Word文档下载推荐.docx

而在方案二中,应用的是测量温度的专用芯片,避免了上述的一些问题,而且应用方案二的芯片使测量的灵敏度增加不少。

b.在方案一中,热电偶测量出来的信号是电流信号,电流信号适合远距离传输,而到单片机的距离不大,电流信号容易受外界的干扰而影响了测量信号,导致测量的误差增加,就算可以用其他方法消除干扰信号,也麻烦。

而在方案二中,测量出来的是电压信号,能直接输入单片机,方便而且准确,不容易受外界干扰。

c.在方案一中,需要进行电流——电压的转换,在经过A/D转换,在经过标准化处理才能的到标准的数字电压向输入单片机,而方案二中却可以直接输入。

综上所述:

方案二比方案一有更大的优越性,而且方案二只用一个芯片就可以达到目的,而方案一却要经过多个步骤,从经济角度看,方案二更加经济实惠,且使用性强。

因此这个设计决定起用方案二来进行综合设计。

3系统硬件设计

3.1温度采集模块设计

3.1.1数字温控芯片DS18B20介绍

在本设计中,选用的是温度测量的专用芯片DS18B20。

DS18B20、DS1822“一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-50℃~+125℃,在-10℃~+85℃范围内,精度为±

0.5℃。

DS1822的精度较差为±

2℃。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

新一代产品更便宜,体积更小。

DS18B20、DS1822的特性DS18B20可以程序设定9~12位的分辨率,精度为±

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

省略可存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±

2℃,适用于对性能要求不高,成本控制严格的应用,是经济型产品。

3.1.2DS18B20的内部结构

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

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

DS18B20的内部结构如下图所示。

图3.1DS18B20的内部结构

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。

64位光刻ROM的排列是:

开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校检码(CRC=X8+X5+X4+1)。

光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:

用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

表3.1

bit7bit6bit5bit4bit3bit2bit1bit0

2^3

2^2

2^1

2^0

2^(-1)

2^(-2)

2^(-3)

2^(-4)

bit15bit14bit13bit12bit11bit10bit9bit8

S

2^6

2^5

2^4

这是12位转化后得到的12位数据,存储在18B20的两个比特的RAM中,二进制中的前面5位符号,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;

如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度.

例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625的数字输出为FF6FH,-55℃的数字输出为FC90H.

3.1.3DS18B20的外形及引脚说明

外形如图3.1.2所示。

图3.2DS18B20的外形与引脚图

1(GND):

2(DQ):

单线运用的数据输入输出引脚

3(VDD):

可选的电源引脚

实际电路图:

图3.3DS18B20的外形

3.1.4DS18B20的特性及工作原理

DS18B20可以程序设定9~12位的分辨率,精度为±

分辨率设定,及用户设定的报警温度,存储在EEPROM,掉电后依然保存。

DS18B20的性能是新一代产品中最好的!

性能价格比也非常出色!

DS1822与DS18B20软件兼容,是DS1820的简化版本,省略了存储用户定义报警温度,分辨率参数的EEPROM,精度降低为±

适用于对性能要求不高,成本控制严格的应用,是经济型产品。

DS18B20工作原理:

DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。

图3.4DS18B20工作流程图

图3.3

(2)DS18B20读写时序图

3.2预置数

输入预置数由两个十进制拨码开关来完成,如图7。

每一个拨码开关有四位,由0000到1111,取其中的0000到1010就可以实现十进制中0到10的设定,两个就可以构成两位的输入,就可以实现0到100的置数。

3.2.1拨码盘介绍

由于BCD拨码盘方便、直观、实用、易于操作等优点,被广泛应用于参数设定的监测仪表,机械机床等设备上,具有很大的应用空间。

图3.2.1为拨码盘的内部原理图,1、2、4、8四个端子为数据端,com为公共端,当拨码盘窗口显示的数值不为零时,其数据线将有一位或几位与com端接通。

例如:

当拨码盘输出为5时,1、4与com端接通。

图3.4BCD拨码盘内部原理

读拨码盘流程图:

图3.7读拨码盘流程图

实际电路原理图:

图3.8实际电路原理图

3.2.2时钟

时钟电路用于产生单片机工作时所需的时钟信号。

单片机本身就是一个复杂的同步时序电路,为保证同步工作方式的实现,单片机应该在唯一的时钟信号控制下工作,严格按照时序执行指令进行工作,而时序所研究的是指令执行中各个信号的关系。

时钟是单片机的心脏,单片机的各功能部件的运行都是以时钟频率为基础,有条不紊地一拍一拍地工作。

因此,常用的时钟电路有两种方式,一种是内部时钟方式,一种是外部时钟方式。

单片机内部有一个用于构成振荡器的高增益反相放大器,该增益反相放大器的输入端为X1,输出引脚为X2。

着两个引脚跨接晶振和微调电阻,就构成一个稳定的自激振荡器。

图3.9自激振荡器

3.2.3复位电路

本设计用的是手动复位电路中的按键电平复位电路。

通过RST端经电阻与电源Vcc接通而实现。

如下图所示。

图3.10按键电平复位电路

3.2.4LCD显示

单片机对数据进行处理后通过LCD进行显示。

LCD各管脚如下图所示,接单片机的P0口和P2口。

图3.111602液晶电路

3.2.5加热电路

下图电路供应电源及加热电路驱动

图3.12整流电路图

图3.135V与12V电源

图3.14加热驱动电路

交流220V电压通过整流、滤波后得到一个标准的直流电压,此时,二极管无法导通。

当单片机把温度信号读进去后,与给定值进行比较,当偏差存在的时候,单片机通过34口输出一个脉冲,出来后进行信号磁隔离,MOSFET控制电压,驱动IGBT,使加热回路导通,这样,箱内温度就得到增加。

此时单片机继续从温度检测芯片那里读数据,加热到当偏差为零时,脉冲变低,加热回路停止工作。

3.2.6IGBT管介绍

IGBT(绝缘栅双极晶体管)作为新型电力半导体场控自关断器件,集功率MOSFET的高速性能与双极性器件的低电阻于一体,具有输入阻抗高,电压控制功耗低,控制电路简单,耐高压,承受电流大等特性,在各种电力变换中获得极广泛的应用。

4PID控制

4.1PID控制原理

通过输入通道将温度传感器DS18B20采集到的被控对象当前温度转变为数字量并输入到单片机中,单片机求出输入的当前温度值与设定值的偏差,并根据该偏差进行PID运算,最后,根据PID运算的结果由单片机输出控制数字信号经过磁隔离,经驱动电路控制晶闸管整流电路,控制恒温箱加热。

本设计分两个阶段:

(1)自由升温阶段控制.在这个阶段,希望升温越快越好.所以,控制上只要让电热丝以最大的功率加热也就是单片机输出脉冲的最大值.

在这个过程中,不断测温,当预设温度与实际测量的温度之差小于等于10度时进入控温阶段.

(2)控温阶段.恒温箱这个控制对象属于带纯滞后的惯性环节,所以采用PID控制.根据给定的参数设置.编写增量式PID算法子程序等.

4.2PID控制系统框图

图4.1PID控制系统框图

4.3PID算法

增量式算法中,输出量与执行的变化量相对应,即是前后两次采样所计算的位置差值,其算式为:

△u(n)=u(n)-u(n-1)在此就不详细板书了,详细式子请见附录.

a.中断子程序流程如下图所示,它的作用是判断是否进入控温阶段,若已进入控温阶段,则调用PID算法子程序,否则输出最大脉冲,使晶闸管整流器以全功率加热.

图4.2中断子程序流程图

b.增量式PID算法的程序流程图如下图所示,计算△u(n)时只需要现时刻以及以前的两个偏差值e(n)、e(n-1)、e(n-2),初始化程序置初值e(n-1)=e(n-2)=0,由中断服务对过程变量进行采样,并根据参数计算出△u(n).

图4.3PID算法子程序

5软件设计

5.1编程平台简介

KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。

除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3还提供了一个配置向导功能,加速了启动代码和配置文件的生成。

此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。

uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。

KeiluVision系列是一个非常优秀的编译器,受到广大单片机设计者的广泛使用。

其主要特点如下:

a.支持汇编语言、C51语言等多种单片机及设计语言;

b.可视化的文件管理,界面友好;

c.支持丰富的产品线,除了51及其兼容内核的单片机外,还新增了对ARM内核产品的支持;

d.具有完善的编译链接工具;

e.具备丰富的仿真调试功能,可以仿真串口、并口、A/D、D/A、定时器/计数器以及中断等资源,同时也可以和外部仿真器联合进行在线调试

f.支持在一个工作空间中进行多项目的程序设计;

g.支持多级代码优化。

5.2程序流程图设计

图5.1程序流程图

5.3控制系统仿真调试

系统控制程序编写好以后,要进行单片机控制系统的仿真调试,以验证程序的正误,确保系统的安全稳定运行。

用Proteus的isis软件进行仿真,具体步骤如下:

1进入仿真环境并加载程序

图5.2仿真环境和加载程序界面

2运行程序且对状态进行监控

系统运行功能检测。

上电运行时界面如下图所示:

温度测量系统正常,LCD正常显示。

图5.3验证功能状态图一

图5.4验证功能状态图之二

经ISIS仿真,数码拨盘正常。

6总结体会

在这次的课程设计中我学到了许多东西。

整个做设计的过程是训练我独立进行科学研究的过程。

按照老师给予我们的题目及其要求,可以使我们了解科学研究的过程,掌握如何收集、整理和利用材料;

如何观察、如何调查、作样本分析;

如何利用图书馆,检索文献资料;

如何操作文本及其它一些软件等方法。

小学期的课程设计是学习如何进行科学研究的一个极好的机会,因为它不仅有教师的指导与传授,可以减少摸索中的一些失误,少走弯路,而且直接参与和亲身体验了科学研究工作的全过程及其各环节,是一次系统的、全面的实践机会。

这种课程设计是我们在校期间的一种自己动手的实践性操作,是对我们所学知识的一种全面检验,是我们基本知识、基本理论和基本技能掌握与提高程度的一次总测试,这是我课程设计的第一个目的。

在我们平时的学习期间,我们所学的知识都是书本上的一些不大灵活的东西,而且学习期间的这种考核是单科进行,主要是考查我们对本门学科所学知识的记忆程度和理解程度。

但我认为这种实践性课程设计则不同,它不是单一地对我们进行某一学科已学知识的考核,而是着重考查我们运用所学知识对某一问题进行探讨和研究的能力。

做好一个设计,既要系统地掌握和运用专业知识,还要有较宽的知识面并有一定的逻辑思维能力和写作功底。

这就要求我们既要具备良好的专业知识,又要有深厚的基础课和公共课知识。

整个设计的过程,同时也是专业知识的学习过程,而且是更生动、更切实、更深入的专业知识的学习。

首先,一个设计是结合科研课题,把学过的专业知识运用于实际,在理论和实际结合过程中进一步消化、加深和巩固所学的专业知识,并把所学的专业知识转化为分析和解决问题的能力。

其次,在搜集材料、调查研究、接触实际的过程中,既可以印证学过的书本知识,又可以学到许多课堂和书本里学不到的活生生的新知识。

此外,学生在这种自己动手的设计中,对所学专业的某一侧面和专题作了较为深入的分析。

在此我感谢文其知老师对我的帮助和鼓励!

7致谢

两个星期的课程设计即将结束。

在本次设计过程中,我不仅在专业知识方面得到了巩固,还学到了许多新的知识。

这次毕业设计不仅仅是一次课题,更是一次对我大学四年所学专业知识的总结,使我获益良多。

当然,这些收获与老师细心的指导和同学热心的帮助是分不开的。

在设计和写论文的过程中也遇到了不少的困难,但在李伟老师的悉心指导、同学的热心帮助和自己的共同努力下使问题基本得到了解决,顺利完成了设计。

也使得我的理论知识和设计能力都有了很大的提高。

在此,我特地向李伟老师和各位同学表示衷心的感谢。

8参考文献

[1]张毅刚等主编单片机应用设计哈尔滨工业大学出版社2003.7

[2]王兆安.电力电子技术.北京:

机械工业出版社,2008.6

[3]陈伯时.电力拖动自动控制系统.北京:

机械工业出版社,2008.7

[4]张方.电机及拖动基础.北京:

中国电力出版社,2008年4月.

[5]王志良.电力电子新器件及其应用技术.北京:

国防工业出版社,1995年.

[6]康华光,邹寿彬.电子技术基础(数字部分第四版).北京:

高等教育出版社,2004年.

[7]三恒星科技.MCS51单片机原理与应用实例.北京:

电子工业出版社,2008年1月.

[8]InternationalRectifier.FGA25N120DataSheet.http:

//www.21ic.com..

[9]杨岳峰,张奕黄.IGBT的瞬态保护和缓冲电路[J].电机电器技术,2003,(3).

[10]BoudreauxRR,NelmsRM,HungJohnY.SimulationandModelingofaDC–DCconvertercontrolledbyan8–bitmicrocontroller.IEEE-APEC.2,1997.

[11]InternationalRectifier.FR107DataSheet.http:

[12]何凤有,等.IGBT模块的驱动和保护技术[J].电器开关,2003,(4).

[13]孙鸿祥,郑丹,祝典.基于IR2110的驱动电路应用和设计技巧.科技创新导报,2008年35期.

[14]InternationalRectifier.IR2110/IR2113DataSheet.http:

//www.21ic.com.

附录1:

程序设计

根据程序流程图的设计,以及整个控制系统的输入输出信息分析,设计的控制程序如下:

#include<

reg52.h>

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineLCD_DATAP1

sbitLCD_RS=P3^5;

sbitLCD_RW=P3^6;

sbitLCD_E=P3^3;

sbitDQ=P3^1;

bitpresence;

ucharcodecdis1[]={"

DS18B20OK"

};

ucharcodecdis2[]={"

TEMP:

.C"

ucharcodecdis3[]={"

DS18B20ERR0R"

ucharcodecdis4[]={"

PLEASECHECK"

uchardatatemp_data[2]={0x00,0x00};

uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};

ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

ucharcodemytab[8]={0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00};

/*初始化lcd1602*/

/*******************************************************************/

voidLCD_Init()

{

LCD_DATA=0;

LCD_Write_Cmd(0x38,0);

//三次显示模式设置,不检测忙信号

LCD_Delay(5);

LCD_Write_Cmd(0x38,1);

//显示模式设置,开始要求检测忙信号:

8位、2行、5X7点阵

LCD_Write_Cmd(0x08,1);

//关闭显示

LCD_Write_Cmd(0x01,1);

//清屏

LCD_Write_Cmd(0x06,1);

//显示光标移动设置:

文字不动,光标自动右移

LCD_Write_Cmd(0x0C,1);

//显示开及光标设置:

光标关、光标不闪烁

}

/*初始化ds1820*/

DS18B20_Init(void)

{

DQ=1;

DS18B20_Delay(8);

DQ=0;

DS18B20_Delay(255);

presence=DQ;

DS18B20_Delay(100);

return(presence);

}

/*主函数*/

/************************************/

voidmain()

{

Ok_Menu();

do

DS18B20_Read_Temperature();

DS18B20_Disp_Temperature();

while(!

presence);

while

(1)

Error_Men

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

当前位置:首页 > 工程科技 > 电力水利

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

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