基于PT100的温度测量系统.docx
- 文档编号:23832990
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:22
- 大小:343.86KB
基于PT100的温度测量系统.docx
《基于PT100的温度测量系统.docx》由会员分享,可在线阅读,更多相关《基于PT100的温度测量系统.docx(22页珍藏版)》请在冰豆网上搜索。
基于PT100的温度测量系统
前言
传感器技术在信息采集、信息传输和信息处理中,属于前沿尖端产品,尤其是温度传感器技术,在各个领域广泛应用,比方在工农业生产中需要实时测量温度等等。
因此研究温度的测量方法和装置具有重要的意义。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原那么而设计了本系统。
本文利用单片机结合温度传感器技术而开发设计了这一温度测量系统。
文中将传感器理论与单片机实际应用有机结合,详细地讲述了利用热电阻作为温度传感器来测量实时的温度,以及实现热电转换的原理过程。
本设计应用性比拟强,设计系统可以作为温度测量显示系统,如果稍微改装可以做热水器温度调节系统、生产温度监控系统等等。
本课题主要任务是完成环境性强等优点。
课程设计任务
本设计系统包括温度传感器,信号放大电路,A/D转换模块,时钟模块,数据处理与控制模块,温度、时间显示模块六个局部。
文中对每个局部功能、实现过程作了详细介绍。
整个系统的核心是进行温度测量与显示,完成了课题所有要求。
摘要:
本文采用AT89S51单片机,TLC2543A/D转换器,DS1302时钟芯片,AD620放大器,铂电阻PT100及8位数码管组成系统,编写了相应的软件程序,使其实现温度的实时显示。
该系统的特点是:
使用简便;测量精确、稳定、可靠;测量范围大;使用对象广。
关键词:
PT100单片机温度测量DS1302
Abstract:
ThesystemcontainsSCM(AT89S51),analogtodigitalconvertdepartment(TLC2543),DS1302chip,AD620amplifier,PT100platinum,LEDDigitaltubewithsix,writethecorrespondingsoftwareprogramtoachievereal-timetemperaturedisplay.Thesystemissimple,accurate,stableandwiderange.
Keywords:
PT100SCMTemperatureMeasuresDS1302
一方案设计与论证
传感器的选择
由于本设计的任务是要求测量的范围为0℃~100℃,测量的分辨率为±℃,综合价格以及后续的电路,决定采用线性度相对较好的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℃;
℃;
℃。
PT100温度传感器测量范围广:
-200℃~+650℃,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计采用PT100作为温度传感器。
采取方案:
设计一个恒流源通过PT100热电阻,通过检测PT100上的电压的变化来换算出温度。
系统的工作原理
测温的模拟电路是把当前PT100热电阻传感器的电阻值,转换为容易测量的电压值,经过放大器放大信号后送给A/D转换器把模拟电压转为数字信号后传给单片机AT89S51,单片机再根据公式换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到数码管进行显示。
另外,外接一个时钟芯片DS1302产生时钟信号送入到单片机中进行处理控制,并将时间显示出来,以实现温度的实时监控。
二硬件设计
2.1PT100传感器方案设计
Pt100是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。
采用Pt100测量温度一般有两种方案:
方案一:
设计一个恒流源通过Pt100热电阻,通过检测Pt100上电压的变化来换算出温度。
方案二:
采用惠斯顿电桥,电桥的四个电阻中三个是恒定的,另一个用Pt100热电阻,当Pt100电阻值变化时,测试端产生一个电势差,由此电势差换算出温度。
两种方案的区别只在于信号获取电路的不同,其原理上根本一致。
2.2信号调理电路
调理电路的作用是将来自于现场传感器的信号变换成前向通道中A/D转换器能识别的信号,作为本系统,由于温度传感器是热电阻PT100,因此调理电路完成的是怎样将与温度有关的电阻信号变换成能被A/D转换器接受的电压信号。
2.3恒流源电路(线性稳压电源)的设计
系统设计的恒流源电路见下列图,稳定输出5v电压。
2.4放大电路的设计
信号放大电路,就是把模拟信号变换为用于数据采集、控制过程、执行计算显示读出或其他目的的数字信号。
模拟传感器可测量很多物理量,如温度、压力、光强等,但由于传感器信号不能直接转换为数字数据,这是因为传感器输出是相当小的电压、电流或电阻变化,因此,在变换为数字信号之前必须进行放大,缓冲或定标模拟信号等,使其适合于模/数转换器(ADC)的输入。
然后,ADC对模拟信号进行数字化,并把数字信号送到MCU或其他数字器件,以便用于系统的数据处理。
该测温系统这局部电路的主要作用是用热电阻PT100配合电流源采集当前的温度并将其转换为电压信号,放大电路将这个微小的电压信号转换为可以输入A/D转换器的适宜电压值。
具体组成电路如图2.4.1所示。
根据运放的“虚短〞、“虚断〞作用,结果将微小的电压信号放大转换为可以输入A/D转换器的适宜电压值
2.5A/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.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〔读〕。
DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。
这三条线分别接到CPU的I/O线上。
图2.6.2DS1302与CPU的连接
单片机简介及控制电路
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
外部中断0
P3.3/INT1
外部中断1
P3.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.5串口电路
在单片机上,需要下载程序,使用串口方能完成此功能。
在焊好的单片机板上,伸出三个脚,用于电路的连接。
2.8显示模块
七段数码管LED
所有数码管通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示。
将所有数码管的8个显示笔“a,b,c,d,e,f,g,dp〞的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通有各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位就显示出字形,没有选通的数码管就不会亮。
三软件设计
主要介绍编程语言C语言和编程工具Keil3软件,以及本系统的程序设计和在程序设计时所遇到的问题及解决方法。
整个系统的功能是由硬件电路配合软件来实现的,当硬件根本定型后,软件的功能也就根本定下来了。
从软件的功能不同可分为两大类:
一是监控软件〔主程序〕,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。
二是执行软件〔子程序〕,它是用来完成各种实质性的功能,如测量,计算,显示,通讯等。
每个执行软件也就是一个小的功能执行模块。
这里将各执行模块一一列出,并为每个执行模块进行功能定义和接口定义。
各执行模块规划好之后,就可以规划监控程序了。
首先要根据系统的总体功能选择一种最适宜的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间的调度关系。
3.2编程语言介绍
C语言是一种面向过程的计算机程序设计语言,它是目前众多计算机语言中举世公认的优秀的结构程序设计语言之一。
C语言主要有以下特点:
1、C是中级语言。
它把高级语言的根本结构和语句与低级语言的实用性结合起来。
C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最根本的工作单元。
2、C是结构式语言。
结构式语言的显著特点是代码及数据的分隔化,即程序的各个局部除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
3、C语言功能齐全。
具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。
另外C语言也具有强大的图形功能,支持多种显示器和驱动器。
4、C语言适用范围大。
适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
基于C语言的这些特点,我们选用C语言来作为编程语言。
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能表达高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
我们用开发软件KeiluVision3来编写、修改所需程序和下载程序到单片机运行。
其下介绍KeiluVision3的使用步骤。
本温度测量系统的程序设计流程图如图3.4所示。
单片机初始化
液晶初始化
根据AD码算出电阻值
根据电阻值算出温度值
液晶显示
延时
开始
图3.4.1程序流程图
#include
#defineucharunsignedchar
#defineuintunsignedint
#definemynumtem
sbitLED1=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()interrupt1
{
CLK=~CLK;
}
voidT1_time()interrupt3
{
TH1=19453/256;
TL1=19453%256;
mytime++;
}
用改变温度使PT100模拟温度变化时阻值的变化。
程序运行时,在一定范围温度变化时,液晶显示屏上将显示此阻值对应的温度值,可知对应值是否正确。
四结论及心得
通过本次毕业设计,我了解并掌握了传感器的根本理论知识,更深入的掌握单片机的开发应用和编程控制。
虽然在制作过程中不可防止地遇到很多问题〔比方焊板原件焊反导致烧毁原件问题〕但是最后还是在老师以及同学的帮助下,经过屡次的修改和调试测量,使本设计根本符合设计要求,实现了整个系统设计与最后调试,相关指标到达预期的要求。
总之,我们小组很好地完成了本次设计任务。
为我们以后从事单片机软硬件产品的设计开发、打下了良好的根底。
参考文献
[1]周航慈.单片机应用程序设计[M],北京航空航天大学出版社,1991年8版;
[2]李建民.单片机在温度控制系统中的应用[M],江汉大学学报,1996年6版;
[3]郑建国.一种高精度的铂电阻温度测量方案,自动化仪表[M],1997;
[4]马家辰.MCS-51单片
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PT100 温度 测量 系统