热电阻测温仪及配套电子式校验仪设计_第1页
热电阻测温仪及配套电子式校验仪设计_第2页
热电阻测温仪及配套电子式校验仪设计_第3页
热电阻测温仪及配套电子式校验仪设计_第4页
热电阻测温仪及配套电子式校验仪设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、热电阻测温仪及配套电子式校验仪设计1设计要求1.1任务设计制作一台热阻测温仪表和配套的电子式校验仪,设计的热阻测温仪表支持工业三线制接法(采用恒流法测电阻),具有420mA变送输出功能。配套的电子式校验仪可用于设计的热电阻测温仪表的校验。1.2基本要求1设计基于三线制的热阻测温仪表,输入信号为Pt100、Cu50、Cu100可选(能够通过按键选择热电阻分度号),能够以数字形式显示被测温度,测温误差不大于0.5,;2具有变送功能,对应测温量程变送输出电信号为420mA,在0100测温范围变送精度0.5%。1.3发挥部分1设计一台电子式热阻信号校验仪表,可以用来校验基本要求项设计的热电阻测温仪表,

2、模拟电阻范围0400;2设计的电子式热阻信号校验仪表具有输出模拟电阻数字显示功能,可以通过按键改变输出的模拟电阻值,分辨率优于0.1;3进一步提高输出模拟电阻的分辨率到0.05。1.4评分标准 项 目满分基本要求设计与总结报告:方案比较、设计与论证,理论分析与计算,电路图及有关设计文件,测试方法与仪器,测试数据及测试结果分析。50完成基本要求第1项30完成第基本要求2项20发挥部分完成发挥部分第1项20完成发挥部分第2项20完成发挥部分第3项102系统框图设计2.1Pt100测温仪框图以MSP430F169为基的Pt100测温仪电路框图如图2-1所示,完成基本要求部分功能。图2-1测温仪电路框

3、图2.2电子式热阻信号校验仪框图MSP430F413单片机为基的电子式热阻信号校验仪电路框图如图2-2所示,完成发挥部分功能。图2-2电子式热阻信号校验仪电路框图3Pt100测温仪电路设计3.1恒流源驱动三线制热电阻电路热电阻测温传感器Pt100的温度与阻值对应关系如图3-1和表3-1所示。使温度测量转为电阻值测量。图3-1表3-1三线制热电阻测温传感器Pt100外引线形式如图3-2所示。图3-2 Pt100外引线形式采用三线制是为了消除长线连接引入误差。采用恒流源驱动的三线制热电阻测温传感器电路,如图3-3所示。利用叠加定理,分别求出电路对Ua、Ub的放大倍数AUa和AUb如下:倍R_Lin

4、3为导线电阻与50K电阻串联,忽略不计。倍根据以上两点电压放大倍数,求出实际输出电压与RT关系如式(3-1)所示,电路中Lin1、Lin2是两根长度、线径和材料相同的导线,因此,R_lin1=R_lin2并设其等于r。 (3-1)例:当温度为0°C时,RT=100,恒流源输出1mA,Uo=2V;当温度为100°C时,RT=138.51,恒流源输出1mA,Uo=2.77V。单片机中A/D利用率低应加入电平平移和信号放大电路。由上式可得,该电路使用三线制接法可消除引线带来的误差。使用该电路应注意问题:1)电路中电阻值必须准确,否则,会引入误差;2)运放同向输入放大20倍,反向输

5、入放大40倍,不是标准的差动放大,长导线引入的电磁干扰有一半被放大后输入到下级电路中。因此,该电路不适合强电磁干扰工作环境。图3-3恒流源驱动的三线制热电阻测温传感器电路3.2单片机系统和V-I变换电路测温仪电路如图3-4所示,包括单片机系统电路、恒流源驱动的三线制热电阻测温传感器电路和V-I变换电路如图。单片机电路中包括MSP430F169芯片、时钟电路、复位电路和LCM12864显示电路。图3-4单片机系统和V-I变换电路V-I变换电路如图3-5 所示,输入电压V_A与输出电流Iout的关系如式(3-2)所示。 (3-2)当V_A=0.4V时,Iout=4mA;当V_A=2V时,Iout=

6、20mA,满足了设计要求。DAC12输出电压与测温度电阻阻值对应关系软件设计中调整。RL是电流源输出所接负载,外引线时注意电流方向。图3-5 V-I变换电路3.3系统电源电路系统电源电路如图3-6所示。图3-6系统电源电路3.4仪器标定和系统误差消除1)系统误差消除方法恒流源电路存在固定偏差1;测温电路放大倍数存在固定偏差2;A/D参考电源引入固定偏差3。上述电路做得又准又稳难度较大,若只求稳定允许存在一定的固定偏差,则相对容易。可通过仪器最后标定的方法消除该固定偏差系统误差。标定方法:用电阻箱代替Pt100,调电阻箱与分度表对应得R1U1D1T1,R2U2D2T2。T查表得出,D单片机测得数

7、据,若温度曲线是直线,则温度的计算公式如式(3-3)所示。 (3-3)d为单片机瞬时读入数据,t为该时刻对应测得的温度,消除了中间环节的系统误差。2)测量曲线的拟合与非线性误差的消除方法若温度曲线是非线性的,则应在计算程序中加入曲线拟合算法。具体方法:通过电阻箱和测量仪器得到D1、T1,D2、T2,D3、T3,Dn、Tn,在单片机存储区存入如表3-2所示数据表。表3-2T1T2T3T4T9T10D1D2D3D4D9D10T1/D1T2/D2T3/D3T4/D4T9/D9测量值的计算:单片机测得数据d,与Di比较,可得到所在区间DiDi+1,温度t计算公式如式(3-4)所示,该算法属一阶插值拟合

8、,是利用折线逼近曲线,若曲率大应采用高阶拟合算法或变步长制表、计算方法。变步长方法是在曲率大的部分加大标定测量点的密度。 (3-4)4电子式热阻信号校验仪4.1程控放器原理由电子式热阻信号校验仪电路框图可知,程控放大器电路是校验仪关键电路。设计中选用德州仪器公司的数模转换芯片TLC5618实现程控放大器功能。TLC5618外形图如图4-1所示。图4-1TLC5618芯片外形图图4-2片内功能框图引脚定义表如图4-3所示。典型应用电路如图4-4所示。图4-3引脚定义表图4-4典型应用电路由于片内含有同相比例放大电路(增益为2),因此选用200标准电阻可模拟出0-400阻值的测温电阻。恒流源驱动的

9、标准电阻输出电压接于芯片参考电压REFIN端,输入二进制数与输出电压关系如图4-5数据表所示。图4-5输入二进制数与输出电压关系表TLC5618芯片串行输入数据格式如图4-6所示。高四位为控制位,低十二位为数据位。控制位功能表如图4-7所示。串行时序图如图4-8所示。图4-6串行输入数据格式图4-7控制位功能表图4-8串行时序图4.2校验仪电路设计校验仪电路由MSP430F413芯片、复位电路、时钟电路、显示电路、按键电路、D/A转换器串行接口电路和5V直流稳压电源电路构成,如图4-9所示。5个按键分别对应输出模拟电阻的百位、十位、个位和小数点后第一位数字键以及确认键。HLD端接Pt100测温

10、仪恒流源输出,Lin1、Lin2和Lin3仿三端测温电阻接线端子。图4-9校验仪电路图4.3程序流程参照时钟电路和定时滚动按键处理程序编写。方案2-热电阻测温仪及配套电子式校验仪2009-5-15一电路作用1电阻测温:开关SW1、SW2拨于1端,P1.5低电平,程序读入0,进入测温程序,通过按键设定Pt100、Cu50和Cu100测温;2模拟校验电阻:开关SW1、SW2拨于2端,P1.5高电平,程序读入1,进入模拟电阻程序,通过按键设定电阻值;二各元件作用1U1A:构成I=1mA恒流源(单电源用法,电源电压12V)。2U1B:被测电压信号放大,Vo1=20I·RT。SW2接1端,测温

11、;SW2接2端,校验;3U2:电压跟随器,输入偏移量(负值),调整Uout电压范围。4U3:具有放大功能的加法器,调整Uout电压范围与A/D相适应。5U4:V-I变换器,输出电流Iout方向由上到下。6U5:电压跟随器,保护单片机D/A输出端。7C11、C12:单片机参考电压源端退耦(消除干扰)。8按键S0-S4:与SW1、SW2开关状态有关,作用自定义,但必须有确认键。9LCM12864:显示模块,显示仪器工作状态(测温、校验)、设定和测量参数。格式自定义。10MSP430F169单片机:控制、测量和模拟信号输出。三编程关键语句1初始化8MHz主时钟: BCSCTL1 = XT2OFF+S

