《半导体制冷温度控制系统》_第1页
《半导体制冷温度控制系统》_第2页
《半导体制冷温度控制系统》_第3页
《半导体制冷温度控制系统》_第4页
《半导体制冷温度控制系统》_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上本科生实习报告实习类型 综合实习(专业电子实践) 题 目 半导体制冷温度控制系统 学院名称 信息科学与技术学院 专业名称 信息工程(电子方向) 学生姓名 学生学号 6/3 指导教师 实习地点 5721 实习成绩 二一五 年 九 月 二一五 年 九 月目录专心-专注-专业 半导体制冷温度控制系统摘要:本文设计的温控系统包括单片机系统,温度测量系统,温度的输入和显示,以及半导体制冷器的功率驱动这几个部分。温度测量系统指的是通过温度传感器读取目标系统的当前温度,这里采用的是数字式的温度传感器,易于单片机读取测量值。单片机是整个温控的中央处理器,温度控制算法是在单片机中进行的

2、。将测量到的当前温度值输入到单片机,再通过比例积分微分控制算法的运算,就可以得到要输出的控制量。单片机计算出的控制量要通过半导体制冷器的功率驱动电路才能驱动半导体制冷器工作。首先要将控制量经过数模转换成模拟的电压量,然后通过半导体制冷器的驱动电路,将可变的电压量转换成可变的电流量驱动半导体制冷器的正常工作,完成温度控制的目的。温度的输入模块是为了能够方便的调节目标温度,显示模块则是为了能够实时地显示目标系统的当前温度。 本设计介绍的温控系统中,控制算法是一个非常重要的部分。这里采用广泛使用的经典控制算法比例微分积分算法。它的优点是:结构简单,实用,价格低,控制效果好。关键词:半导体制冷器 温度

3、控制 比例积分微分 单片机一、系统设计框图如上图所示,该系统主要由单片机系统,温度测量电路,温度的输入和输出显示,以及半导体制冷器的驱动电路组成。温度测量电路通过温度传感器,读取当前系统的实时温度,经过单片机分析后,进行相应的处理,发出控制信号,然后通过驱动电路控制半导体制冷器工作。二、系统设计方案2.1 、方案选择2.1.1、半导体制冷芯片的选择 从TEC的制冷功率以及最大温差等多个参数为依据对TEC芯片进行考虑。常用的TEC一级制冷芯片如TEC112706T125,它的制冷效果只能将目标系统的温度降到比室温低20,很难提高制冷效果。就现有数据表明,在实际应用中,我们设计的系统要考虑最大温差

4、和制冷量,这样能使我们设计的系统有更大的实用空间。而另外一款TEC芯片-TEC2-25504,它虽然是二级的半导体制冷芯片,当通过TEC的电流达到3.75A时,在使用风冷散热条件下,整个系统能达到最好的制冷效果,目标系统温度可以降到比室温低35。而且它的价格还比前者要低,在此本文的设计就采用这种制冷芯片。2.1.2、温度传感器的选择 温度采集时需要使用温度传感器对当前温度系统的温度进行测量,目前常见的温度常感器有:接触式温度传感器(如:常用热电阻温度传感器,管缆热电阻温度传感器,陶瓷热电阻温度传感器,超低温热电阻温度传感器,热敏电阻温度传感器)和非接触式温度传感器(如:辐射高温计温度传感器,光

5、谱高温计温度传感器,超声波温度传感器,激光温度传感器),两者各有优点,基于可行性和经费考虑,本设计采用接触式温度传感器中由DALAS公司开发的DS18B20数字式温度传感器来采集目标系统的温度。DS18B20的测量范围从-55到125,测量精度高达12位,最小分辨温度为0.0625,完全可以满足系统设计要求的技术指标。同时,DS18B20采用1总线接口,大大简化了接口电路的设计,可以把精力主要集中在温度控制算法的研究上。2.1.3、单片机的选择 在本设计中,单片机主要完成一下任务:首先控制温度的测量,读取系统的当前温度,然后进行控制算法的运算,计算出控制量,再控制D/A转换,将控制量输出。同时

