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

下载本文档

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

文档简介

前言 传感器技术在信息采集、信息传输和信息处理中,属于前沿尖端产品,尤其是温度传感器技术,在各个领域广泛应用,比如在工农业生产中需要实时测量温度等等。因此研究温度的测量方法和装置具有重要的意义。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合温度传感器技术而开发设计了这一温度测量系统。文中将传感器理论与单片机实际应用有机结合,详细地讲述了利用热电阻作为温度传感器来测量实时的温度,以及实现热电转换的原理过程。 本设计应用性比较强,设计系统可以作为温度测量显示系统,如果稍微改装可以做热水器温度调节系统、生产温度监控系统等等。本课题主要任务是完成环境性强等优点。 课程设计任务 本设计系统包括温度传感器,信号放大电路,A/D转换模块,时钟模块,数据处理与控制模块,温度、时间显示模块六个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度测量与显示,完成了课题所有要求。 摘 要:本文采用AT89S51单片机,TLC2543 A/D转换器,DS1302时钟芯片,AD620放大器,铂电阻PT100及8位数码管组成系统,编写了相应的软件程序,使其实现温度的实时显示。该系统的特点是:使用简便;测量精确、稳定、可靠;测量范围大;使用对象广。关键词:PT100 单片机 温度测量 DS1302 Abstract: The system contains SCM(AT89S51), analog to digital convert department (TLC2543), DS1302 chip, AD620 amplifier, PT100 platinum, LED Digital tube with six, write the corresponding software program to achieve real-time temperature display. The system is simple , accurate , stable and wide range. Keywords: PT100 SCM Temperature Measures DS1302 一 方案设计与论证1.1 传感器的选择 由于本设计的任务是要求测量的范围为0100,测量的分辨率为0.1,综合价格以及后续的电路,决定采用线性度相对较好的PT100作为本课题的温度传感器,具体的型号为WZP型铂电阻,该传感器的测温范围从200650。具体在0100的分度特性表见附录A所示。 1.1.1 PT100温度传感器原理 PT100温度感测器是一种以白金(Pt)作成的电阻式温度检测器,属于正电阻系数,其电阻和温度变化的关系式如下: R=Ro(1+T)其中=0.00392,Ro为100(在0的电阻值),T为摄氏温度。因此白金作成的电阻式温度检测器,又称为PT100。 PT100是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。主要技术指标:1. 测温范围:-200650; 2. 测温精度:0.1; 3. 稳定性:0.1。 PT100温度传感器测量范围广:-200+650,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计采用PT100作为温度传感器。 采取方案:设计一个恒流源通过PT100热电阻,通过检测PT100上的电压的变化来换算出温度。 1.2系统的工作原理 测温的模拟电路是把当前PT100热电阻传感器的电阻值,转换为容易测量的电压值,经过放大器放大信号后送给A/D转换器把模拟电压转为数字信号后传给单片机AT89S51,单片机再根据公式换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到数码管进行显示。另外,外接一个时钟芯片DS1302产生时钟信号送入到单片机中进行处理控制,并将时间显示出来,以实现温度的实时监控。 图1.2.1系统结构框图 二 硬件设计2.1 PT100传感器方案设计 Pt100 是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。采用Pt100 测量温度一般有两种方案:方案一:设计一个恒流源通过Pt100 热电阻,通过检测Pt100 上电压的变化来换算出温度。方案二:采用惠斯顿电桥,电桥的四个电阻中三个是恒定的,另一个用Pt100 热电阻,当Pt100电阻值变化时,测试端产生一个电势差,由此电势差换算出温度。两种方案的区别只在于信号获取电路的不同,其原理上基本一致。2.2 信号调理电路 调理电路的作用是将来自于现场传感器的信号变换成前向通道中A/D转换器能识别的信号,作为本系统,由于温度传感器是热电阻PT100,因此调理电路完成的是怎样将与温度有关的电阻信号变换成能被A/D转换器接受的电压信号。2.3 恒流源电路(线性稳压电源)的设计 系统设计的恒流源电路见下图,稳定输出5v电压。 图2.3.1恒流源电路2.4 放大电路的设计 信号放大电路,就是把模拟信号变换为用于数据采集、控制过程、执行计算显示读出或其他目的的数字信号。模拟传感器可测量很多物理量,如温度、压力、光强等,但由于传感器信号不能直接转换为数字数据,这是因为传感器输出是相当小的电压、电流或电阻变化,因此,在变换为数字信号之前必须进行放大,缓冲或定标模拟信号等,使其适合于模/数转换器(ADC)的输入。然后,ADC对模拟信号进行数字化,并把数字信号送到MCU或其他数字器件,以便用于系统的数据处理。该测温系统这部分电路的主要作用是用热电阻PT100配合电流源采集当前的温度并将其转换为电压信号,放大电路将这个微小的电压信号转换为可以输入A/D转换器的合适电压值。具体组成电路如图2.4.1所示。 图2.4.1信号放大电路 根据运放的“虚短”、“虚断”作用,结果将微小的电压信号放大转换为可以输入A/D转换器的合适电压值2.5 A/D模数转换模块ADC0809A/D模数转换器 ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关,地址锁存与译码器,比较器,8位开关数型A/D转换器,逐次逼近寄存器,逻辑控制和定时电路组成。 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输入信号变低,指示转换正在进行,直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断请求。转换结果的数字量输入到数据总线上,传送给单片机进行处理。 图2.5.1ADC0809CCN 2.6 DS1302时钟电路设计 DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。本设计中采用DS1302时钟芯片产生时钟信号,通过单片机进行处理控制,并显示出实时的时间,可以用于对温度进行实时的数据采集。1. 引脚功能及结构 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初 始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 DS1302的引脚功能图如图2-7所示。图2.6.1 DS1302引脚图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位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为 FEH(写)和FFH(读)。5.DS1302与单片机的连接DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。这三条线分别接到CPU的I/O线上。 图2.6.2 DS1302与CPU的连接2.7 单片机简介及控制电路89C51单片机简介:与MCS-51兼容,4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:十年。全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程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.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断0P3.3 /INT1外部中断1P3.4 T0计时器0外部输入P3.5 T1计时器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.2 89C51 图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是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部 分功能和使用。 我们用开发软件Keil uVision3来编写、修改所需程序和下载程序到单片机运行。其下介绍Keil uVision3的使用步骤。3.4程序设计流程图 本温度测量系统的程序设计流程图如图3.4所示。单片机初始化液晶初始化根据AD码算出电阻值根据电阻值算出温度值液晶显示延时开始 图3.4.1程序流程图 3.5温度程序#include#define uchar unsigned char#define uint unsigned int#define mynum temsbit LED1=P20;sbit LED2=P21;sbit LED3=P22;sbit LED4=P23;/四个数码管的位选sbit OE=P10; /AD转换输出使能端sbit EOC=P11; /AD转换结束标志sbit ST=P12; /开始AD转换和寄存器清零,下降沿为开始转换,上升沿为寄存器清零sbit CLK=P13; /ADC0809的时钟信号sbit C3=P14;sbit C2=P15;sbit C1=P16; uint adnum=0;uint ge=0,shi=0,bai=0,qian=0;uint mytime=0;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void delay(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void T0T1_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;void LED_init()/初始化数码管LED1=1;LED2=1;LED3=1;LED4=1;P0=0;void adc0809_init()/ADC0809初始化C3=0;C2=0;C1=0;ST=0;delay(1);ST=1;OE=0;CLK=0;void LED_display()P0=tableshi;LED1=0;delay(3);LED1=1;P0=tablege; LED2=0;delay(3);LED2=1;P0=0x63;LED3=0;delay(3);LED3=1;P0=0x39;LED4=0;delay(3);LED4=1;uint num_handle(uint adzhi)uint mid,midh,midl;mid=adzhi*50;midh=mid/256;midl=mid%256*100/256;return (midh*100+midl); void ad_handle()uint vnum,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;void main()LED_init();/对数码管的初始化adc0809_init();/对ADC0

温馨提示

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

评论

0/150

提交评论