当前位置:文档之家› PT100测温设计

PT100测温设计

学号:传感与检测技术题目学院专业班级姓名指导教师年月日目录1、设计任务与要求 (1)2、方案设计 (2)3、温度传感器的选择 (3)4、PT100热电阻工作原理介绍 (4)5、单元电路与参数计算 (6)5.1 PT100电压产生电路 (6)5.2仪表放大器 (7)5.3模数转换器 (9)5.4 LCD1602液晶显示 (10)5.5 AT89C52单片机电路 (13)6、软件设计 (14)6.1 程序流程图 (14)6.2 控制程序 (14)7、总的原理图 (20)8、感想与体会 (21)1、设计任务与要求《传感与检测技术》大作业的基本要求1.设计一个测温系统,要求测温范围200~500℃,分辨率为1℃。

2.画出系统结构框图,说明各电路的作用,系统实现的功能3.选择一种合适的温度传感器,说明选择理由。

3.说明该温度传感器的工作原理,推导输入输出关系式。

4.设计模拟信号调理电路,推导温度输入和调理电路输出的表达式;5.选择A/D转换器,计算放大器的放大倍数;6.设计人机接口电路,(参数如何设置?数据如何显示?)7.绘制基于单片机的温度测量系统的硬件电路图8.所采用测量数据的基本处理算法的流程图以及程序设计。

9.证明所设计的系统能够达到测温范围和分辨率的要求。

2、方案设计总的设计方案叙述如下:不同的温度使PT100产生不同电阻值,接上恒流源产生电压值,经过运算放大器组成的仪表放大器电路,输出与放大倍数有关的相应0到2.8V 的压降,再由TLC1543模数转换器采集并送给AT89C52单片机处理数据并显示相应的温度值到LCD1602液晶屏上。

不同的温度产生不同的电阻值,且基本上呈线性规律。

所以可以直接把该电阻通过直流源产生的电压经放大后送到单片机进行处理并显示。

设计框图如下:图1 系统设计框图3、温度传感器的选择常见的温度传感器有PT100、AD590、热电偶、DS18B20等。

AD590适用于150℃以下温度;DS18B20测温范围为-55℃~+125℃;热电偶测温范围大为-200℃~1300℃,特殊情况下为270℃~2800℃;PT100为热电阻传感器,测量范围-200℃~+850℃。

铂热电阻温度传感器pt100测温范围-200~850℃。

热电偶K型(镍铬-镍铝(硅))测温范围0~1100℃,短时间可测1300℃。

它们都是常用的温度传感器,作用一样。

铂热电阻测温精度高,它可以作为国际温标梯点温度之下的标准温度计。

它的阻值与温度变化呈线形关系。

不能测量高温。

测点温困难,使用中必须由外电流供电。

热电偶结构简单制造容易,测温精度高,温度范围广。

具有良好的复现性和稳定性,因此国际实用温标规定它是热力学温标的基准仪器。

它便于远距离测量,因为输出的是电势信号,可以不需要外加电源,使用方便。

但在低温领域中产生的热电势小,对仪表要求就高。

其输出电压与温度是函数关系。

热电偶使用中需要对冷端进行恒温处理或温度补偿。

根据实验要求,测量200℃到500℃的低温,用PT100热电阻效果较好,所以我选择PT100作为温度传感器。

4、PT100热电阻工作原理介绍热电阻的分度表如下:PT1005、单元电路与参数计算5.1 PT100电压产生电路图2 PT100电压产生电路给PT100并接一个0.1mA恒流源,在热电阻两端会产生和电阻线性相关的电压,由PT100的工作原理可知,此电压也和温度近似成线性关系。

5.2仪表放大器用分离元件构建仪表放大器需要花费很多的时间和精力,而采用集成仪表放大器或差分放大器则是一种简便而又可行的替换方案,另外,采用如下仪表放大器,电路放大差模信号,抑制共模信号,减少输入噪声的影响。

图3 仪用放大器典型结构1、根据运放的虚短、虚断性质,且R1=R2,则有Ui2 – Ui1 = Rg(Uo2 – Uo1)/(2R1 + Rg) 即: Uo2 – Uo1 = (1 + 2R1/Rg )(Ui2 – Ui1)令R5=Rf ,R3=R4=R ,所以输出电压V o = -Rf(Uo2 – Uo1)/R = -Rf (1 + 2R1/Rg )(Ui2 – Ui1) / R 设Uid = Ui2 – Ui1,为仪表放大器输入压降,即:V o = -Rf (1 + 2R1/Rg )Uid / R (1)A0 = V o / Uid = -Rf (1 + 2R1/Rg )/ R ············(2) 2、由热电偶分度表知200到500摄氏度压降变化范围是175.86Ω 到280.98Ω ,而输出的范围是17.6mV 到28.1mV ,用仪用放大器将电压放大100倍进行处理。

这里取 Rf = 200 K Ω R1 = 20K Ω Rg = 10K ΩUi1Ui2RfUo1Uo2R = 10KΩ由上述表达式(2)可以知道,放大倍数A0 = V o / Uid = -Rf(1 + 2R1/R2)/ R= 100 倍所以,得到电路图如图4。

图4中PT100两端电压为+20.2mV,而经过仿真仪用放大器输出电压为2.02V,所以知道理论数据与仿真所得数据相等,方案可行图4 仪用放大器电路原理图5.3模数转换器出于实验要求分辨率的考虑,本设计采用的模数转换器为性价比较高的TLC1543,精度为10位从而可实现分辨率为1℃。

模拟电压输入到TLC1543中进行AD转换,数字量串行输入到单片机中,单片机经过处理由数字电压值计算出相应的温度值显示到液晶屏上去。

系统设计中,我没有加偏置电路,PT100从0℃到500℃对应的电阻产生的电压经放大器放大后为0到2.8V,所以将TLC1543的+REF端设为+2.8V,便于AD转换后单片机的处理。

则量化单位q=2.8/1024,转换后的数字量tmp=U/q,其中U为TLC1543输入端的模拟电压,U=I*Rpt*Av,其中I为恒流源电流,Rpt为PT100的阻值,Av为仪用放大器的放大倍数。

图5 ADC的硬件连接原理图5.4 LCD1602液晶显示本设计采用LCD1602液晶作为显示部分,LCD1602的操作时序如下图,TLC1543采样得到的0到2.8V,转化为数字信号二进制数0到1024,而2.8V对应的PT100产生的电动势是:Ut = U / Av= 2.8V / 100 = 28 mV根据PT100热电阻分度表知其相应温度是500摄氏度,然后通过液晶屏显示出来,由图7看出仿真温度为493.8℃,存在一定的误差。

图6 LCD1602写时序图7 LCD1602硬件连接图5.5 AT89C52单片机电路AT89C52单片机电路包含晶振和复位电路,并通过内部程序和输入输出接口控制TLC1543进行AD转换和液晶屏显示温度。

电路如下图所示:图8 单片机电路double chuli(uint tmp){ double q,p,t;q=2.8/1024;//计算量化单位p=q*tmp/100/0.0001;//由单片机得到的数字量处理为PT100对应的电阻t=2.849*p-303.2;//由电阻值处理成温度值return(t);}以上为单片机进行温度处理的函数,其中t=2.849*p-303.2是用MATLAB对200℃到500℃时温度与电阻关系线性化的结果。

6、软件设计6.1 程序流程图6.2 控制程序#include<reg52.h>#include "intrins.h" //_nop_();延时函数用#define uchar unsigned char#define uint unsigned intuchar code table[]="0123456789.c";sbit lcden=P2^2;sbit lcdrs=P2^0;sbit so=P1^0;sbit address=P1^1;sbit _cs=P1^2;sbit clk=P1^3;sbit eoc=P1^4;uchar m,port=0;uint qian,bai,shi,ge,xiaoshu; uchar port;uint read1543(uchar);void Disp_temp(double );void init();void delay(uint );double chuli(uint );void main(){uint temp;double result;init();while(1){temp=read1543(port);delay(200);result=chuli(temp);Disp_temp(result);delay(200);}}double chuli(uint tmp){double q,p,t;q=2.8/1024;p=q*tmp/100/0.0001;t=2.849*p-303.2;return(t);}void init(){void write_com(uchar );lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);}uint read1543(uchar chn1) //从TLC1543读取采样值,形参port是采样的通道号{uint ad;uchar i;uchar add;eoc=1;clk=0;_cs=0;add=chn1;add<<=4;for (i=0;i<4;i++) //把通道号打入1543 {address=(bit)(add&0x80);clk=1;clk=0;add<<=1;}for (i=0;i<6;i++) //填充6个CLOCK {clk=1;clk=0;}_cs=1;while(!eoc);_nop_();_nop_();ad=0;_cs=0; //等待AD转换for (i=0;i<10;i++) //取D9,D8{clk=1;ad<<=1;m=so;ad+=m;clk=0;}_cs=1;return (ad);}void Disp_temp(double tmp)//温度显示{void write_data(uchar );void delay(uint );double wendu=tmp;bai=(uint)wendu%1000/100;shi=(uint)wendu%100/10; //取各位数字 ge=(uint)wendu%10;xiaoshu=(uint)wendu*1000%10;write_com(0x80);write_data(table[bai]);delay(5);write_data(table[shi]);delay(5);write_data(table[ge]);delay(5);write_data(table[10]);delay(5);write_data(table[xiaoshu]);delay(5);write_data(table[11]);delay(5);}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com){void delay(uint );lcdrs=0; //lcdrs低电平,写指令P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_data(uchar date){void delay(uint );lcdrs=1; //lcdrs为高,写数据P0=date;delay(5);lcden=1;delay(5);lcden=0;}7、总的原理图图9 总的系统原理图图中TLC1543和单片机的连线用标号代替8、感想与体会设计经过protues仿真,成功验证了理论计算并且得到了所期望的结果。

相关主题