


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、系统功能说明1.1主要技术指标1) 测温范围:-200600摄氏度;2) 测温精度:0.5摄氏度;3) 稳定性:0.5摄氏度1.2 PT100传感器电阻式温度传感器(RTD, Resista nee Temperature Detector)是指一种物质材料作成的电阻,它会随温度的改变而改变电阻值。PT100温度传感器是一种以铂(Pt)做成的电阻式温度传感器,属于正电阻系 数,其电阻阻值与温度的关系可以近似用下式表示:在o600r范围内:Rt =R0 (1+At+Bt 2)在-200or范围内:Rt =R0 (1+At+Bt 2+C(t-100)t 3)式中A、B、C为常数,A=3.9684
2、7 X 10-3 ;B=-5.847 X 10-7;C=-4.22 X 10-12;由于它的电阻一温度关系的线性度非常好,因此在测量较小范围内其电阻和 温度变化的关系式如下:R=Ro(1+a T)其中a =0.00392, Ro为100Q (在0C的电阻值),T为华氏温度,因此铂做成 的电阻式温度传感器,又称为 PT1001.2.1 PT100传感器特性PT100温度传感器的测量范围广:-200 r+600E,偏差小,响应时间短, 还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本 设计即采用PT100作为温度传感器。1.2.2 PT100传感器测量原理Pt100是电阻式温
3、度传感器,测温的本质其实是测量传感器的电阻,通常是将电 阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。采用 Pt100测量温度一般有两种方法:方案一:设计一个恒流源通过Pt100热电阻,通过检测Pt100上电压的变化 来换算出温度;测温原理:通过运放U1A各基准电压4.096V转换为恒流源,电流流过Pt100时 在其上产生压降,再通过运放U1B各该微弱压降信号放大(图中放大倍数为10), 即输出期望的电压信号,该信号可直接连 AD专换芯片。根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A勺“ +”端和“-”端电位V+= V
4、亠4.096V ;假设运放U1A勺输出脚1对地电压 为Vo,根据虚断概念,(0-V- ) /R1+ (Vo-V-) /R = 0,因此电阻Pt100上的压 降10。= Vo-V亠V-*Rpt100/R1,因V-和R1均不变,因此图1虚线框内的电路等效为 一个恒流源流过一个Pt100电阻,电流大小为V-/R1,Pt100上的压降仅和其自身 变化的电阻值有关。设计及调试注意点:1. 等效恒流源输出的电流不能太大,以不超过 1mA准,以免电流大使得 Pt100电阻自身发热造成测量温度不准确,试验证明,电流大于1.5mA各会有较明 显的影响。2. 运放采用单一 5V供电,如果测量的温度波动比较大,将运
5、放的供电改为 ± 15V双电源供电会有较大改善。3. 电阻R2 R3勺电阻值取得足够大,以增大运放的 U1B勺输入阻抗。图1恒流源式测温电路由于封装问题,实际原理图如下:测温原理:电路采用TL431和电位器VR调节产生4.096V的参考电源;采用R1、R2、VR2 Pt100构成测量电桥(其中 R仁R2, VR2为100Q精密电阻),当Pt100 的电阻值和VR2勺电阻值不相等时,电桥输出一个 mV级的压差信号,这个压差信 号经过运放LM32放大后输出期望大小的电压信号,该信号可直接连AD转换芯片。差动放大电路中R3= R4 R5 = R6放大倍数=R5/R3,运放采用单一 5V供电
6、。 设计及调试注意点:1. 同幅度调整R1和R2勺电阻值可以改变电桥输出的压差大小;2. 改变R5/R3的比值即可改变电压信号的放大倍数,以便满足设计者对温度 范围的要求3. 放大电路必须接成负反馈方式,否则放大电路不能正常工作。4. VR2&可为电位器,调节电位器阻值大小可以改变温度的零点设定,例如 Pt100的零点温度为0C,即0C时电阻为100Q,当电位器阻值调至109.885 Q时, 温度的零点就被设定在了 25r。测量电位器的阻值时须在没有接入电路时调节, 这是因为接入电路后测量的电阻值发生了改变。5. 理论上,运放输出的电压为输入压差信号X放大倍数,但实际在电路工 作时测量
7、输出电压与输入压差信号并非这样的关系,压差信号比理论值小很多,实际输出信号为4.096*(Rpt100/(R1+Rpt100)- RRI+R) (1)式中电阻值以电路 工作时量取的为准。6. 电桥的正电源必须接稳定的参考基准,因为如果直接VCC勺话,当网压波动造成VC(发生波动时,运放输出的信号也会发生改变,此时再到以VC未发生波动时建立的温度-电阻表中去查表求值时就不正确了, 这可以根据式(1)进行计 算得知。CC|5.1k竺 ftPlAl i片曲R5C1R4应ItDlR6lDCt图2三线制接法桥式测温电路U10 wunl ftHNl i pimiTL AU?02DI1.3 AT89C51
8、单片机AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROFlash Programmable and Erasable Read Only Memory )的低电压、高性能 CMOS 8 微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存 储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL勺 AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51
9、单片 机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.4 LCD显示器液晶显示器是一种采用了液晶控制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显的。由于通过控制是否透光来控制亮和暗,当 色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。对于画面稳定、 无闪烁感的液晶显示器,刷新率不高但图像也很稳定。LCD显示器还通过液晶控制透光度的技术原理让底板整体发光,所以它做到了真正的完全平面。二、系统总体设计测温的模拟电路是把当前PT100热电阻传感器的电阻值,转换为容易测量的 电压值,经过放大器放大信号后送给 A/D转换器把模拟电压转为数字信号后传 给单片机A
10、T89C51,单片机再根据公式换算把测量得的温度传感器的电阻值转 换为温度值,并将数据送出到 LCD显示器进行显示。本设计系统主要包括温度信号采集单元, 单片机数据处理单元,温度显示单 元。其中温度信号的数据采集单元部分包括温度传感器、 温度信号的获取电路(采 样)、放大电路、A/D转换电路。系统的总结构框图如图1-1所示。1-1系统的总结构框图本温度测量系统设计,是采用PT100温度传感器经过放大和 A/D转换器送到 单片机进行控制温度显示。另外本系统还可以通过外接电路扩展实现温度报警功 能,从而更好的实现温度现场的实时控制。三、硬件设计3.1放大电路的设计本次放大电路我选用的是LM358,
11、其内部包括有两个独立的、高增益、内部 频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用, 也适用于双 电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围 包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的 场合。3.2信号调理电路调理电路的作用是将来自于现场传感器的信号变换成前向通道中A/D转换器能识别的信号,作为本系统,由于温度传感器是热电阻PT100,因此调理电路完成的是怎样将与温度有关的电阻信号变换成能被A/D转换器接受的电压信号。3.3 A/D转换器的选择与设计电路在我们所测控的信号中均是连续变化的物理量,通常需要用计算机对这些信号进行
12、处理,则需要将其转换成数字量,A/D转换器就是为了将连续变化的模拟 量转换成计算机能接受的数字量。根据 A/D转换器的工作原理,常用的A/D转 换器可分为两种,双积分式 A/D转换器和逐次逼近式A/D转换器。1. 双积分A/D转换器工作原理2. 逐次逼近型A/D转换器工作原理在本设计系统中,为了将模拟量温度转换成数字量,采用德州仪器公司生产的4通道12位串行输出采样模数转换器 ADS7841 具体连线如下图所示:U2T14VCCDC LK0LK21.33常补DS如1总二14DI斗GH2CH3COMDUST1.5BUSYE2DC百M.OI3E11MODE71(4卜33A/IDVCCA-DS7S4
13、3.4单片机控制电路本设计是采用AT89C51单片机作为主控电路,AT89C51单片机是Atmel公司 的产品,与In tel公司的MCS5係列兼容。在AT89C51单片机内部有作为程序 存储器的Flash存储器,其容量为4KB,可以承受不低于1000次的反复擦写,调 试比较方便。其中P1 口为A/D转换器的通信端口, P2 口为按键控制,P0 口为3.5按键和显示电路本次设计使用4x4矩阵键盘,将其行线以及列线接到单片机的P2 口,其中列线接上拉电阻然后在通过异或逻辑门在接至单片机的P2.0到P2.3 口。具体连线如下图所示:EU3a阿I141 jrd0 4“呵II* WCL 自 4113.
14、6显示电路LCD的数据口接入本次设计使用LCD12864来显示温度采集结果,其中将 单片机的P0 口,具体接线如下图所示:vccPU uFO.lP0.2F0.3P0.5FO.SP0.7EAATPPi:/PKCG-P2.2Pl.l-Wso亠D2-E-44VCC3:; 1234567990 1* Qi TT 00- IX 1A 1A 1A I* I*四、软件设计4.1软件的流程图图1系统总流程图图2温度转换程序流程图图3显示流程图图4主函数流程图4.2系统软件设计说明进行微机测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何 根据每个测量对象的实际需要设计应用程序。 因此,软件设计在微机测
15、量控制系 统设计中占重要地位。对于本系统,软件设计更为重要。在单片机测量控制系统中,大体上可分为数据处理、过程控制两个基本类型。 数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单 片机按一定的方法进行计算,然后再输出,以便达到测量控制目的。软件设计主要是对温度进行采集、显示,通过按键操作,进行时间的设置与修改。因此,整个软件可分为温度采集子程序、时钟读取程序、按键子程序、显 示子程序、及系统主程序。4.3 软件的有关算法4.3.1 最小二乘理论获取温度电阻公式根据误差理论, 我们要获得较高精度的温度测量值, 办法一般有 2 个,要么 采用查表法,要么建立高精度的数学模型。
16、如果用查表法,主要有 2 个问题,如 果要提高测量精度, 则需要建立大量的表格, 而且得提前做大量得试验来进行多 点校正,还有一个问题是程序的通用性差, 这台仪器上校正好得数据可能在另一 台上不合适。而采用已知的分度表,建立数学模型,然后通过工程量(标度)变 换,通过测量A/D转换的结果后计算得到。这里我们考虑第2种方法的优点,首 先采用分段的方法, 将测量范围分段, 然后查出该段的数学模型的各个系数, 然 后计算出温度值,这里,由于时间的关系,我们对整个测量范围分了 3 段,分别 为0 49C、50-70C、71 100C,利用分度表进行离线的数学拟合,得到各 段的数学模型系数。 同时,可通
17、过再将标度值代入可粗略估计在各个测量段内的 最大误差值。我们通过最小二乘法进行线性拟合,得到如下的数学模型为:T1=2.5772R-257.77080-49 CT2=2.6366R-267.0150 70 °CT3=2.7206R-281.9071 100C上述3个数学模型中,最大的理论误差值都小于0.5 C,能够满足精度要求, 实际上如果有足够的时间, 我们完全可以分得再细一些, 这样理论的误差将会变 得更小。4.3.2 标度变换公式的获取根据上述的线性拟合结果:T=A R-B,这里的A B是上述不同温度段的系 数,而R值由于在输出为0V时,实际上有个对应于100欧姆的偏置电路,因
18、此 根据 R-R0=U/I,而 l=2.500V/1.500K,而 AD/U/G=4096/4.900V,这里的 AD值为 A/D转换得结果G为放大器的增益,本设计中的二级放大器放大的倍数为 80倍。 将上述条件代入得:T=A- (4.9 AD/4096/G/l+100)-B五、程序清单ADS7841 驱动程序#include <iom64v.h> #include <macros.h> #include "delay.h" #include "ads7841.h" #include "LCD1602.h"/A
19、DS7841控制字节 /bit val description/bit7 1 start, /bit6,5,4 001/bit4 1/bit2 X/bit1,0 00void port_init(void)#define control_byte 0b10011000恒为 1选择CHO为+IN选择为单端输入外部MOD接GND该位无作用,恒为12位 转换期间ADC为掉电模式PORTA = OxFF;/ 将所有端口初始化为输入 ,打开上拉DDRA = OxOO;PORTB = OxFF;DDRB = OxOO;PORTC = OxFF;DDRC = OxOO;PORTD = OxFF;DDRD =
20、 OxOO;PORTE = OxFF;DDRE = OxOO;PORTF = OxFF;DDRF = OxOO;PORTG = OxFF;DDRG = OxOO;void main()unsigned int result;unsigned char i,array4,table="O123456789" port_init(); / LCD16O2_init();/16O2ads7841_init();/ADS7841端口初始化液晶初始化 初始化LCD_write_string(Ox8O,"result:"); while(1)启动ADS7841即拉低
21、CS发送控制字 , 并得到转换数据 屏蔽掉高四位停止ADS7841即拉高CS以下均为显示部分ads7841_start(); / delay_nus(1O);result=ads7841_W_R(control_byte); / result&=ObOOOO111111111111;/delay_nus(1O);ads7841_finish(); / for(i=O;i<4;i+)/arrayi=result%1O;/esult/=10;for(i=0;i<4;i+)LCD_write_onechar(0x87+i,tablearray3-i);delay_nms(300)
22、;#ifndef _ads7841_h#define _ads7841_hdefine DCLKPD0#define DCLK_ddr DDRD#define DCLK_port PORTD#define DCLK_pin PIND#define CS PD1#define CS_ddr DDRD#define CS_port PORTD#define CS_pin PIND#define DIN PD2#define DIN_ddr DDRD#define DIN_port PORTD#define DIN_pin PIND#define BUSY PD3#define BUSY_ddr D
23、DRD#define BUSY_port PORTD#define BUSY_pin PIND#define DOUT PD4#define DOUT_ddr DDRD#define DOUT_port PORTD#define DOUT_pin PINDdefine ads7841_start() CS_port&=(1<<CS) /启运 ADS7841#define ads7841_finish() CS_port|=(1<<CS) / 停止 ADS7841 void ads7841_init(void);unsigned int ads7841_W_R(u
24、nsigned char byte);#endif#include <iom64v.h>#include <macros.h>#include "delay.h"#include "ads7841.h" /* * 函数名称: ads7841_init()* *函数功能:初始化 ADS7841端口* * 备 注:无*/void ads7841_init(void)/ 时钟端初始化为输出低电平DCLK_port&=(1<<DCLK);DCLK_ddr|=(1<<DCLK);CS_port|=(1<
25、<CS);CS_ddr|=(1<<CS);/ 片选端初始化为输出高电平DIN_port&=(1<<DIN); /DIN_ddr|=(1<<DIN);BUSY_port|=(1<<BUSY);/BUSY_ddr&=(1<<BUSY);DOUT_port|=(1<<DOUT);/DOUT_ddr&=(1<<DOUT);数据输入端初始化为输出低电平 忙信号初始化为输入 , 打开上拉 数据输出初始化为输入 , 打开上拉/ 即不选中 ADS7841/* * 函数名称: ads7841_W_R
26、* *函数功能:向ADS7841写入控制字节,读出转换好的数* * 输入参数: unsigned char byte :控制字节unsigned int result: AD转换好的数* * 备 注:数据从高位到低位写入 , 从高位到低位读出*/unsigned int ads7841_W_R(unsigned char byte)unsigned char i,temp;unsigned int result=0;for(i=0;i<8;i+)/8位数据计数DCLK_port&=(1<<DCLK); / 拉低时钟端 if(byte&0x80) / 当前位是否是 1 DIN_port|=(1<<DIN); /当前位是 1,拉高数据端 elseDIN_port&=(1<<DIN); / 当前位是 0,拉低数据端 delay_nus(10); / 调整时钟和脉冲宽度 DCLK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论