pt100温度测量电子制作大赛参考设计原理报告_第1页
pt100温度测量电子制作大赛参考设计原理报告_第2页
pt100温度测量电子制作大赛参考设计原理报告_第3页
pt100温度测量电子制作大赛参考设计原理报告_第4页
pt100温度测量电子制作大赛参考设计原理报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

重庆邮电大学电子制作大赛设计报告 学院: 自动化学院 年级: 09级 姓名: xx xx xx 学号: 班级: 目录摘要1关键字2引言21 方案论证与设计22 原理分析与硬件电路图22.1恒流源式测温电路32.2 A/ D转换电路42.3 EEPROM存储芯片42.4 1602LCD液晶显示52.5 主芯片80C5153软件设计与流程63.1理论分析与计算63.2程序流程图84主要程序分析84.1 AD信号转换函数84.2计算函数94.3取样输出、线性插值函数94.4 1602液晶显示函数104.5门限温度调整函数114.6延时函数、报警函数114.7主函数125系统测试与误差分析135.1测试环境135.2测试仪器135.3测试方法135.4测试结果和分析145.5误差产生原因分析145总结14参考文献15简易温度测量装置摘要:本简易温度测量装置由单片机主控制模块,电源模块、温度采样与处理模块和数据转换模块和温度检测模块等构成,由c8051为主控单片机,由自行设计的恒流源式测温电路进行信号采样,运用集成运算放大器工作在线性区域的特性对信号进行非线性处理并放大后,通过TLC1549 10位AD芯片将模拟信号变成数字信号,再由LCD1602将实时温度显示在液晶屏上,实现了对温度的精确测量。本装置可对040C之间的温度进行测量,误差不超过正负0.5度,此外报警门限可手动设置,当温度达到门限值时蜂鸣器会发出警报声。该装置有测量精确,反应灵敏,设计简单,检测方便等特点。关键字:恒流源式测温电路 单片机 10位AD转换芯片 精确测量 引言温度是用来表征物体冷热程度的物理量, 它不可以直接测量, 但可以通过物体随温度变化其自身的某些特性( 如电阻、电压) 的变化来间接测量。通过研究发现, 金属铂的电阻值随温度变化而变化, 并且具有很好的重现性和稳定性, 利用此种温度特性制成的温度传感器称为铂热电阻温度传感器。使用最多的铂热电阻温度传感器零摄氏度标称中阻阻值为100 和10 , 电阻变化系数为0.。铂电阻温度传感器, 精度高, 稳定性好, 应用温度范围广, 是中低温区最常用的一种温度传感器, 不仅广泛用于工业测温, 而且被制成各种标准温度计供计量和校准使用。当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成近似匀速的增长。但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。1 方案论证与设计全系统由c8051做全局控制,由自行设计的温度采样电路进行信号采样,运用集成运算放大器工作在线性区域的特性对信号进行处理后,通过TLC1549 10位AD芯片将模拟信号变成数字信号,通过软件编程利用线性插值法去除铂电阻的部分非线性,线性化处理后的数字再由LCD1602将实时温度显示在液晶屏上,实现了对温度的精确测量和其他附加功能。本系统的优点在于成本低廉,减少硬件,并满足精度要求。不足之处在于,默认在040C之间铂电阻阻值与温度呈线性关系,但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。当测量电阻阻值很小时, 测试线的电阻可能带来误差。2 原理分析与硬件电路图根据题目要求,通过信号采集、放大,通过AD转换成数字信号后通过单片机的运算,计算出温度值,由于采用了10位的转换芯片,计算的温度值可精确到小数点后3位;同时eeprom将计算出的温度与门限温度对比,决定是否发出警报,门限温度可通过按键进行调整。信号采集门限值调整按 键1602输出温度值单片机运算放大报警EEPROM10位AD转换芯片将温度值与门限值进行比较图1 电路设计流程图2.1恒流源式测温电路测温原理:通过运放U1A将基准电压2.32V转换为恒流源,电流流过Pt100时在其上产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输出期望的电压信号,该信号可直接连AD转换芯片。 根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A的“+”端和“-”端电位V+V-2.32V;假设运放U1A的输出脚1对地电压为Vo,根据虚断概念,(0-V-)/R1+(Vo-V-)/RPt1000,因此电阻Pt100上的压降VPt100Vo-V-V-*RPt100/R1,因V-和R1均不变,因此图3虚线框内的电路等效为一个恒流源流过一个Pt100电阻,电流大小为V- /R1,Pt100上的压降仅和其自身变化的电阻值有关。 具体电路如下图所示:图2 恒流源式测温电路图2.2 A/ D转换电路 A/ D 部分为适合测控单元数据传输的需要,采用了TLC1549 芯片,与传统A/ D 芯片并行数据输出方式不同,该芯片采用串行数据输出方式,所以可以通过单片机输出的串行移位脉冲来控制采样数据的读取。TLC1549 的分辨率为10 位,为逐次逼近型的高速A/ D 芯片,内置采保功能和系统时钟,该芯片有3 个通道,其中两个数字量输入通道(片选CS 和内部时钟输出或外部时钟输入I/ O CLK) 和一个三态数据输出通道(DOUT),从而可以方便地实现A/ D 芯片与单片机之间的数据接口。A/ D转换电路如图3 所示。图3 A/ D转换电路图2.3 EEPROM存储芯片串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。本装置中用24c02存储门限温度,用于实时监控温度,当测量的外界温度达到门限值(最大或最小值)时,蜂鸣器将会报警。具体电路见下图:图3 EEPROM存储芯片连接图2.4 1602LCD液晶显示图4 1602LCD液晶显示电路2.5 主芯片80C51主芯片80C51存储程序,通过引脚控制其他芯片、电路,该温度测量装置总原理图如下图所示。图5 温度测量装置原理图3软件设计与流程 3.1理论分析与计算根据题目要求,铂电阻的阻值R会随着外界温度的变化而变化,而且在0到40之间大致呈线性状态,由图2得:通过运放U1A将基准电压2.32v转换为恒流源,电流流过Pt100时在其上产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输出期望的电压信号V0,该信号可直接连AD转换芯片。根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A的“+”端和“-”端电位V+V-2.32V;假设运放U1A的输出脚1对地电压为Vo,根据虚断概念,(0-V-)/R1+(Vo-V-)/RPt1000,因此电阻Pt100上的压降VPt100Vo-V-V-*RPt100/R1,因V-和R1均不变,因此图3虚线框内的电路等效为一个恒流源流过一个Pt100电阻,电流大小为V- /R1,Pt100上的压降仅和其自身变化的电阻值有关。 由于LCD1549芯片有10位分辨率,基准电压V基为2.32v,则模拟电压转换成数字电压后的分度值为V基/1024,电压信号V0与转换后的数字电压V1关系为:V0= V1*V基/1024,恒流源电流可以根据欧姆定律得:I=VR/R1=1.16mA, VR 稳压管电压,为2.32v,R1=2000,铂电阻的阻值R0= V0/I,由R0值对照铂电阻阻值和温度变化表即可得到当前的温度值。表1 Pt100热电阻分度表温度 0123456789电阻值()010203040100.00103.90107.79111.67115.54100.39104.29108.18112.06115.93100.78104.68108.57112.45116.31101.17105.07108.96112.83116.70101.56105.46109.35113.22117.08101.95105.85109.73113.61117.47102.34106.24110.1211+4.00117.86102.73106.63110.51114.38118.24103.12107.02110.90114.77118.63103.51107.40111.29115.15119.015060708090119.40123.24127.08130.90134.71119.78123.63127.46131.28135.09120.17124.01127.84131.66135.47120.55124.39128.22132.04135.85120.94124.78128.61132.42136.23121.32125.16128.99132.80136.61121.71125.54129.37133.18136.99122.09125.93129.75133.57137.37122.47126.31130.13133.95137.75122.86126.69130.52134.33138.133.2程序流程图否否否210是是是开始温度采集检测按键K1是否为0恒流源放大单片机计算出数字电压值显示最高温度门限值检测按键K1是否为0是否为0检测按键K2是否为0检测flag的值是0,1还是2设置门限温度值+1显示数字电压值、温度设置门限温度值-1显示最低温度门限值AD转换判断温度是否达到门限值蜂鸣器响是4主要程序分析4.1 AD信号转换函数通过此函数将模拟电压信号转换成数字的电压信号,根据公式V0= V1*V基/1024,int ad_read(void) uchar i = 0; int Temp = 0; adcs = 1; adclk = 0; adcs = 0; for( i = 0; i 10; i +) if(addata=1) Temp=Temp*2 + 1;else Temp=Temp*2; adclk = 1; adclk = 0; adcs = 1; return Temp; 4.2计算函数 通过公式由数字电压值计算出铂电阻电阻值、温度值。unsigned long dianzu() unsigned long r,V; V=(value*Vref*100)/1024; /10000倍AD输出的电压值 V=V/10; /真实值的10000倍 r=(V*2000)/VR; /扩大100倍的电阻值 return r; unsigned long wendu() uchar i; unsigned long da ,xiao ,t; for(i=0;i=xiao & Rda) break; t=(R-xiao)*1000/(da-xiao) +i*1000; /扩大1000倍的温度 return t; 4.3取样输出、线性插值函数通过线性插值,大大消除铂电阻阻值随温度变化的非线性,通过取平均值尽量减少了测量误差,使测量更精确。int quyang() uchar i; int average ,sum; for(i=0;i5;i+) sum=sum+ad_read();delay(5); average=sum/5; return average;4.4 1602液晶显示函数显示铂电阻阻值、温度、最高最低温度门限值以及门限温度调整值。显示铂电阻阻值、温度、最高最低温度门限值:void display_R() write_command(0x80+0x02);write_dat(R);write_dat(:); write_dat( (R/10000) +0x30);/Rwrite_dat( ( (R%10000)/1000)+0x30);write_dat( ( (R%1000)/100) +0x30);write_dat(.);write_dat( (R%100)/10 +0x30);write_dat( R%10 +0x30); write_command(0x80+0x40+0x02);write_dat(T);write_dat(:);write_dat( T/10000 +0x30); /Twrite_dat( (T%10000)/1000 +0x30);write_dat(.);write_dat( (T%1000)/100 +0x30);write_dat( (T%100)/10 +0x30);write_dat( T%10 +0x30);delay(10); 门限温度调整值:void display_set() temper1=read_addr(1); temper2=read_addr(2); write_command(0x80+0x02); write_dat(L); write_dat(o); write_dat(w); write_dat(e); write_dat(r); write_dat(:); write_dat(temper1/10 +0x30); write_dat(temper1%10 +0x30); write_dat( ); write_dat( ); write_command(0x80+0x40+0x02); write_dat(U); write_dat(p); write_dat(p); write_dat(e); write_dat(r); write_dat(:); write_dat(temper2/10 +0x30); write_dat(temper2%10 +0x30); write_dat( ); write_dat( ); delay(10);4.5门限温度调整函数通过按键调整(增加或减少)门限温度值void add() switch(flagK1) case 1: temper1+; write_addr(1,temper1); break; case 2: temper2+; write_addr(2,temper2); break; void sub() switch(flagK1) case 1: temper1-;write_addr(1,temper1); break; case 2: temper2-;write_addr(2,temper2); break; 4.6延时函数、报警函数当温度值超过门限值时,蜂鸣器会报警void beeper() if(Tread_addr(2) beep=1; else beep=0; 延时函数void delay(uint z) unsigned int x,y;for(x=z;x-;x0) for(y=110;y-;y0);4.7主函数void main() init_1602(); beep=0; while(1) value=quyang();R=dianzu();T=wendu();if(K1=0) delay(10); if(K1=0) flagK1+; if(flagK1=3) flagK1=0;while(!K1); if(K2=0) delay(10); if(K2=0) add(); while(!K2); if(K3=0) delay(5); if(K3=0) sub(); while(!K3); switch(flagK1) case 0: display_R(); break; case 1: display_set(); break; case 2: display_set(); break; beeper(); 5系统测试与误差分析5.1测试环境时间:2011年11月6日温度:205.2测试仪器(1)多功能数字万用表(2)简易温度测量装置 (3)单片机开发板(4)温度计5.3测试方法 用铂电阻测电阻周围的温度,铂电阻测得的温度值显示在1602屏幕上,定量改变铂电阻周围的温度值,统计出铂电阻测出的温度数据,将显示各数值同温度计上的数值进行比较,计算出各数值的误差值。检测当温度达到门限值时该装置会不会及时报警。5.4

温馨提示

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

评论

0/150

提交评论