12、ELS; / 清零位 = 高频xtal on BCSCTL2 = SELS; / 选择SMCLK = HF xtal 2初始化D/A转换:P6SEL = 0xc0; / 使能D/A输入通道ADC12CTL0 = REF2_5V + REFON; / 内部 2.5V 参考源接通 DAC12_0CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; / 内部参考源 DAC12_1CTL = DAC12IR + DAC12AMP_5 + DAC12ENC; / 内部参考源3初始化A/D转换:P6SEL = 0x03; / 使能A/D输入通道ADC12CTL0 = ADC12ON

13、+MSC+SHT0_8+REFON+REF2_5V; / 接通ADC12ADC12CTL1 = SHP+CONSEQ_3; / 使用采样定时器,重复序列ADC12MCTL0 = INCH_0+SREF_1; / 片内参考源ADC12MCTL1 = INCH_1+SREF_1+EOS; / 片内参考源ADC12CTL0 |= ENC; / 使能转换ADC12CTL0 |= ADC12SC; / 启动转换4D/A输出语句DAC12_0DAT = NUM_RAM0; DAC12_1DAT = NUM_RAM1; 5A/D读入语句NUM_RAM2 = ADC12MEM0; /移走A0结果IFG清零NU

14、M_RAM3= ADC12MEM1;四编程主流程:仿小时钟程序,测量、显示、计算和按键监控放于看门狗中断程序中。五LCM显示变化的数据const unsigned char showData_10=/16*8点阵的0_9和"." /小数点对应位置数10 0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00,/0 0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,

15、/1 0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00,/2 0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00,/3 0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00,/4 0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x2

16、0,0x08,0x11,0x08,0x0E,0x00,0x00,/5 0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00,/6 0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00,/7 0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00,/8 0x00,0x00,0xE0,0

17、x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00,/9 0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"."*/ ;unsigned char showData_1116; /定义十六单元数组,每单元8位(16×8)void drawStr_10(unsigned char x,unsigned char y,int data) /显示数字 unsigned char t

18、mpv,tmpv_1; width=EN_WIDTH; /#define EN_WIDTH 8 / 数字字符串的长度 for(tmpv_1=0;tmpv_1<16;tmpv_1+) showData_11tmpv_1=showData_1016*data+tmpv_1; for(tmpv=y;tmpv<y+width;tmpv+) move_To(x/8,tmpv); /移动到指定页 write_Data(showData_112*(tmpv-y); /填写数据 move_To(x/8+1,tmpv); /由于显示的字符是16*N点阵,占用两页,现在移动到下页 write_Data

19、(showData_112*(tmpv-y)+1); /填写数据 *放大电路改了一条线。/* 文件名称:main.c* 文件说明:显示"Hello",另加A/D和D/A转换初始化及读写语句。*/#define MSP430F169_H 0#include <msp430x16x.h>#define TOP 0 / 竖直方向零点#define BOTTOM 64 / 竖直方向坐标最大值#define LEFT 0 / 水平方向坐标最小值#define RIGHT 128 / 水平方向坐标最大值#define EN_WIDTH 40 / Hello 字符串的长度#d

20、efine CH_WIDTH 96 / 中文字符串的长度#define OP_CHINESE 1 / 选择显示中文字符#define OP_ENGLISH 2 / 选择显示英文字符unsigned int cont,y0,y1,y2,NUM_RAM0,NUM_RAM1,NUM_RAM2,NUM_RAM3; /秒、时、分存储变量unsigned char showData=/16*8点阵的"Hello"0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20,/H (0)0x

21、00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00,/e (1)0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/l (2)0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,/l (3)0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,0x80

22、,0x20,0x80,0x20,0x00,0x1F,0x00,0x00,/o (4);unsigned char px, / 显示字符串的X位置py, / 显示字符串的Y位置width; / 字符串的宽度/ write_Command(),用于写命令到LCD,CS(片选)在此函数外设置void write_Command(char cmd)P3OUT &= 0xfb; /禁止 ENP5DIR = 0xff;P3OUT &= 0xfc; /rs=0 ,r/w=0P5OUT = cmd;P3OUT |= 0x04; /使能P3OUT &= 0xfb; /禁止/ 设置显示的位

