电子测温计.docx
《电子测温计.docx》由会员分享,可在线阅读,更多相关《电子测温计.docx(19页珍藏版)》请在冰豆网上搜索。
电子测温计
***学院专业综合设计说明书
基于PT100热电阻的温度测量仪表的设计
学生学号:
学生姓名:
专业班级:
指导教师:
职称:
起止日期:
课程设计任务书
一、设计题目:
基于PT100传感器的温度测量系统的设计
二、设计目的
1.通过实验加深理解PT100测温原理及PT100调理电路;
2.掌握基于PT100温度传感器的测温系统的结构及组建方法,电路板的焊接及检测;
3.编写相关程序并进行调试,完成测温功能;
4.增强学生动手实践能力。
三、设计任务及要求
设计并实现温度传感器。
1.根据各器件的原理,制定相关方案,掌握各器件的工作原理;
2.参与设计过程,编写驱动程序,下载到单片机进行调试并完成相关功能;
4.完成硬件设计任论文。
四、设计时间及进度安排
设计时间共三周(2011.3.7~2011.3.27),具体安排如下表:
第一周
查找相关资料,制定设计方案,画出电路图,根据电路图进行电路板的焊接及检测
2011.3.7
~2011.3.13
第二周
查找相关资料,编写软件程序,进行调试,并完成功能
2011.3.14
~
2011.3.20
第三周
撰写并修改设计论文,直至完成。
2011.3.21
~
2011.3.27
五、指导教师评语及学生成绩
指导教师评语:
年月日
成绩
指导教师(签字):
摘要
本文首先简要介绍了铂电阻PT100的特性以及测温的方法,在此基础上阐述了基于PT100的温度测量系统设计。
在本设计中,是以PT100作为温度传感器,采用恒流测温的方法,通过单片机进行控制,用放大器、A/D转换器进行温度信号的采集。
另外,本设计采用了两线制铂电阻温度测量电路,通过对电路的设计,减小了测量电路及PT100自身的误差,使温控精度在0℃~100℃范围内达到±0.1℃。
本文采用SST89x516RD2单片机,ICL7135A/D转换器,MAX232串口芯片,铂电阻PT100及液晶显示器诺基亚3310组成系统,编写了相应的软件程序,使其实现温度的实时显示。
该系统的特点是:
结构简单,价格低廉;测量精确、稳定、可靠;测量范围大;使用对象广。
关键字:
PT100;温度采集;ICL7135;插值算法
第1章概述
随着科技的发,传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。
因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信与信息处理结合起来,适应传感器的生产、研制、开发和应用。
另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。
温度传感器是其中重要的一类传感器。
其发展速度之快,以及其应用之广,并且还有很大潜力。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
本文利用单片机结合温度传感器技术而开发设计了这一温度测量系统。
文中将传感器理论与单片机实际应用有机结合,详细地讲述了利用热电阻作为温度传感器来测量实时的温度,以及实现热电转换的原理过程。
本设计应用性比较强,设计系统可以作为温度测量显示系统,如果稍微改装可以做热水器温度调节系统、生产温度监控系统等等。
本课题主要任务是完成环境温度检测并显示温度。
设计后的系统具有操作方便,控制灵活移植性强等优点。
本设计系统包括温度传感器,信号放大电路,A/D转换模块,数据处理与控制模块,显示模块六个部分。
文中对每个部分功能、实现过程作了详细介绍。
整个系统的核心是进行温度测量与显示,完成了课题所有要求。
第2章硬件设计及其相关资料
2.1数字检测仪表的一般设计流程
作为数字检测仪表它的主要功能是把模拟信号转换成相应的数字信号,然后通过MCU的处理和运算,最后通过显示器进行显示,完成相应的处理功能。
因此,它的设计原理及流程如图2.1所示:
图2.1系统结构框图
2.2PT100传感器特性和测温原理
PT100温度传感器是一种以铂(Pt)做成的电阻式温度传感器,属于正电阻系数。
其电阻阻值与温度的关系可以近似用下式表示:
在0~650℃范围内:
Rt=R0(1+At+Bt2);在-200~0℃范围内:
Rt=R0(1+At+Bt2+C(t-100)t3)
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.测温范围:
-200~650摄氏度;2.测温精度:
0.1摄氏度;
3.稳定性:
0.1摄氏度
Pt100是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。
采取方案:
设计一个恒流源通过Pt100热电阻,通过检测Pt100上电压的变化来换算出温度。
2.3电源模块
电子技术课程中所介绍的直流稳压电源一般是线性稳压电源,它的特点是起电压调整功能的器件始终工作在线性放大区,由50Hz工频变压器、整流器、滤波器和串联调整稳压器组成。
它的基本工作原理为:
工频交流电源经过变压器降压、整流、滤波后成为一稳定的直流电。
图中其余部分是起电压调节,实现稳压作用的控制部分。
电源接上负载后,通过采样电路获得输出电压,将此输出电压与基准电压进行比较。
如果输出电压小于基准电压,则将误差值经过放大电路放大后送入调节器的输入端,通过调节器调节使输出电压增加,直到与基准值相等;如果输出电压大于基准电压,则通过调节器使输出减小。
这种稳压电源具有优良的纹波及动态响应特性。
本设计采用固定集成输出集成恒流电路,它主要由LM3851B12稳压管(1.2V)、电路图如图2.2所示
图2.2恒流源电路
对于恒流电路:
当稳压管LM3851.2v正常工作时,U1=1.2V。
放大器A是一个电压跟随电路,所以U2=U1=1.2V。
故,I=U/R5=1.2V/1kΩ=1.2mA。
为了减小温度对恒流源的影响,本设计采用两只三极管组成的复合管。
这样β=β1*β2,增强了恒流源的抗干扰能力。
放大倍数的计算如下:
ß=(20+3)/3=7.67
因此当负载接200Ω时候,该电路输出的最大电压为1.2*0.001*200*ß=1.84V<2V,满足要求
在此值得注意的是,稳流电源是实现本次设计的前提条件,必须反复测量改正,尽量达到期望范围。
综合电路安全考虑,电源输出电压在2V以下,为了更好的达到测量精确目的,电压又得无限接近这一值。
这一点调节放大环节的电阻来实现。
我组设计选用以上电阻,达到预期。
2.4A/D转换模块及ICL7135简单介绍
2.4.1A/D模块电路
ICI7135是4位双积分A/D转换芯片,可以转换输出±20000个数字量,有STB选通控制的BCD码输出,与微机接口十分方便。
图2.3A/D模块电路图
2.4.2ICL7135功能介绍
ICL7135具有精度高(相当于14位A/D转换),价格低的优点.其转换速度与时钟频率相关,每个转换周期均有:
自校准(调零),正向积分(被测模拟电压积分),反向积分(基准电压积分)和过零检测四个阶段组成,其中自校准时间为10001个脉冲,正向积分时间为10000个脉冲,反向积分直至电压到零为止(最大不超过20001个脉冲)。
故设计者可以采用从正向积分开始计数脉冲个数,到反向积分为零时停止计数。
将计数的脉冲个数减10000,即得到对应的模拟量。
图2.4给出了ICL7135时序,由图可见,当BUSY变高时开始正向积分,反向积分到零时BUSY变低,所以BUSY可以用于控制计数器的启动/停止。
图2.4ICL7135时序
ICL7135引脚图
ICL7135为DIP28封装,芯片引脚排列如图2.5所示
图2.5ICL7135芯片引脚
ICL7135相关引脚功能及含义如下:
表格1
V-
负电源引入端,典型值-5V,极限值-9V
V+
正电源引入端,典型值+5V,极限值+6V
DGND
数字地,ICL7135高低电平基准
REF
参考电压输入,REF的地为AGND引脚
INHI
模拟输入正
INLO
模拟输入负,当模拟信号输入为单端对地时,直接与AC相连
BUSY
忙信号输出,高电平有效
2.4.3输入电压Vin与参考电压Vref以及计数值C的关系
计数值C是指反积分阶段的计数值。
因此,设计中采用定时器0外部脉冲计数方法时,可通过上面的公式简单快捷的算出Vin来。
有了Vin,就可求出R来;有了R,就可通过R与温度T的关系,求出当前的温度值来。
实际上,这也就是编程中AD转换函数的算法和总体思想。
具体公式如下
C=
2.5单片机最小系统电路图
图2.5单片机最小系统电路图
2.6显示模块及诺基亚5510资料
2.6.1液晶接口电路
图2.6液晶接口电路
本LCD显示用NOKIA5510,设计为驱动48行84列队图形显示。
所有必需的显示功能集成在一块芯片上,包括LCD电压及偏置电压发生器只需很少外部元件且功耗少
表格2
D/C
数据命令选择端
SDIN
串行数据输入端
SCLK
串行时钟输入端
GND
地端
2.6.2液晶串行写数据时序
图2.7串行接口时序
2.7串口电路和MAX232芯片简介
2.7.1MAX232芯片简介
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
2.7.2串口电路
图2.8串口电路
第3章软件设计
3.1程序设计流程图
图3.1程序流图
3.2初始化程序
3.2.1液晶初始化程序
根据Nokia3310液晶说明书,此液晶的初始化应完成如下的工作:
复位;指令集的选择;设置显示模式;设置显示地址;清屏。
表格3
指令
D/C
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
描述
功能设置
0
0
0
1
0
0
PD
V
H
掉电控制,指令集选择
写数据
1
D7
D6
D5
D4
D3
D2
D1
D0
写数据至显示内存
H=0
显示控制
0
0
0
0
0
1
D
0
E
设置显示配置
设Y地址
0
0
1
0
0
0
Y2
Y1
Y0
设置Y地址
设X地址
0
1
X6
X5
X4
X3
X2
X1
X0
设置X地址
H=1
设置Vop
0
1
Vop6
Vop5
Vop4
Vop3
Vop2
Vop1
Vop1
写Vop到寄存器
voidLCD_Init()
{
LCD_Reset();
LCD_WriteCmd(0x21);//芯片激活并采用扩展指令集
LCD_WriteCmd(0xff);//写Vop寄存器为0
LCD_WriteCmd(0x20);//芯片激活采用基本指令集
LCD_WriteCmd(0x0c);//正常显示模式
LCD_WriteCmd(0x80);//设置X地址为0
LCD_WriteCmd(0x40);//设置Y地址为0
LCD_ClearScreen();
}
3.2.2单片机初始化程序
本次设计使用ICL7135进行A/D的转换,在程序的编制时需使用到单片机的计数器和外部中断,所以有必要对单片机进行初始化设置,初始化时应设置定时器0为16位计数器模式,gate位设置为高限制计数器在外部中断0引脚为高电平时开始计数,关于中断的初始化应该打开外部中断及总中断允许位,并设置外部中断0的触发方式为下降沿触发;
voidinit()
{
TMOD=0x0d;//1101,设置定时器0为16位计数器模式
TH0=0;TL0=0;//清空计数器
IT0=1;//设置外部中断0为下降沿触发方式
EX0=1;EA=1;//开外部中断及总中断
TR0=1;//启动计数器,等待busy端高电平开始计数
}
3.3液晶显示
图3.2液晶串行发送一个字节数据时序
本次设计使用串行方式进行液晶的数据发送,根据图3.2液晶的时序可知,进行数据(命令)的发送时应首先设置D/C=1(D/C=0)然后在SCLK的上升沿进行数据的按位发送;
voidLCD_WriteByte(BYTEbt)//写单字节函数
{
chari;
SCLK=0;
for(i=0;i<8;i++)//下降沿串行发送8位数据
{
bt<<=1;
SDIN=CY;
SCLK=1;
SCLK=0;
}
}
voidLCD_WriteCmd(BYTEx)//写命令函数
{
DC=0;//DC设置为0送命令
LCD_WriteByte(x);
}
voidLCD_WriteData(BYTEx)//写数据函数
{
DC=1;//DC=1送数据
LCD_WriteByte(x);
}
voidDispLcd()//液晶显示函数
{
sprintf(DispStr3,"电压:
%d%d",AD_Code,BusyCnt);//显示AD码
sprintf(DispStr2,"电阻:
%0.1f",rescode);//显示pt100当前电阻值
sprintf(DispStr1,"温度:
%0.1f",tempecode);//显示温度
PutStr(0,0,DispStr1);
PutStr(1,0,DispStr2);
PutStr(2,0,DispStr3);
}
3.4温度与电阻值的求取
在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。
插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。
由于pt100的特性曲线在实际中未必成绝对的线性,所以在程序的编写时需要考虑减小由于pt100的非线性而产生的误差,所以程序在编写时采用插值法以减小误差,具体原理即取相应数对数据,当给定一个定值时,寻找其前后最近的两组数据并以其为基础取出当前定值所在的映射,进而求出定值对应的具体值;相应程序如下:
voidgetres(unsignedintadcode)//取电阻函数
{
floatk=0,b=0;
unsignedchari=0;
for(i=0;((i<16)&&(adcode>ad[i]));i++)
;
k=(ad[i]-ad[i-1])/10;
b=ad[i]-k*res[i];
rescode=(adcode-b)/k;
}
voidgetempe(floatres)//取温度函数
{
floatk=0,b=0;
unsignedchari=0;
for(i=0;((i<34)&&(res>res2[i]));i++)
;
k=(res2[i]-res2[i-1])/10;
b=res2[i]-k*tempe[i];
tempecode=(res-b)/k;
}
第4章数据与误差分析
根据插值法,可以由测得数据获得液晶显示AD码与温度的近似关系。
然后将所获得的数据跟PT100分度表对照,可以用以检验自己的作品的精确性。
本次设计获得的数据如下表:
表格4
1
2
3
4
5
6
7
8
R(Ω)
50
60
70
80
90
100
110
120
AD
4932
5901
6870
7837
8805
9773
10744
11718
9
10
11
12
13
14
15
16
R(Ω)
130
140
150
160
170
180
190
200
AD
12685
13653
14621
15588
16555
17521
18488
19454
由图可知:
该曲线在开始阶段呈线性,利用插值法可以准确得到所想得到数值。
此时获得的结果是正确的。
而当电阻比较大的时候,曲线开始向下弯曲,此时如仍然使用线性插值法必然会造成误差。
造成曲线发生偏差的原因是多方面的。
可能是由于硬件焊接问题,或者器件选择方面的差异,还有就是数据线连接问题造成系统误差的存在。
结论
本设计中,是以温度采集及检测为总目标,以单片机最小应用系统为总控制中心,辅助设计有温度采集电路、A/D转换单元、LCD液晶显示等等,遇到了许多问题,如设计初始阶段目的不明,思绪混乱,经过认真思考和老师的指导,才使自己思路明确,抓住重点,不懂就问,在很短的时间内系统有序的完成。
温度检测是工业过程控制中一个重要参数,了解到温度检测的重要性,使自己在设计过程中,更加有兴趣和动力,在软件设计方面,遇到了一些实际问题,不过,在老师的指导和同学的帮助下都能一一解决,使自己学到了许多新的知识。
致谢
在本次硬件设计中,我得到了金老师的悉心指导,硬件制作到程序编写,程序的运行和论文的完成,老师自始自终都关心督促我们设计进程和进度,帮助解决设计中遇到的许多问题。
还不断向我们传授分析问题和解决问题的办法,并指出了正确的努力方向,使我在本次设计中学习到许多新的知识,也培养了我分析问题的能力和实践动手能力以及团队合作能力。
在这里非常感谢金老师的指导和帮助,并致以最诚挚的谢意!
由于自身水平有限,本次设计中一定存在很多不足之处,敬请老师批评指正。
再次感谢老师的指导与帮助。
参考文献
[1]童诗白,华成英.模拟电子技术基础.北京:
高等教育出版社,2006.5
[2]阎石.数字电子技术基础.北京:
高等教育出版社,2006.5
[3]张毅刚.MCS-51单片机应用设计.哈尔滨:
哈尔滨工业大学出版社,1990
[4]张毅刚.单片微机原理及应用.西安:
西安电子科技大学出版社,1994
[5]涂时这.单片机软件设计技术.重庆:
科学文献出版社重庆分社,1987
[6]赵广林.轻松跟我学Protel99SE电路设计与制版.北京:
电子工业出版社,2005
[7]翟玉文.电子设计与实践.北京:
中国电力出版社,2005
附录
整机电路: