欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    PT100温度巡检汇编.docx

    • 资源ID:13315924       资源大小:994.15KB        全文页数:28页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    PT100温度巡检汇编.docx

    1、PT100温度巡检汇编作者按以下是我一年半前的一个作品,全部工作历时两个多月,其过程不乏坎坷与艰辛,走过很多弯路,然而当我真正完成它的时候,却是无比欣慰。该作品的完成标志着我的技术上的一次蜕变。可以说是终于跨进了单片机的大门了。此次整理成章,并公开源代码,由于代码较多,完全的Keil uv2工程文件单独打包提交。由于是手工制作,这里只附有原理图。文中肯定会有不足之处,但是总体来说,内容完整,具体明了,对于51单片机的资源已经发挥得很全面,希望能对初学者有一点启示。基于MCS-51的智能温度巡检仪的设计孙卫兵江苏,徐州,中国矿业大学(文昌校区)信电学院 摘要:本文介绍了铂热电阻Pt100的特性和

    2、采用Pt100测量温度的一般原理,采用两片AT89S52单片机协同工作,实现AD转换、键盘扫描、LCD显示、及开关量控制输出、串口通信等功能,完成16路温度的巡回检测和超限报警。上位机采用Visual Basic高级语言设计友好的可视化人机界面,将其所接收的信号以表格形式显示出巡检对象的温度状况。关键字: Pt100 ;温度测量 ;单片机 1引言在工业生产过程中,温度一直都是一个很重要的物理参数,温度的检测和控制直接和安全生产、产品质量、生产效率、节约能源等重大技术经济指标相联系,因此在国民经济的各个领域中都受到了人们的普遍重视。随着传感器技术和电子测量技术的迅猛发展,以单片机为主的嵌入式系统

    3、已广泛应用于工业现场,新型的电子测温仪器不仅操作简单,而且精度比传统仪器有很大提高。目前在工业生产现场使用最广泛的温度传感器主要有热电偶和热电阻,例如铂热电阻Pt100就是使用最广泛的传感器之一。本文介绍的就是采用PT100设计的16路温度巡回检测仪,由两片AT89S52单片机协同工作完成。2 Pt100的特性铂电阻是用很细的铂丝(0.030.07mm)绕在云母支架上制成,是国际公认的高精度测温标准传感器。因为铂电阻在氧化性介质中,甚至高温下其物理、化学性质都非常稳定,因此它具有精度高、稳定性好、性能可靠的特点。铂电阻在中温(-200650)范围内得到广泛应用。目前市场上已有用金属铂制作成的标

    4、准测温热电阻,如Pt100、Pt500、Pt1000等。它的电阻温度关系的线性度非常好,如图1所示是其电阻温度关系曲线,在-200650温度范围内线性度已经非常接近直线。由于铂电阻的测量精度、测量范围、线性度等特性都非常好,在工业生产中应用最广,市场上已有用金属铂制作成的标准测温热电阻,如Pt100、Pt500、Pt1000等。本系统采用的是Pt100,它的电阻温度关系的线性度非常好,如图1所示是其电阻温度关系曲线,在-200650温度范围内线性度已经非常接近直线。图1 Pt100的电阻温度关系曲线铂电阻阻值与温度的关系可以近似用下式表示:在0650范围内:Rt =R0 (1+At+Bt2)(

    5、1)在-1900范围内:Rt =R0 (1+At+Bt2+C(t-100)t3)(2)式中A、B、C为常数,A=3.9684710-3;B=-5.84710-7;C=-4.2210-12;Rt为温度为t时的电阻值;R0为温度为0时的电阻值,对于Pt100这种型号的铂热电阻,R0就等于100,即环境温度等于0度的时候,Pt100的阻值就是100。当温度变化的时候,通过以上电阻-温度表达式计算出环境的温度。但由于该表达式相对来说比较复杂,若用单片机处理这相的计算过程,将会占用大量的资源,程序的编写上也相当复杂,所以一般采用先查表再插值的方法。3 Pt100测温原理Pt100是电阻式温度传感器,测温

    6、的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,再将模拟信号转换成数字信号,再由处理器换算出相应温度。采用Pt100测量温度一般有两种方案:1.设计一个恒流源通过Pt100热电阻,通过检测Pt100上电压的变化来换算出温度;2.采用惠斯顿电桥,电桥的四个电阻中三个是恒定的,另一个用Pt100热电阻,当Pt100电阻值变化时,测试端产生一个电势差,由此电势差换算出温度。两种方案的区别只在于信号获取电路的不同,其原理上基本一致,如图2所示。本文采用恒流源做为信号获取电路的测温方案,恒流源通过Pt100热电阻,温度变化引起Pt100电阻值的变化,从引起电压的变化,放大后经

    7、AD采用后,送由单片机处理,换算出相应温度。为了达到高精度、宽量程的测温要求,选用的是AD转换芯片是12位串行AD芯片MAX1270。图2 Pt100测温原理4系统结构与实现方法根据智能仪器的基本设计思想,系统采用模块化设计,根据仪器的功能要求和技术指标,遵循自上而下,由大到小,由粗到细的思想,按照仪器的功能层次,把硬件和软件分成若干个功能模块,分别进行设计和调试;然后把它们连接起来,进行总调。本智能温度巡检仪的结构框图如图3所示,主要由四大部分:图3 智能温度巡检仪的原理框图4.1 恒流源的设计由于温度信号是由恒流源通过铂热电阻Pt100,通过检测Pt100上的电压变化量而获得的,所以设计一

    8、个稳定的恒流源尤为重要。如图4所示,是一个由两个三极管和一个运算放大器构成的恒流源电路,其中Rc是100的标准精密电阻。NPN型三极管9013的Vce相当于一个PN结的压降,实际测量约等于0.6V,由运算放大器具有很大有输入阻抗和很小的输出阻抗,由其虚短和虚断的特性可以知道PNP型三极管9012的射极电压等于三极管9013的射极电压,因此电阻Rc两端的电压等于三极管9013的Vce,即等于V恒值0.6V,则9012的射极电流Ie=0.6V/100=6mA由三极管的电流放大特性可知,三极管9012的基极电流Ib非常小,可以忽略不计,则集电极电流Ic近似等于Ie,即Ic6mA。由此在9012的集电

    9、极就构成了一个非常稳定的恒流源。图4 恒流源电路4.2 Pt100的四线式接线方法对导线电阻进行补偿铂热电阻的使用,一般有三种接法,分别是二线制接法、三线制接法和四线制接法,如图5所示,不同的接法适应于不同的精度要不求。 (a) 二线制 (b) 三线制 (c) 四线制 图5 Pt100三种接线方式1.二线制接法:如图4(a)所示,这种接法不考虑Pt100电缆的导线电阻,将A/D采样端与电流源的正极输出端接在一起,这种接法由于没有考虑测温电缆的电阻,因此只能适用于测温距离较近的场合。2.三线制接法:如图4(b)所示,这种接法增加了用于A/D采样的补偿线,三线制接法消除了连接导线电阻引起的测量误差

    10、,这种接法适用于中等测温距离的场合。3.四线制接法:如图4(c)所示,这种接法不仅增加了A/D采样补偿线,还加了一条A/D对地的补偿线,这样可以近一步的减小测量误差,可以用于测温距离较远的场合。如果只从精度上考虑,采用四线制接法效果最好。4.3 多通道的巡回切换本系统是一个多路巡检的系统,为了实现多路检测,如果在每一路都接一个恒流源和一个A/D采样通道,显然太浪费资源,所以要使用模拟通道开关芯片,可以实现多个通道的快捷切换,这样只要一路恒流源,一路A/D采样通道即可实现多路巡检功能,同时还可以保证各通道电流的一致性。本系统使用的模拟通道开关芯片是MAXIM公司的16路模拟通道芯片MAX396。

    11、该芯片通过地址线A3A0结合使能端EN,选择一路通道与COM端接通,因此只要由单片机控制地址线A3A0的地址递增,即可实现16路通道的巡回切换,使用非常方便。本系统中使用了两片MAX396,分别用于恒流源的A/D采样通道的切换,因为恒流源与A/D采样通道是要同步进行切换的,因此两片MAX396的的地址线是并连的。本系统中MAX396的接口电路如图6所示,没有外围元器件,非常简单。图6 MAX396的接口电路4.4 使用MAX1270进行 AD转换图7 MAX1270接口电路本系统采用的AD转换器是MAXIM公司的单电源12位串行AD转换芯片MAX1270,采用内部4.096V的参考电压,时钟由

    12、外部的单片机的I/O口提供,单片机采用软件模拟SPI与MAX1270通信,从而控制A/D采样和获取量化后的数字量。电路如图7所示。需要注意的是MAX1270具有多种工作模式:时钟有内部外部之分,参考电压有内部4.096V和外部参考电压之分。工作模式的选择由输入控制字决定,其输入控制字格式如表1所示:START是开始位,在/CS置低后START为逻辑“1”时表示输入控制字的开始;SEL2SEL0表示A/D采样通道的选择位,RNG表示满刻度输入电压选择位,RNG0时,电压VDD5V,RNG1时,电压VDD10V;BIP是单极性与双极性输入电压模式选择位,BIP0时,表示单极性输入电压,BIP1时,

    13、表示有正负双极性输入电压;PD1、PD0是电源和时钟模式选择位,PD00表示内部时钟,PD01表示外部时钟。表1 MAX1270控制字BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0STARTSEL2SEL1SEL0RNGBIPPD1PD0本系统采用的是外部时钟工作模式,其时序如图8所示,只要编程时严格按照此时序图读写数据,就可以正确地采样到外部被采样的电压。本系统中MAX1270使用5V电压供电,外部时钟,采样通道为CH7,因此输入控制字为11110001B。图8 MAX1270的外部时钟工作模式时序图4.5 信号的处理由于外界干扰或某些不可预知的因素,模拟量在受到干扰后,经

    14、A/D转换后的结果偏离了真实值,可能会出现一些随机的误差,如果只采样一次,无法确定结果是否可信。必须通过多次采样得到一个A/D转换的数据序列,通过软件算法处理后才能得到一个可信度较高的结果。这种方法就是数字滤波。数字滤波的前提是对同一数据进行多次采样,在单片机系统中一般有:中值滤波、算术平均滤波、去极值平均滤波、加权平均滤波、滑动平均滤波等。在本系统中采用的是去极值均值滤波,程序流程图如图9所示。算法原理如下:对于温度信号对应的电压采样值,连续采样n次,将其累加求和,同时找出其中最大值和最小值,再从累加和中减去最大值和最小值,按n-2个采样值求平均,即有效采样值。图9 去极值平均滤波程序流程图

    15、由Pt100的特性可知,虽然Pt100的线性度比较好,但是由于其温度电阻函数关系并非线性,用单片机运算则占用资源和时间都比较多。通常采用查表和线性插值算法进行标度变换的方法计算出温度,不仅运算快、占用单片机内部资源少,而且可以一定程度上对Pt100进行线性化校正,从而达到非常精确的测温效果。图10 插值算法示意图要查表首先要在单片机的ROM区建立一个电阻温度分度表,在检测值的范围内均匀选择若干个标定点,标定的点数越多则表格越大,对系统的描述也越精确。Pt100的铂电阻温度分度表,可以向Pt100的厂商索要,考虑到单片机的程序存储空间资源和实际的测量精度要求,并不需要每隔一摄氏度就取一个标定点,

    16、根据精度要求选择适当的温度间隔。例如在-200650范围内每隔5标定一个Pt100的电阻值,即共171个标定点,分别记作Ri,对应的温度记作Ti,i取0170。如图10所示,采用线性插值算法进行标度变换时,将检测值Rx通过顺序查表,与标定点Ri比较,确定区间Ri RxR i+1,然后进行线性插值算法求得温度值Tx:因为是每隔5标定一个电阻值,所以Ti+1- Ti=5,即:举例:现经A/D采样和滤波得Pt100的电阻值为Rx=112.68,求此时实测对象的温度Tx。解:已知查Rx=112.68,表得 R46RxR47, R46111.67,R47113.61,T46=30,代入式2得:()答:此

    17、时实测对象的温度Tx为32.60。4.6 键盘的扫描本系统主要是采用了常用的44矩阵式键盘,工作方式采用的是外部中断扫描,如图11所示。中断式键盘扫描原理是:当有键按下将会触发一个中断源,提醒处理器进行键值扫描查询。键盘的中断方式一般有定时中断和外部中断两种,本系统采用的是外部中断INT0。单片机先让行线输出低电平,当有键按下时列线电平不全为高,四输入与门输出端产生下降沿,将触发外部中断INT0,单片机进入中断后先延时去抖动,再扫描查寻键盘,读出键值,然后处理相应的键值处理子程序,无键按下则不进入中断,单片机不扫描,从而节约了大量的资源。图11 矩阵中断式扫描键盘4.7 LCD显示驱动设计在本

    18、文设计的智能温度巡检仪中使用了金鹏公司的OCMJ5*10B型的16080图形点阵LCD显示模块,它自身带有汉字字库,不仅软件操作简单,而且外围电路也很简单。系统用它显示通道序号、温度和系统参数等信息。由于屏幕较大,全屏可以同时显示8路通道的温度信息,使用户不用繁琐地按键就可以查看到多路温度信息,非常方便,LCD电路如图12(a)所示:1、2端为背光电源端;3、4端为LCD模块电源端;512为数据端;13为BUSY应答信号端,1表示已收到数据并正在处理中,0表示模块空闲;14为REQ是请求信号,高电平有效;15为复位端节;16为空脚下;17、18为LCD灰度调节端。 (a) LCD显示器 (b)

    19、发光二极管显示图12 系统显示器电路另外,系统还加了三个发光二极管,分别是绿、黄、红三种不同颜色,用于显示检测对象的温度情况。绿色表示温度正常,黄色检测对象温度超过报警温度,红色表示温度已超过危险温度。发光二极管电路如图11(b)所示。4.8 串口通信本系统与上位机的通信使用的是RS-232标准,驱动芯片是常用的MAX232A,电路芯片手册里的参考电路,非常简单,如图13所示。图13 RS-232驱动电路4.9 控制输出电路系统针对两个温度上限(报警温度和危险温度)设计了两个开关量输出。输出电路如图14所示,单片机的I/O口输出的TTL电平经过经由光电耦合来打开或关闭可控硅,从而开关外部设备,

    20、如设备散热风扇、检测对象的加热器的电源等。图14 开关量控制输出电路4.10 通信数据格式的约定系统中共有两个单片机和一个上位机PC,彼此之间都需要进行数据通信,为了方便通信,系统应该约定一个通用的数据格式。就此对本系统的通信数据帧做以下约定:控制命令与数据都采用ASCII码表示,通过串口传输ASCII码,单片机或上位机PC发送或接收的数据都严格按照以下帧格式操作:一.串口参数设置波特率,校验位,数据位,停止位,端口号可选 Null 8 1 可选二.格式符号约定开始标志 :X结束标志 :Y类型标识符 : (A,B,C)报警温度T1 : (末位为小数)危险温度T2 : (末位为小数)波特率序号

    21、:通道序号 N :通道温度 T : (ASC码,末位为小数,对上位机)通道温度 t :(flag_abs)0 (整型,对单片机A)三.帧结构设计 (一)更新数据命令(PC与单片机都可以用)1. 更新报警温度(A) 帧结构:开始类型 T1 结束 X A 0000 Y2. 更新报危险温度(B) 帧结构:开始类型 T2 结束 X B 0000 Y3. 更新波特率(C) 帧结构:开始类型波特率序号 结束 X C 00000 Y4. 更新各通道温度(D) (对上位机) 帧结构:开始类型通道序号 温度 结束 X D Y5. 更新各通道温度(d) (对I/O接口部分的单片机) 帧结构:开始类型通道序号 温度

    22、 结束 X d (flag_abs)0 Y(二)请求命令(只有PC端可以用)6. PC机请求读取单片机的设置参数的请求命令(E) 帧结构:开始类型 结束 X E Y7. PC机请求更新温度请求命令(F) 帧结构:开始类型 结束X F Y(三)控制命令(只有PC端可以用)8. PC机控制单片机的状态自检命令(G) 帧结构:开始类型 结束X G Y5 本设计中C51编程的例子我个人对C51的认识是:C51与标准C相比,只是对单片机定义一个头文件,使程序与单片机的IO口和内部寄存器关联起来,另外,针对单片机的特点,多了一种位变量的数据类型。在使用Keil的时候,不要忘了加上正确的头文件,除了单片机相

    23、应的头文件,Keil C也自带了一些常用头文件,如string.h、intrins.h等,具体都有哪些函数,还是自己找到这些头文件好好研读一遍最好。网上相应的教程也不少。多上技术论坛,会有意外的惊喜!也许真正的高手不会天天泡论坛,但是,三人行,必有我师!5.1 液晶模块的驱动目前很多LCD液晶模块已经做得很完善,使用也很简单,称为LCM,以金鹏公司的OCMJ5*10B型LCM为例:该LCM是16080图形文字液晶,自带字库,并行接口,只要按时输入厂家的命令即可完成图形、文字、点、线、反白等功能。如图15所示是处理器对模块写命令的时序图。举例如下:图15 LCD模块写命令时序图/-/硬件连接线定

    24、义,使用时需另外定义#define LCD_OUT P2 /P2口作为LCD的数据端口sbit LCD_BUSY=P34; /P3.4口为忙标志信号sbit LCD_REQ=P35; /P3.5口为请求信号/-/程序名:extern void sub_lcd(uchar in)/功能:OCMJ5*10B型LCD驱动子程序/说明:在in中传入要发送的字节extern void sub_lcd(uchar in) while(LCD_BUSY); /等到LCD不忙的时候,方能开始写命令字 _nop_(); LCD_OUT=in; /要数据端口准备好数据 _nop_(); LCD_REQ=1; /请

    25、求输入命令 while(!LCD_BUSY); /接收数据中,BUSY会保持“1”状态,完成接收命令,恢复“0” _nop_(); LCD_REQ=0; /完成接收一个命令后清除请求信号 _nop_();/-/程序名:extern void ini_OCMJ(void);/功能:OCMJ5*10B型LCD初始化子程序extern void ini_OCMJ(void) LCD_OUT=0xff; /输出端口初始化 _nop_(); LCD_REQ = 0; /表示无请求 _nop_(); LCD_BUSY = 1; /置为输入 _nop_(); sub_lcd(0xf4); /0xf4是清屏命

    26、令,更多命令见LCM的说明书 _nop_(); _nop_(); 如上,sub_lcd(uchar in)是按时序送命令的函数,ini_OCMJ(void)是LCD初始化函数,其实就是送入一个清屏命令字(0xf4),更多功能的函数源代码见附件程序包中OCMJ_LCD.c文件。5.2 串口通信在“hello world.c”的例子里有输出函数printf(),对于Keil中的51单片机,printf()函数的输出设备是串口,因此,使用前必须设定好单片机的串口相关的寄存器。这就是为什么有些同学直接把“标准C”里的没有问题的“hello world.c”Copy到Keil里却不见有输出的原因。另外,

    27、串口输出可以直接对SBUF寄存器赋值,而不需要用printf(),对于串口的设置例子如下:/-/串口初始化设置void initUart(void) SCON = 0x50; /串口方式1,允许接收 TMOD = 0x20; /定时器1定时方式2 TCON = 0x40; /设定时器1开始计数 TH1 = 0xE6; /12MHz 1200波特率 TL1 = 0xE6; TI = 1; TR1 = 1; /启动定时器1 ES=1;/-/向串口发送一个字符 void send_char_com( unsigned char ch) SBUF=ch; while (TI= 0 ); TI= 0 ;

    28、 /向串口发送一个字符串,strlen为该字符串长度 void send_string_com( unsigned char *str, unsigned int strlen) unsigned int k= 0 ; do send_char_com(*(str + k); k+; while (k strlen); 5.3 数字信号处理前面已经介绍过单片机中常用的数字信号处理方法,下面是一个对串行12位AD芯片MAX1270进行10次采样,去极值平均滤波并进行温度插值换算的函数。其中用到的一些变量和函数可以在程序包里找到。int Read_T() float Rx;int Vin10;in

    29、t Tx,Vmax=0,Vmin=0,Vsum=0;uchar i; for (i=0;i10;i+) SPI(0xf0); Vini=(BUFH4&0x0f)*256+BUFL8); Vsum=Vsum+Vini; Vmax=Vin0; Vmin=Vin0; for (i=0;i10;i+) if (Vmax=Vini) Vmin=Vini ; Rx=(Vsum-Vmin-Vmax)/(8*I_mA); for (i=0;i133;i+) if (Rx=Pt_Ri) Tx=(Rx-Pt_Ri-1)*5/(Pt_Ri-Pt_Ri-1)+5*i-55)*10 ; break; return Tx; 6 结论本方案充分利用单片机的数据处理及实时检测能力,采用Pt100标准热电阻温度传感器的四线制接法,对导线电阻进行补偿,通过单片机对信号进行采样、数字滤波,使用插值算法对传感器进行非线性校正处理,使


    注意事项

    本文(PT100温度巡检汇编.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开