您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 测控系统原理与设计课程设计温度检测系统
《测控系统原理与设计》课程设计报告课题:温度检测系统班级XXXXXXX学号XXXXXXXXX学生姓名XXXXX指导教师XXXXXXXX淮阴工学院电子与电气工程学院2010年12月班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统1一、概述1.1前言传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。本设计选用STC89C52型单片机作为主控制器件,DS18B20作为测温传感器,通过LED数码管实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。1.2基本功能与参数(1)系统基本功能a.实现温度的实时测量与显示。b.可手动设置监测温度范围的上限和下限。c.超出温度监测范围,可进行声光报警或执行预定操作。(2)参数a.DS18B20的温度测量范围为-55°C~+125°C,在-10°C~+85°C范围内,精度为±0.5°Cb.显示温度值精确到0.1°C,监测温度精确到1°Cc.精度误差小于0.5℃二、设计要求本设计的温度测量报警系统以STC89C52单片机为核心部件,外加温度采集电路、键盘及显示电路、越限报警等电路。采用数字温度芯片DS18B20测量温度,输出信号全数字化。由数字温度计DS18B20和STC89C52单片机构成的温度测量装置,它直接输出温度的数字信号。利用STC89S52芯片控制温度传感器DS18B20进行实时温度检测并显示,快速测量环境温度,并可以根据需要设定上下限温度。系统框图如图1所示。班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统2图1DS18B20温度测温系统框图三、硬件电路总体设计3.1单片机最小系统设计3.1.1电源电路Vin1GND2+5V3LM7805C20.1uF+C1470uF+C3470uFR1KLEDVCCGNDVCCC20.1uF+12V+5V图2电源电路3.1.2振荡电路与复位电路晶振采用12MHZ。复位电路采用上电加按钮复位。晶振12MHzC130pFC230pFAT89C51XTAL1XTAL2C122uFR21KR1200VCCRESETVccRSTVssAT89C51图3振荡电路图4复位电路时钟振荡电路STC89C52复位电路电源电路LED报警显示LED数码管显示蜂鸣器报警键盘调整控制模块DS18B20温度传感器班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统33.2DS18B20与单片机的接口电路图5DS18B20与单片机的接口电路3.3独立式键盘电路图6独立式键盘电路3.4报警模块图7报警电路班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统43.5数码管显示模块显示电路采用4位共阴极LED数码管,P0口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2口的低四位作为数码管的位选端。采用动态扫描的方式显示。图8数码管显示电路3.6proteus仿真图图9proteus仿真图班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统53.7DS18B20简单介绍DS18B20的性能特点如下●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃●零待机功耗●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快●用户可定义报警设置●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件●测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图11所示,DQ为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统6图10外部封装形式四、软件流程框图系统程序主要包括主程序、读取温度子程序、温度转换命令子程序、计算温度子程序、按键扫描处理子程序、显示数据子程序等。4.1主程序流程图主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图11所示。图11主程序流程图初始化读取温度SET键是否按下读出温度值温度计算处理显示数据刷新发温度转换开始命令NY调用显示子程序设置报警温度班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统7发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束4.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图12所示。4.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图13所示。图13温度转换流程图图12读温度流程图Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统84.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图14所示。图14计算温度流程图4.5按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否则显示当前温度。开始温度零下?温度值取补码置“1”标志计算小数位温度BCD值计算整数位温度BCD值结束置“0”标志NYSET键按下ADD键按下DEC键按下显示切换标志位是否为“0”调用显示子程序报警温度加1报警温度减1YNYNYN班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统9图15按键扫描处理子程序4.6源程序#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitds=P2^0;sbitdula=P2^6;sbitwela=P2^7;sbitbeep=P2^1;sbitSET1=P2^2;//定义上限显示调整键sbitDEC=P2^3;//定义增加减少键sbitADD=P2^4;//定义增加减少键sbitSET2=P2^5;//定义下限显示调整键inttemp;floatf_temp;intwarn_l1=50;intwarn_l2=0;intwarn_h1=300;intwarn_h2=1000;/************************xianshi*********************/ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40};voiddelay(intz){inta,b;for(a=0;az;a++)for(b=0;b120;b++);}voiddisplay(ucharnum,uchardat){uchari;dula=0;wela=0;wela=1;i=0x00;i=i|(~(((0x01)(num))));P0=i;wela=0;dula=1;P0=table[dat];班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统10dula=0;P0=0xff;dula=0;delay(3);}voiddis_temp(intt){uchari;i=t/100;display(1,i);i=t%100/10;display(2,i+10);i=t%100%10;display(3,i);delay(5);}/******************************ds18b20**********************/voidds_reset(){uinti;ds=0;i=103;while(i0)i--;ds=1;i=4;while(i0)i--;}uchartemp_readbit(void){uinti;bitdat;ds=0;i++;ds=1;i++;i++;i++;dat=ds;i=8;while(i0)i--;return(dat);}uchartemp_read(void){uchari,j,dat;班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统11dat=0;for(i=0;i8;i++){j=temp_readbit();dat=(j7)|(dat1);}return(dat);}voidtemp_write(uchardat){uinti;ucharj;bittestb;for(j=1;j=8;j++){testb=dat&0x01;dat=dat1;if(testb){ds=0;i++;i++;i++;ds=1;i=8;while(i0)i--;}else{ds=0;i=8;while(i0)i--;ds=1;i++;i++;}}}voidtemp_change(void){ds_reset();delay(1);temp_write(0xcc);temp_write(0x44);}uintget_temp(){uchara,b;EA=0;ds_reset();delay(1);temp_write(0xcc);temp_write(0xbe);班级:测控1082姓名:张建鑫学号:1081203230课题:温度检测系统12a=temp_read();b=temp_read();temp=b;temp=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05;returntemp;}/****************************定时器初始化*****************/voidinit_com(void){TMOD=0X01;PCON=0X00;SCON=0X50;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;}/****************报警*************************
本文标题:测控系统原理与设计课程设计温度检测系统
链接地址:https://www.777doc.com/doc-3177161 .html