基于PT100的温度测量系统_第1页
基于PT100的温度测量系统_第2页
基于PT100的温度测量系统_第3页
基于PT100的温度测量系统_第4页
基于PT100的温度测量系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

前言传感器技术在信息采集、信息传输和信息处理中,属于前沿尖端产品,尤其是温度传感器技术,在各个领域广泛应用,比如在工农业生产中需要实时测量温度等等。因此研究温度的测量方法和装置具有重要的意义。为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合温度传感器技术而开发设计了这一温度测量系统。文中将传感器理论与单片机实际应用有机结合,详细地讲述了利用热电阻作为温度传感器来测量实时的温度,以及实现热电转换的原理过程。本设计应用性比较强,设计系统可以作为温度测量显示系统,如果稍微改装可以做热水器温度调节系统、生产温度监控系统等等。本课题主要任务是完成环境性强等优点。课程设计任务本设计系统包括温度传感器,信号放大电路,A/D转换模块,时钟模块,数据处理与控制模块,温度、时间显示模块六个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度测量与显示,完成了课题所有要求。摘要:本文采用AT89S51单片机,TLC2543A/D转换器,DS1302时钟芯片,AD620放大器,铂电阻PT100及8位数码管组成系统,编写了相应的软件程序,使其实现温度的实时显示。该系统的特点是:使用简便;测量精确、稳定、可靠;测量范围大;使用对象广。关键词:PT100单片机温度测量DS1302Abstract:ThesystemcontainsSCM(AT89S51),analogtodigitalconvertdepartment(TLC2543),DS1302chip,AD620amplifier,PT100platinum,LEDDigitaltubewithsix,writethecorrespondingsoftwareprogramtoachievereal-timetemperaturedisplay.Thesystemissimple,accurate,stableandwiderange.Keywords:PT100SCMTemperatureMeasuresDS1302一方案设计与论证1.1传感器的选择由于本设计的任务是要求测量的范围为0℃~100℃,测量的分辨率为±0.1℃,综合价格以及后续的电路,决定采用线性度相对较好的PT100作为本课题的温度传感器,具体的型号为WZP型铂电阻,该传感器的测温范围从-200℃~+650℃。具体在0℃~100℃的分度特性表见附录A所示。1.1.1PT100温度传感器原理PT100温度感测器是一种以白金(Pt)作成的电阻式温度检测器,属于正电阻系数,其电阻和温度变化的关系式如下:R=Ro(1+αT)其中α=0.00392,Ro为100Ω(在0℃的电阻值),T为摄氏温度。因此白金作成的电阻式温度检测器,又称为PT100。PT100是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。主要技术指标:1.测温范围:-200℃~650℃;2.测温精度:0.1℃;3.稳定性:0.1℃。PT100温度传感器测量范围广:-200℃~+650℃,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计采用PT100作为温度传感器。图2.5.1ADC0809CCN2.6DS1302时钟电路设计DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。本设计中采用DS1302时钟芯片产生时钟信号,通过单片机进行处理控制,并显示出实时的时间,可以用于对温度进行实时的数据采集。1.引脚功能及结构DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。DS1302的引脚功能图如图2-7所示。图2.6.1DS1302引脚图2.DS1302的控制字节DS1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为逻辑0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址输入或输出。最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。3.数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。4.DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)和FFH(读)。5.DS1302与单片机的连接DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。这三条线分别接到CPU的I/O线上。图2.6.2DS1302与CPU的连接2.7单片机简介及控制电路89C51单片机简介:与MCS-51兼容,4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:十年。•全静态工作:0Hz-24Hz•三级程序存储器锁定•128*8位内部RAM•32可编程I/O线•两个16位定时器/计数器•5个中断源•可编程串行通道•低功耗的闲置和掉电模式•片内振荡器和时钟电路89C51单片机引脚图89C51引脚功能介绍●VCC:供电电压●GND:接地●P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写“1”时,被定义位高阻输入。P0能够用于外部程序存储器,它可以被定义为数据地址的低八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。●P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能够接收输出4TTL门电流。P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接受。●P2口:P2口为一个内部上拉电阻的双向I/O口,P2口缓冲器可接收,输出4个TTL电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。再给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASh编程和校验时接收高八位地址信号和控制信号。●P3口:P3口管脚是八个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电路。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚备选功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2/INT0外部中断0P3.3/INT1外部中断1P3.4T0计时器0外部输入P3.5T1计时器1外部输入P3.6/WR外部数据存储器写选通P3.7/RD外部数据存储器读选通表2.7.1特殊功能口P3口同时为闪烁编程和编程校验接受一些控制信号●RST:复位输入,当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间●ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX、MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。●/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。●/EA/VPP:当/EA保持低电平时,则在此期间外部程序程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁存为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。●XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入●XTAL2:来自反向振荡器的输出图2.7.289C51图2.7.3连接电路图2.7.4复位电路图2.7.5串口电路在单片机上,需要下载程序,使用串口方能完成此功能。在焊好的单片机板上,伸出三个脚,用于电路的连接。2.8显示模块七段数码管LED所有数码管通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示。将所有数码管的8个显示笔“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通有各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。图2.8.1显示模块三软件设计主要介绍编程语言C语言和编程工具Keil3软件,以及本系统的程序设计和在程序设计时所遇到的问题及解决办法。3.1概述整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能,如测量,计算,显示,通讯等。每个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每个执行模块进行功能定义和接口定义。各执行模块规划好之后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间的调度关系。3.2编程语言介绍C语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。C语言主要有以下特点:1、C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。2、C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。3、C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。4、C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。基于C语言的这些特点,我们选用C语言来作为编程语言。3.3编程软件Keil简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。我们用开发软件KeiluVision3来编写、修改所需程序和下载程序到单片机运行。其下介绍KeiluVision3的使用步骤。3.4程序设计流程图本温度测量系统的程序设计流程图如图3.4所示。单片机初始化单片机初始化液晶初始化根据AD码算出电阻值根据电阻值算出温度值液晶显示延时开始 图3.4.1程序流程图3.5温度程序#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#definemynumtemsbitLED1=P2^0;sbitLED2=P2^1;sbitLED3=P2^2;sbitLED4=P2^3;//四个数码管的位选sbitOE=P1^0;//AD转换输出使能端sbitEOC=P1^1;//AD转换结束标志sbitST=P1^2;//开始AD转换和寄存器清零,下降沿为开始转换,上升沿为寄存器清零sbitCLK=P1^3;//ADC0809的时钟信号sbitC3=P1^4;sbitC2=P1^5;sbitC1=P1^6;uintadnum=0;uintge=0,shi=0,bai=0,qian=0;uintmytime=0; ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(uintxms){ uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--);}voidT0T1_init()//定时器0和1的初始化{ TMOD=0x12; TH0=164; TL0=164; TH1=19453/256; TL1=19453%256; EA=1; ET0=1; ET1=1; TR0=1; TR1=1;}voidLED_init()//初始化数码管{ LED1=1; LED2=1; LED3=1; LED4=1; P0=0; }voidadc0809_init()//ADC0809初始化{ C3=0; C2=0; C1=0; ST=0; delay(1); ST=1; OE=0; CLK=0; }voidLED_display(){ P0=table[shi]; LED1=0; delay(3); LED1=1; P0=table[ge]; LED2=0; delay(3); LED2=1; P0=0x63; LED3=0; delay(3); LED3=1; P0=0x39; LED4=0; delay(3); LED4=1;}uintnum_handle(uintadzhi){ uintmid,midh,midl; mid=adzhi*50; midh=mid/256; midl=mid%256*100/256; return(midh*100+midl);} voidad_handle(){ uintvnum,tem; vnum=num_handle(adnum); tem=(vnum-30-1000)/4; qian=mynum/1000%10; bai=mynum/100%10; shi=mynum/10%10; ge=mynum%10; }voidmain(){ LED_init();//对数码管的初始化 adc0809_init();//对ADC0809的初始化 T0T1_init();//对定时器0的初始化 ST=0;//开始AD采集 while(1) { if(EOC==1) { OE=1; adnum=P3; OE=0; ST=1; delay(1); ST=0; } if(mytime==20) { mytime=0; ad_handle(); } LED_display(); }}voidT0_time()interr

温馨提示

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

评论

0/150

提交评论