基于PT10测温系统设计毕业设计.docx
《基于PT10测温系统设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于PT10测温系统设计毕业设计.docx(23页珍藏版)》请在冰豆网上搜索。
![基于PT10测温系统设计毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-1/7/ac77f363-6198-4dcc-ab48-6f1f15f89fa4/ac77f363-6198-4dcc-ab48-6f1f15f89fa41.gif)
基于PT10测温系统设计毕业设计
基于PT10测温系统设计——毕业设计
摘要
本设计是基于单片机的温度测量系统,具体采用了AT89S51单片机作为核心器件,PT100作为温度传感器,采用TLC2543来实现模拟信号到数字信号的转变,用四位共阳极LED数码管作为显示器。
根据该温度传感的特性,将温度的变化转换为电压变化,然后结合理论计算,设计调理电路,将输出的模拟信号进行A/D转换,在将数字信号传送到单片机进行处理,并把最终数值通过数码管显示,整个过程中使用protues软件进行仿真来进行调试,并检验设计成果。
关键字:
AT89S51单片机TLC2543PT100调理电路
1方案设计
1.1设计要求
设计一个测温系统,要求测温范围200~500℃,分辨率为1℃;
画出系统结构框图,说明各电路的作用,系统实现的功能;
选择一种合适的温度传感器,说明选择理由;
④说明该温度传感器的工作原理,推导输入输出关系式;
⑤设计模拟信号调理电路,推导温度输入和调理电路输出的表达式;
⑥选择A/D转换器,计算放大器的放大倍数;
⑦设计人机接口电路,(参数如何设置?
数据如何显示?
);
⑧绘制基于单片机的温度测量系统的硬件电路图;
⑨所采用测量数据的基本处理算法的流程图以及程序设计;
⑩证明所设计的系统能够达到测温范围和分辨率的要求。
1.2系统框图及原理
图1-1系统的总结构框图
该系统的设计原理为:
通过感温元器件可以将温度信号转换为电信号,一般选用电压信号,将电压信号经过滤波、放大达到一定要求之后就可以进行A/D转换,从模拟信号变成单片机可以识别和直接处理的数字信号,单片机经过一系列的算法,根据所采得的数字信号的值,反推温度出温度传感器所在环境的温度,并通过LED数码管显示相应的温度。
1.3器件的选型及介绍
1.3.1温度传感器的选型
温度传感器可分为接触式温度传感器和非接触式温度传感器两大类,非接触式温度传感器如红外温度传感器一般价格较为昂贵,适用于特备精密的场合,在本设计中明显不符合要求,故采用接触式温度传感器来完成本次设计任务。
常用接触式温度传感器主要有热电偶、热电阻以及集成温度传感器三大类:
○热电偶
热电偶的测温原理:
两种不同成分的导体(称为热电偶丝或热电极)两端接合成回路,当接合点的温度不同时,在回路中就会产生电动势,这种现象称为热电效应,热电偶就是利用这种原理进行温度测量的,其中,直接用作测量介质温度的一端叫做工作端(也称为测量端),另一端叫做冷端(也称为补偿端);冷端与显示仪表连接,显示出热电偶所产生的热电动势,通过查询热电偶分度表,即可得到被测介质温度,而这种电动势称为热电动势。
常用的热电偶从-50~+1600℃均可连续测量,某些特殊热电偶最低可测到-269℃(如金铁镍铬),最高可达+2800℃(如钨-铼)。
但由于热电偶普遍的线性度不太好,而且需要做冷端补偿,这样以来增加了电路设计的复杂性,且也给软件编程带来了不方便之处。
○集成温度传感器
集成温度传感器可分为模拟式温度传感器和数字式温度传感器,前者是将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片IC上,具有实际尺寸小、使用方便、灵敏度高、线性度好、响应速度快等优点,常用的模拟式温度传感器有LM3911、LM335、LM45、AD22103、AD590等;数字式温度传感器将敏感元件、A/D转换单元、存储器等集成在一个芯片上,直接输出反应被测温度的数字信号,使用方便,但响应速度较慢。
但除了集成温度传感器价格较高之外,一般集成温度传感器的测温范围-55℃~+150℃,远达不到本次设计所要求的200℃~500℃,故本次设计中不能应用集成温度传感器。
○热电阻
热电阻是基于电阻的热效应进行温度测量的,即电阻体的阻值随温度的变化而变化的特性。
因此,只要测量出感温热电阻的阻值变化,就可以测量出温度。
现阶段主要有金属热电阻和半导体热敏电阻两类。
金属热电阻一般适用于-200℃~500℃范围内的温度测量,其特点是测量准确、稳定性好、性能可靠。
半导体热敏电阻测温范围只有-50℃~300℃左右,且互换性较差,非线性严重,但温度系数更大,常温下的电阻值更高(通常在数千欧以上)。
故对于本次设计要求的来看,只能采用金属热电阻。
目前应用最广泛的热电阻材料是铂和铜:
铂电阻精度高,适用于中性和氧化性介质,稳定性好,具有一定的非线性,温度越高电阻变化率越小;铜电阻在测温范围内电阻值和温度呈线性关系,温度线数大,适用于无腐蚀介质,超过150℃易被氧化,所以对于要测量150℃以上的温度,宜采用铜电阻,其代表产品就是PT100。
PT100精度高,线性度较好,测温范围广,价格相对不高,是本次设计的首选温度传感器。
PT100温度传感器是一种以铂(Pt)做成的电阻式温度传感器,属于正电阻系数,
其电阻阻值与温度的关系可以近似用下式表示:
在0~650℃范围内:
Rt=R0(1+At+Bt2)
在-200~0℃范围内:
Rt=R0(1+At+Bt2+C(t-100)t3)
式中A、B、C为常数,
A=3.96847×10-3;
B=-5.847×10-7;
C=-4.22×10-12;
由于它的电阻—温度关系的线性度非常好,因此在测量较小范围内其电阻和温度变化的关系式如下:
R=Ro(1+αT)
其中α=0.00392,Ro为100Ω(在0℃的电阻值),T为华氏温度,因此铂做成的电阻式温度传感器,又称为PT100。
PT100温度传感器的测量范围广:
-200℃~650℃,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计即采用PT100作为温度传感器。
1.3.2A/D转换器的选型
鉴于本次设计要求测温系统的分辨率为1℃,测温范围是200~500℃,所以很明显若采用8位的A/D转换器,其分辨率为1.17℃,不满足要求,本设计可采用德州仪器公司生产的12位开关电容型逐次逼近模数转换器TLC2543,它具有三个控制输入端,采用简单的3线SPI串行接口可方便地与微机进行连接,是12位数据采集系统的最佳选择器件之一。
TLC2543的主要性能为:
①逐次逼近ADC,可选择工作于12位或8位;
②转换后的数据有12位一次读出,8位、4位两次读出两种读出方式;
③具有可控三态输出缓冲器,TTL电平。
④非线性误差:
AD574AJ为±1LSB,AD574AK为±1/2LSB;
⑤转换时间:
最大转换时间为25us(中档速度);
⑥输入模拟信号:
单极性时,范围为0V~+10V和0V~+20V,从不同引脚输入。
双极性输入时,范围为0V~±5V和0V~±10V,从不同引脚输入。
1.3.3显示器选型
鉴于本设计的只需要显示温度的大小,且需要显示的温度范围在200~500℃间,对精度的要求不太高,可以直接采用四位数码管显示,最后采用了7SEG-MPX2-CA四位共阳极LED数码显示器。
2硬件电路的设计
2.1信号测量电路
根据设计要求,首先需将温度传感器由温度信号转换为的电信号进行处理,使之能够稳定的映射到A/D转换器的功能。
鉴于一般使用的都是利用电压信号,而PT100的感温原理是其电阻随温度的变化而变化,为此我们可以使一恒流源串联PT100,然后输出其两端的电压信号。
之所以选择串联恒流源的方式,主要是考虑到这样来,输出电压和PT100的电阻值直接成正比关系,有很好的线性,而若采用电桥输出的话,输出电压和PT100的电阻值的关系是非线性的,对于测量精度来讲不太合适,而51单片机处理除法的计算能力较差,这样做会降低系统的反应速度。
图2.1测量电路
该恒流源是基于LM324进行的设计,通过运放的“虚短”和“虚断”的原则,可以很容易的计算出,流过PT100的电流大小:
I=UN+/R1
式中UN+指的是LM324的正相端输入电压,由图可以发现UN+是由TL431组成的电路输出所得,结合滑动变阻器RV2的配合,可以使其输出电压为4.096V,之所以要使输出电压为4.096V,是因为我们所选的A/D转换器是12位的,2的十二次方刚好等于4096,将基准电压设定为4.096V,可以减小进行A/D时的误差。
下面对该电路中使用的LM324以及TL431芯片进行一些简单的介绍。
○LM324
LM324是四运放集成电路,它采用14脚双列直插塑料封装。
它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。
两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。
○TL431
TL431是一个有良好的热稳定性能的三端可调分流基准电压源。
它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值。
该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管,例如,数字电压表,运放电路、可调压电源,开关电源等,其特点如下:
①可编程输出电压为36V;
②电压参考误差:
±0.4%;
③典型值@25℃(TL431B);
④低动态输出阻抗,典型0.22Ω;
⑤负载电流能力1.0mAto100mA;
⑥等效全范围温度系数50ppm/℃典型;
⑦温度补偿操作全额定工作温度范围;
⑧低输出噪声电。
2.2信号调理电路的设计
信号调理电路需要完成对信号的放大、滤波和偏置放大等任务,是信号实现远传的根本所在,也是单片机对原始信号进行处理前的必备流程,从某种意义上讲,信号调理电路是提高整个系统稳定性和测量精度的根本所在。
2.2.1首级放大电路
根据计算公式Vin=4.096*Rpt100/2k,式中Rpt100表示的是PT100在特定温度下的电阻值,由于需要测量的温度范围为200~500℃,查表可知,其电阻值的大小为175.86Ω280.98Ω之间,这样以来可知用恒流源通过PT100的输出的电压很小,大概为0.36~0.58V之间,不方便直接作为输入,故需要进行信号放大。
图2.2首级放大电路
该放大的电路的设计基于OP07C实现,Op07芯片是一种低噪声,非斩波稳零的双极性(双电源供电)运算放大器集成电路。
由于OP07具有非常低的输入失调电压,所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低和开环增益高的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
此电路的设计,充分考虑到了对OP07C供电电源的滤波,以及运放输入电阻平衡的要求,结合运放的特点,经过简单的分析便可知,该放大电路为反相放大器,具体放大倍数为10倍。
2.2.2偏置放大电路
经过首级放大电路的处理后,通过计算可以知道输出电压U1N大小为3.65~5.75V,为了方便,我们所用的A/D转换芯片的基准电压为5V,故需要将首级放大的输出电压拓展为0~5V。
为实现这个目的,可以先对U1N进行偏置得0~2.1V,然后对这个范围的电压进行2.4倍的信号放大。
本设计的偏置放大电路的设计便是围绕着这种思想设计而来。
图2.3偏置放大电路
该电路的设计原理介绍如下:
在本设计的实际应用中,运放的同相端设置了两个输入电压,一个为首级放大电路的输出电压U1N,另一个是利用滑动变阻器分压而得的一个电压值-3.64V,然后令Ra=Rb=2k,Rf=4.8k,使运放的输入电阻满足Ra//Rb//R’=R1//Rf,这样就达到了偏置和放大的要求,在误差允许的范围之类,完全可以满足所需要求。
2.3A/D转换电路
前面已经介绍,设计选用的A/D转换芯片为TLC2543,其引脚排列如图所示。
图2-4TLC2543的引脚
AIN0~AIN10:
模拟输入端,由内部多路器选择。
对4.1MHz的I/O CLOCK,驱动源阻抗必须小于或等于50Ω,而且用60pF电容俩限制模拟输入电压的斜率。
CS:
片选端。
在CS由高到低变化时,将复位内部计数器,并控制和使能DATA OUT、DATA INPUT和I/O CLOCK。
CS由低到高的变化时,将在一个设置时间内禁止DATA INPUT和I/O CLOCK。
DATA INPUT:
串行数据输入端,串行数据以MSB为前导并在I/O CLOCK的前4个上升沿移入4位地址,用来选择下一个要转换的模拟输入信号或测试电压,之后I/O CLOCK将余下的几位依次输入。
DATA OUT:
A/D转换结果三态输出端,在CS为高时,该引脚处于高阻状态;当CS为低时,该引脚由前一次转换结果的MSB值置成相应的逻辑电平。
EOC:
转换结束端。
在最后的I/O CLOCK下降沿之后,EOC由高电平变为低电平并保持到转换完成及数据准备传输。
VCC、GND:
电源正端、地。
REF+、REF-:
正、负基准电压端。
通常REF+接VCC,REF-接GND。
最大输入电压范围取决于两端电压差。
I/O CLOCK:
时钟输入/输出端。
TLC2543每次转换和数据传送使用16个时钟周期,且在每次传送周期之间插入CS的时序。
在TLC2543的CS变低时开始转换和传送过程,I/O CLOCK的前8个上升沿将8个输入数据位键入输入数据寄存器,同时它将前一次转换的数据的其余11位移出DATA OUT端,在I/O CLOCK下降沿时数据变化。
当CS为高时, I/O CLOCK和DATA INPUT被禁止,DATA OUT为高阻态。
本设计中TLC2543与单片机的连接如图所示。
图2.5A/D转换电路
2.4单片机电路及显示电路
图2.6单片机电路及显示电路
本设计使用51单片机为核心器件,其中P1口(P1.0~P1.3)为A/D转换器的通信接口,P2口接数码管的段码,P3口(P3.0~P3.3)接数码管的片选端,即负责确定位码。
对于单片机而言,需要构建其最小系统。
3软件设计
进行微机测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。
因此,软件设计在微机测量控制系统设计中占重要地位。
对于本系统而言,软件设计主要包括信号采集程序、信号处理程序、显示程序及主程序三大部分。
3.1信号采集控制程序
3.1.1信号采集全过程
上电后,片选cs必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。
开始时,片选CS为高,IO_CLOCK、DATA_INPUT被禁止,DATA_OUT呈高阻状态,EOC为高。
使CS变低,IO_CLOCK、DATA_INPUT使能,DATA_OUT脱离高阻状态。
12个时钟信号从IO_CLOCK端依次加入,随着时钟信号的加入,控制字从DATA_INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入)同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATA_OUT一位一位地移出。
TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。
在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10微秒,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。
此后,可以进行新的工作周期。
3.1.2程序流程图
图3.1信号采集控制程序流程图
3.1.3程序代码为
sbitCS=P1^2;//2543/CS
sbitIO_CLOCK=P1^3;//2543IOCLOCK
sbitDATA_IN=Pl^1;//2543DATAIN
sbitDATA_OUT=P1^0;//2543DATAOUT
unsignedintad_data;
sbitbit0=ad_data^8;
sbitbit7=B^7;
uintread2543(unsignedcharport)//A/D转换子程序
{unsignedchardataI;
ad_data=0;
port=port<<4;//端口高4位与低4位交换
B=port;
IO_CLOCK=0;
CS=1;
DATA_IN=0;
DATA_OUT=0;
CS=0;
delay();
for(i=1;i<=12;i++)//12位DATAINPUT
{DATA_IN=bit7;
IO_CLOCK=1;
B=B<<1;
IO_CL0CK=0;
}
CS=1;
delay();
CS=0;
delay();
for(i=1;i<=12;i++)//12位DATAOUTPUT
{bit0=DATA_OUT;
IO_CLOCK=1;
IO_CL0CK=0;
ad_data=ad_data<<1;
}
ad_data=ad_data>>1;
return(ad_data);
}
3.2信号处理
由于PT100的温度和所对应的电阻值的关系,并不是完全线性的,这里我们对其进行简单的线性化处理,具体是在200~300℃、300~400℃、400~500℃这三个温度范围内,将温度和电阻值的关系看做是一个正比例关系,这在编程上也容易实现。
经检验,此方法的误差很小,可以满足设计要求。
程序代码为:
uintdata_deal(uintAD)
{
floatr,ad,t;
uintT;
ad=(float)AD;
r=175.86+0.0257*ad;
if(r<175.86)t=200;
elseif(r>=175.86&&r<212.05)t=2.759*r-284.3;
elseif(r>=212.05&&r<247.09)t=2.849*r-303.4;
elseif(r>=247.09&&r<280.98)t=2.946*r-326.2;
elset=500;
return(T);
}
3.3数码管显示程序
uchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳LED段码表
uchartable_[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点共阳LED段码表
uchartable1[]={0x01,0x02,0x04,0x08};//位码
voidDisplay(uinttemp)//温度显示
{
qian=temp/1000;//取小数位数字
bai=temp%1000/100;
shi=temp%100/10;//取个位数字
ge=temp%10;
//动态扫描显示各位数字,P3.1-P3.4口输出位码
P3=0x00;
P2=table[qian];
P3=table1[3];
delay
(2);
P3=0x00;
P2=table[bai];
P3=table1[2];
delay
(2);
P3=0x00;
P2=table_[shi];
P3=table1[1];
delay
(2);
P3=0x00;
P2=table[ge];
P3=table1[0];
delay
(2);
}
3.4系统主程序
3.4.1主程序流程图
图3.2主程序流程图
3.4.2程序代码
voidmain()
{
while
(1)
{
Display(data_deal(read2543(port)));
}
}
4仿真调试
Proteus是英国Labcenter公司开发的电路分析与仿真软件。
该软件的特点如下:
①具有模拟电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能;
②具有全速、单步、设置断点等多种形式的调试功能;
③具有各种信号源和电路分析所需的虚拟仪表;
④支持KeilC51uVision2、MPLAB等第三方的软件编译和调试环境;
⑤具有强大的原理图到PCB板设计功能,可以输出多种格式的电路设计报表;拥有PROTEUS电子设计工具,就相当于拥有了一个电子设计和分析平台;
⑥集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具。
该系统设计过程中,利用keilC51uVision2将编写的C程序输出为.hex文件,然后再反正过程中,将该文件导入到51单片机中。
按照设计方案接连好线之后,在需要测量的地方放置模拟的电压表、电流表以及电压探针,便于分析设计电路中存在的不足,并立即进行相应的改善。
4.1仿真结果
在仿真界面中,先设定PT100的温度,然后将其与数码管的显示的数值进行比较,记录测量的六组数据如下表所示:
表4-1仿真结果记录
设定温度℃
200
250
300
350
400
500
显示温度℃
201.2
249.2
300.9
352.5
404.3
496.1
误差值℃
1.006
0.8
0.9
2.5
4.3
3.9
误差率%
0.53
0.32
0.3
0.714
1.07
0.78
4.2综合分析
4.2.1温度输入与调理电路的输出关系
设在温度T下,PT100的电阻值为RT,由于PT100是串联的一个恒流源,且该恒流源的电流大小为:
I=4.096V/2K,则PT100两端输出的电压为Vin=RT*4.096V/2K。
接着该电压经过首级放大,放大倍数为10倍,故经过首级放大电路之后,输出电压
U1N=RT*40.96V/2K,再然后该电压信号经过偏置放大电路(偏置放大电路的原理和设计方法前面有详细介绍),最终调理电路的输出表达式为:
Vo=2.4[(RT*4.096V/2K)-3.64]V
4.2.2误差分析
根据上述仿真结果可以看出,虽然本设计的误差率不是很明显,但根本上来讲,测量精度上存在很大缺陷。
现对误差产生的情况分析如下:
首先是仪器设备的原因,毕竟理想的元器件是不存在的,从仿真调试的情况来看,运放的理论放大倍数和实际放大倍数就存在一定的区别,为偏置放大电路的设计中,根据滑动变阻器的分压也无法得到理论上精确的-3.64V,而且导致的偏差还会被放大。
两外,设计的恒流源也无法做到真正的恒流,当PT100的温度设定的较高时,可以观察到流过PT100的电流会发生微小的下降。
虽然这些影响都不是很大,但对于12位、基于5V电压的A/D转换器来讲,微小的误差已经足够影响到其转换的数字信号的输出。
另外,在程序里面关于数据的处理问题,采用的是分段线性的办法,虽说PT100