23、置,含片选void move_To(char x,char y)unsigned char tmp;tmp=(y&0x7f);if(tmp<64) /如果位置在Chip1P3OUT &= 0xbf; /cs2=0P3OUT |= 0x08; /cs1=1write_Command(0xb8 + x); /设置 xwrite_Command(0x40 + tmp); /设置 yelse if(tmp>63) /在 chip2P3OUT &= 0xF7; /cs1=0P3OUT |= 0x40; /cs2=1write_Command(0xb8 + x); /设

24、置 xwrite_Command(0x40 + tmp-64); /设置 y/ write datavoid write_Data(char content)P5DIR = 0x00; / 置位输入模式P3OUT |= 0x02; / r/w=1 读状态P3OUT |= 0x04; / chip 使能while(P5IN & 0x80)=0x80);/检测LCD是否忙P3OUT &= 0xfb; /disable ENP5DIR = 0xff;P3OUT &= 0xfc; /rs=0 ,r/w=0P3OUT |= 0x01; /rs=1P5OUT = content;P

25、3OUT |= 0x04; /p2.2=1 使能P3OUT &= 0xfb; /p2.2=0 禁止/ 在指定的位置显示字符串"Hello" ,x是行坐标,y是列坐标,0=<x<=RIGHT - 字符串长度/ 0=<y<=BOTTOM-字符串高度void drawStr(unsigned char x,unsigned char y)unsigned char tmpv;for(tmpv=y;tmpv<y+width;tmpv+)move_To(x/8,tmpv); /移动到指定页write_Data(showData2*(tmpv-y)

26、; /填写数据move_To(x/8+1,tmpv); /由于显示的字符是16*N点阵,占用两页,现在移动到下页write_Data(showData2*(tmpv-y)+1); /填写数据/ 清除chip1或者chip2上的某一区域,选择的区域只是在/ 同一chip上,x是页地址,Y是列地址,h是多少行,w是指多少/ 列.区域可以是两个片组成的区域的任何位置void clear_Rect(unsigned char x,unsigned char y,unsigned char h,unsigned char w)unsigned char tmpv,tmp;for(tmpv=x;tmpv&

27、lt;(x+h);tmpv+)for(tmp=y;tmp<(y+w);tmp+)move_To(tmpv,tmp);/移动write_Data(0x00); /在当前位置写0,即清除当前位置的显示内容/ 初始化LCDvoid init_LCD(void)P5DIR = 0xff; / 设置P5输出模式P5OUT = 0x00; / 初始值为0P3DIR |= 0xcf; / P4.0P5,P4.6,p2.7 置为输出模式P3OUT |= 0x48 ; / cs1,cs2 为1,reset=0_NOP();_NOP();_NOP();P3OUT |= 0x04; / en=1P3OUT |

28、= 0x80;write_Command(0xc0); /write_Command(0x3f); /显示开clear_Rect(0,0,8,64); /清除第一块clear_Rect(0,64,8,64); /清除第二块/*WDT中断服务程序*/interruptWDT_VECTOR void watchdog_timer(void)cont=cont+1;P1OUT = 0x80; / Toggle P1.7 using exclusive-ORif(cont=4)cont=0;y0=y0+1; /秒加1if(y0=60)y0=0;y1=y1+1; /60秒为1分,分加1if(y1=60)

29、y1=0;y2=y2+1; /60分为1小时,小时加1if(y2=24)y2=0 ; /24小时再清零_NOP();/ main函数void main(void)/WDTCTL = WDTPW + WDTHOLD; / 停止看门狗WDTCTL = WDT_ADLY_250; / WDT间隔时间为250ms(ACLK)BCSCTL1 = XT2OFF+SELS; / 清零位 = 高频xtal onP1DIR |= 0x80; / Set P1.7 to output directionP1OUT |= 0x80;IE1 |= WDTIE; / 使能WDT中断P6SEL |= 0xc0; / 使能D/A输入通道A

温馨提示

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

评论

0/150

提交评论