6、还要完成对键盘摄入和显示的控制。而目前用的最多的单片机有stm系列和51系列的。用stm系列的单片机显然可以实现以上功能,但它的价格一般为51系列的两倍,而使用51系列的单片机实现以上功能也是绰绰有余的。所以在本设计中我们采用51系列中的89C52单片机。89C52单片机采用的是MCS-51单片机的内核,指令系统与51单片机完全兼容。内部有256字节的RAM,8k的EPROM,5个中断源,2个16位定时器/计时器,1个全双工的串行口,4个8位可编程的并行I/O口,完全可以满足本次设计的系统要求。2.2、系统框图 三、系统原理图及工作原理3.1、系统原理图3.2、系统工作原理 如上图,温度控制系

7、统在CPU的选型上采用被广泛使用的51系列单片机,同时温度采集上则是通过DB18B20温度传感器来完成。读取目标系统温度后,输入到单片机中,经过数据转换,显示到LCD1206上。同时在单片机PID控制算法处理后,对接收到的实际温度进行计算,得出要输出的当前温度控制量,通过TLC5615进行D/A转换,最后获得模拟的电压量。而TEC的制冷量与电流成正比,所以还要添加一个TEC的驱动电路,将电压量转变为电流驱动量驱动TEC工作,达到温度控制的目的。同时单片机外加键盘输入的外设,可以更方便的对目标温度进行设定。 四、系统设计步骤4.1、电路设计4.1.1、TLC5615转换器接口电路4.1.2、半导

8、体制冷片驱动电路 该电路中采用电流驱动温度控制的方法,通过输出不同的电流大小达到调整整个系统输出功率的目的,从而调整温度控制设备的功率,同时根据不同的情况让温度控制设备运行功率得到动态调整。特别是可以根据目标控制温度与当前环境温度的差别大小来决定温度控制设备的功率大小。 而要控制TEC的制冷功率可以采用线性化的方法,即通过控制加在TEC两端的电压或者控制通过TEC的电流来控制TEC的制冷功率。加在TEC两端的电压越大,那么TEC的功率就按照电压的平方关系增大。线性化的方法一般电路都是利用运算放大器的虚短,虚断的性质,并且加上一个MOFET管来控制TEC两端的电压大小。4.1.3、显示和键盘电路

9、 显示电路: 键盘电路:4.2、PCB设计4.2.1、顶层设计4.2.2、底层设计五、系统程序设计5.1、单片机程序设计框图5.2、温度采集程序float gettemp(void) /当前温度读取Init_DS18B20(); /初始化DS18B20WriteOneChar(0xCC); /跳过读序列号的操作WriteOneChar(0x44); /启动温度转换delay(5); /延时程序Init_DS18B20(); /初始化DS18B20WriteOneChar(0xCC); /跳过读序列号的操作WriteOneChar(0xBE); /读取温度寄存器中的值,前两个就是温度a=Read

10、OneChar(); /读取温度的低位LSBb=ReadOneChar(); /读取温度的高位MSBflag1=b&0xf8; /获取温度正负的标记值,正为0,负为1 if(flag1) /如果温度小于0,转换成浮点型 a=a,b=b; t1=(float)(b*256)+a+1)*0.0625; flag1=1; else /如果温度小于0,转换成浮点型 t1=(float)(b*256)+a)*0.0625; flag1=0; delay(200); return(t1);5.3、温度设定及显示 void keyboardtest() while(!key3) /检测key3是否按

