温度控制设计555_第1页
温度控制设计555_第2页
温度控制设计555_第3页
温度控制设计555_第4页
温度控制设计555_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

目录TOC\o"1-3"\h\z\u17144第1章总体设计方案 5101291.1DS18B20历史简介 5199811.2DS18B20性能简介 5275061.2.1DS18B20的性能特点如下: 5306321.2.2DS18B20封装 584541.2.3DS18B20内部结构主要由四部分组成: 523951.3DS18B20的工作原理 830660 8307851.3.2ROM操作命令 935351.3.3DS18B20测温原理 9229181.4DS18B20测温流程 1115332 1219606 125726 1214367 12157442.2.2显示电路 12301112.2.3低温加热电路 1271472.2.4高温降热电路 1317312.2.5温度采集电路 142.2.6复位电路4086 1411864第3章系统整体设计 1581103.1系统硬件电路 15274343.2系统软件设计 15183283.2.1软件的选择 15138853.2.2具体程序流程 1549383.2.3具体程序 17结束语228288参考文献 23引言随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向。特别是近年来,温度控制系统已应用到人们生活的各个方面,但温度控制一直是一个未开发的领域,却又是与人们息息相关的一个实际问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景与实际意义。工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油、柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生。本设计的内容是温度测试控制系统,控制对象是温度。温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功于设定上限温度时,系统自动启动风扇降温,使温度下降。当温度下降到上限温度以下时,度为正负0.5摄氏度。第1章总体设计方案本设计采用了DS18B20数字是温度传感器,将采集的温度信号直接通过传感器转化为数字信号传给单片机处理。电路结构得到了很大的简化,否则使用模拟式温度传感器,采集信号后还需A/D转换器变模拟信号为数字信号才能供单片机处理。本设计处理流程为:DS18B20将采集的温度信号转化为数字信号保存在DS18B20的内部暂存器中,然后将暂存器中完整的数字信号通过单一数据传递线传给单片机处理。单片机将接收的信号与给定的正常温度范围进行比较,若低于正常范围则输出一个信号让加热继电器动作,若高于正常范围则输出一个信号给直流电机进行降温处理。1.1DS18B20历史简介温度的测量是从金属(物质)在工业生产和实验研究中为了配合远传仪表指PN结型等,原理都是基于温度的变化而引起其它物理量的变化。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器,例如DS18B20数字式温度传感器。1.2DS18B20性能简介1.2.1DS18B20的性能特点如下:1)独特的单线接口仅需要一个端口引脚进行通信;2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3)无须外部器件;4)可通过数据线供电,电压范围为3.0~5.5V;5)零待机功耗;6)温度以3位数字显示;7)用户可定义报警设置;8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。1.2.2DS18B20封装本设计采用的是DS18B20的3脚PR-35封装,其中中间一个引脚是进行数据传递的。另外两个引脚分别是地线引脚和电源引脚。1.2.3DS18B20内部结构主要由四部分组成:(1)DS18B20内部结构如下图1-1所示图1-1DS18B20内部结构图(2)64位光刻ROM。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有488位是前56位的CRCDS18B20可以采用一线进行通信的原因。其排序如下表1.1.3。8b检验CRC48b序列号8b工厂代码(10H)MSBLSBMSBLSBMSBLSB表1-1(3)非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。(4)高速暂存存储,可以设置DS18B20温度转换的精度。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。高速暂存RAM的结构为9字节的存储器,结构如表1-2所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如图1.3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。表1-2RAM的内部存储器(5)告诉暂存存储,DS18B20温度转换的精度。DS18B20出厂时该位被设置为0,用户可以去改动,其中R1和R0用来设置转换精度,用于设置分辨率。其字节定义如下表1-3所示。表1-3DS18B20字节定义(6)其分辨率与温度转换的时间如表1-4所示,由此可见分辨率越高转换时间越长。表1-4DS18B20温度转换时间表(7)部分温度数值与二进制之间的对应关系如下表1-5所示。表1-5部分温度对应表(8)CRC的产生在64bROMCRC)。主机根据ROM的前56位来计算CRCDS18B20中的CRCROM数据是否DS18B20时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20复位脉冲)→发ROM功能命令→发存储器操作令→处理数据。1.3DS18B20的工作原理根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:1.每一次读写前都必须要对DS18B20进行复位;2.复位成功后发送一条ROM指令;3.最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500DS18B20收到信号后等待15~60微秒左右后发出60~240CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图1-2,1-3,1-4所示。(1).初始化程序,图1-2DS18B20初始化时序道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以4.7KΩ15~60us并进入接收模式,以产生低电平应答脉冲,若为低电平,再延时480us。.写时序图1-3DS18B20写时序写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us12us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。读时序图1-4DS18B20读时序总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。1.3.2ROM操作命令当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如下表1-6ROM操作命令。1.3.3DS18B20测温原理每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM中。主机在进操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。DS18B20的测温原理如图1-5所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为另外一个减法计数器表1-6ROM操作命令数门打开时,DS18B20就对低温度系数振荡器产生的钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首将-的基数分别置入减法计数器和温度寄存器中,减法计数器和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到0时温度寄存器的值将加1,减法计数器的预置将从新被装重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到另一个减法计数器计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图1-5中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用修正法修正计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。DS18B20序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。图1-5测温原理图1.4DS18B20测温流程测温流程如下图1-6所示。图1-6DS18B20测温流程图DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。本设计采用电源供电方式,P2.7口接单线总线。当DS18B20处于写存储器操作和温度A/D变换操作时,总线上必须有强的上拉,上拉启时间最大为10μs。采用寄生电源供电方式是VDD和收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤:1.初始化;2.RO操作指令;3.存储器操作指令。单片机和XIAL2分别接22PF的电容,中间并接12MHZ的晶振,为单片机提供工作周期。具体电路图如下2-1所示。图2-1晶振电路2.2.2显示电路采用AT89C51作CPU,其中P0端口和P2.0,P2.1,P2.2作温度显示输出口。连接图如下2-2所示。2.2.3低温加热电路用P1.0作控制加热器的输出口,外接一个红色发光二极管做加热显示,并串接一个220欧的限流电阻。通过控制Q2(三极管)的导通与截止来控制加热继电器的导通与关闭。其连接图如下2-3所示。图2-2显示电路图2-3低温加热电路2.2.4高温降热电路用P1.1作控制电机工作的输出端口,其中P1.1外接一个黄色的二极管做降温显示,并通过一个电压跟踪运算放大器将驱动电机电路域单片机隔离。具体连接如图2-4所示。图2-4高温降热电路2.2.5温度采集电路用DS18B20中间一个引脚作数字式温度信号的输入口,将其接在单片机P2.7口上。具体连接如图2-5所示。图2-5温度采集电路2.2.6复位电路本设计采用上电自动复位。其具体连接如图2-6所示。图2-6复位电路第3章系统整体设计3.1系统硬件电路硬件电路整体设计如图3-1所示。图3-1整体连接图3.2系统软件设计3.2.1软件的选择程序设计语言有三种:机器语言,汇编语言,高级语言,其中前两种语言编程复杂,而高级语言编写既简单又容易理解,故本设计采用高级语言中的C语言编写程序。本装置的软件包括主程序、读出温度子程序、复位电路子程序、延时电路子程序、以及有关DS18B20的程序(初始化子程序、写程序和读程序)、温度数据处理子程序、温度显示子程序。3.2.2具体程序流程A.主函数流程如下图3-2所示。B.温度处理流程如下图3-3所示。初始化端口初始化端口开机显示0000开机显示0000复位复位发SkipROM发SkipROM发转换指令发转换指令处理温度数据处理温度数据转换温度值转换温度值显示温度显示温度图3-2主函数流程图3-3温度处理流程3.2.3具体程序如下: //温度计读写程序源代码//#include"reg51.h"#include"intrins.h"#definedmP0//以P0口作为LED段码输出口#defineucharunsignedchar#defineuintunsignedintsbitDQ=P2^7;//以P2.7口作为温度传感器输入口sbitw0=P2^0;//数码管4sbitw1=P2^1;//数码管3sbitw2=P2^2;//数码管2sbitw3=P2^3;//数码管1sbitled0=P1^0;//加热驱动端sbitled1=P1^1;//降温驱动端inttemp1=0;//显示当前温度和设置温度的标志位为0时显示当前温度uinth;uinttemp;ucharr;ucharhigh=35,low=20;ucharsign;ucharq=0;uchartt=0;ucharscale;ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};ucharcodetable_dm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};uchartable_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};uchardatatemp_data[2]={0x00,0x00};uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//延时电路程序//voiddelay(uintt){for(;t>0;t--);}voidscan(){intj;for(j=0;j<4;j++){switch(j){case0:dm=table_dm[display[0]];w0=0;delay(50);w0=1;//xiaoshucase1:dm=table_dm1[display[1]];w1=0;delay(50);w1=1;//geweicase2:dm=table_dm[display[2]];w2=0;delay(50);w2=1;//shiweicase3:dm=table_dm[display[3]];w3=0;delay(50);w3=1;//baiwei//else{dm=table_dm[b3];w3=0;delay(50);w3=1;}}}}//复位电路程序/ow_reset(void){charpresence=1;while(presence){while(presence){DQ=1;_nop_();_nop_();DQ=0;delay(50);DQ=1;delay(6);presence=DQ;//presence=0}delay(45);presence=~DQ;}DQ=1;}//DS18B20写命令函数//voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_();//5usDQ=val&0x01;delay(6);val=val/2;}DQ=1;delay(1);}//DS18B20读1字节函数//ucharread_byte(void){uchari;ucharvalue=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ=0;_nop_();_nop_();_nop_();_nop_();//4usDQ=1;_nop_();_nop_();_nop_();_nop_();//4usif(DQ)value|=0x80;delay(6);//66us}DQ=1;return(value);}//读出温度函数//read_temp(){ow_reset();delay(200);write_byte(0xcc);write_byte(0x44);ow_reset();delay(1);write_byte(0xcc);write_byte(0xbe);temp_data[0]=read_byte();temp_data[1]=read_byte();temp=temp_data[1];temp<<=8;temp=temp|temp_data[0];returntemp;}//温度数据处理函数//work_temp(uinttem){ucharn=0;if(tem>6348)//温度值正负判断{tem=65536-tem;n=1;}//负温度求补码,标志位置1display[4]=tem&0x0f;//取小数部分的值display[0]=ditab[display[4]];//存入小数部分显示值display[4]=tem>>4;//取中间八位,即整数部分的值display[3]=display[4]/100;//取百位数据暂存display[1]=display[4]%100;//取后两位数据暂存display[2]=display[1]/10;//取十位数据暂存display[1]=display[1]%10;//个位数据r=display[1]+display[2]*10+display[3]*100;if(r<30)//低温加热{led0=1;led1=0; }if((r>=30)&(r<40)) //在温度区间不动作{led0=0;led1=0;}if(r>=40)//高温降温{led0=0;led1=1;}/////符号位显示判断/////if(!display[3]){display[3]=0x0a;//最高位为0时不显示if(!display[2]){display[2]=0x0a;//次高位为0时不显示}}if(n){display[3]=0x0b;}//负温度时最高位显示"-"}//*********设置温度显示转换************//voidxianshi(inthorl){intn=0;if(horl>128){horl=256-horl;n=1;}display[3]=horl/100;display[3]=display[3]&0x0f;dis

温馨提示

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

评论

0/150

提交评论