11、下,如果“否”,继续执行;如果 “是”,结束循环。 if(key1=1) /判断key1是否按下,如果“是”,继续执行;如果 “否”,跳过执行下步 delay(5000); /延时消除抖动 if(key1=1) Tend=Tend+1; /目标温度增加一度 show(Tend); /显示当前温度 if(key2=1) delay(5000); if(key2=1) Tend=Tend-1; show(Tend); FINT0=1; /将全局变量 FINT0 设为15.4、温度显示void LCD1602_Init(void);Write_LCD_Mult_Byte(uchar addr,uch

12、ar* pointer,uchar index,uchar num); /液晶输出显示的方式void main()/*tab9=3+0x30;tab10='.'tab11=5+0x30;*/ADCON1 = 0x87;/设置PORTE为普通IO口TRISA5=0;/设置RA5口为输出TRISD = 0x00;/设置PORTD为输出TRISE = 0x00;/设置PORTE为输出LCD1602_Init();while(1) Write_LCD_Mult_Byte(0x80,tab,0x00,16); /显示内容的格式。 Write_LCD_Mult_Byte(0xC0,tab,

13、0x10,16); void DelayUS(uchar delay)while(-delay);void DelayMS(uint delay) uint i; for(;delay>0;delay-) for(i=0;i<453;i+);void Read_LCD_Busy(void) /查询液晶是否忙碌 uchar temp,i;i = 200;while(i-)TRISD = 0xFF;/PORTD设置为输入PORTA = 0x00; LCD1602_DI = 0;/指令方式 LCD1602_WR = 1;/读操作LCD1602_CS=1;NOP(); /延时一个周期 te

14、mp = PORTD;/读取忙通道数据LCD1602_CS=0;TRISD = 0x00;if(temp & 0x80) != 0x80)/不忙,则跳出while语句,否则,继续 查忙 break;void Write_LCD_Comd(uchar commond)/给液晶出入命令和输入的地址TRISD = 0x00;LCD1602_CS=0; LCD1602_WR = 0;/写操作 LCD1602_DI = 0;/指令方式 PORTD = commond;/送指令数据LCD1602_CS=1;NOP();LCD1602_CS=0;void Write_LCD_Data(uchar D

15、ata)/给液晶输入要显示的数据 Read_LCD_Busy(); /查忙LCD1602_CS=0; LCD1602_WR = 0; /写操作 LCD1602_DI = 1;/数据方式 PORTD = Data;/送数据LCD1602_CS=1;/使能有效NOP();LCD1602_CS=0;void LCD1602_Init(void)/初始化液晶 DelayMS(15);/上电延时15ms Write_LCD_Comd(0x38); /写显示指令(不检测忙信号) DelayMS(5);/延时5ms Write_LCD_Comd(0x38); /写显示指令(不检测忙信号) DelayMS(5

16、);/延时5ms Write_LCD_Comd(0x38); /写显示指令(不检测忙信号) Read_LCD_Busy(); /查忙 Write_LCD_Comd(0x38); /写显示指令 Read_LCD_Busy(); /查忙 Write_LCD_Comd(0x08); /显示关闭 Read_LCD_Busy(); Write_LCD_Comd(0x01); /清屏 Read_LCD_Busy(); Write_LCD_Comd(0x06); /显示光标移动设置 Read_LCD_Busy(); Write_LCD_Comd(0x0c); /显示开及光标设置 void Write_LCD

17、_Mult_Byte(uchar addr,uchar* pointer,uchar index,uchar num) /显示液晶 uchar i; Read_LCD_Busy(); Write_LCD_Comd(addr);/写地址 for(i=0;i<num;i+) /循环num次 Write_LCD_Data(pointerindex+i); /写数据 5.5、PID控制及D/A转换程序void PID() /PID控制程序 delay(2000); T=gettemp(); /获取当前温度 e1=T-Tw /计算当前温度个目标温度之间的差值 de=(e1-e0) /温度微分量 ie=ie+e1; /温度积分量 kp=600; /设定kp的值 ki=0.8; /设定ki的值 kd=2000; /设定kd的值 v=kp*e1+ki*ie+kd*de+v0; /带入计算出输出量 if(v>1023) v=1023; /D/A是10位转换器,溢出的部分舍去 if(v<0) v=0; da5615(unsigned int)v); /调用D/A转换子程序 e0=e1; de0=de; void da5615(unsigned int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论