1、题目名称:基于NTC热敏电阻的温度测量与控制系统设计 摘要: 本系统由TL431精密基准电压,NTC热敏电阻(MF-55)的温度采集,A/D和D/A转换,单片机STC89C51为核心的最小控制系统,LCD1602的显示电路等构成。温度值的线性转换通过软件的插值方法实现。该系统能够测量范围为0100,测量精度1,并且能够记录24小时内每间隔30分钟温度值,并能够回调选定时刻的温度值,能计算并实时显示24小时内的平均温度、温度最大值、最小值、最大温差,且有越限报警功能。由于采用两个水泥电阻作为控温元件,更有效的增加了温度控制功能。关键词: NTC TL431 温度 线性转换Abstract: Th
2、e system is composed of TL431 as precise voltage,the temperature acauisition circuit with NTC thermistors (MF-55), the transform circuit of A/D and D/A, the core of the minimum control system with STC89C51, 1the display circuit usingLCD1602, etc. Get the temperature of the linear transformation by t
3、he software method. The range of the measure system is 0 100 , measurement accuracy + 1 .It can record 24 hours of each interval temperature by per 30 minutes selected of temperature.The time can be calculated and real-time display within 24 hours of the average temperature, maximum temperature and
4、minimum temperature, maximum value, and each temperature sensor has more all the way limit alarm function. Due to the two cement resistance as temperature control components, the more effective increase the temperature control function.Keyword: NTC TL431 temperature linear conversion目 录1方案设计与论证31.1
5、整体设计方案比较和选择32 系统设计52.1 总体设计52.2各单元模块功能介绍及电路设计52.2.1 学习板电路52.2.2测温通道电路72.2.3 模数转换电路82.3 特殊器件的介绍83 软件设计93.1 软件流程图93.2 线性转换处理-线性插值104 系统测试114.1 测试方法114.2 测试结果124.3结果分析145 结论14参考文献14附录:15附1:元器件明细表15附2:仪器设备清单15附3:电路图图纸16附4:程序清单171方案设计与论证1.1 整体设计方案比较和选择当某路传感器温度超越设定的温度上下阀值时,即产生相应的声光报警信号并显示该传感器的温度值,直至温度回到门限
6、内(要求具有1的回差)或通过控制键解除警报。后向通道通过水泥电阻作为控温元件,增加温度控制功能。最后将输出的数字信号经过D/A转换,变换为温度,最终经过LCD1602进行显示。该方案硬件电路简单,电路其输出精度不高图1 方案1系统设计框图图2 方案2系统设计框图三运放的放大增益计算公式:由于:=30K;=20K;=1K所以:最大可以放大约60倍。电桥中和的取值决定了输出电压的精确度,经过多次测量,所以该处取值都为20K。 图3 方案3系统设计框图方案选定:方案3方案论证:综上所述能够满足系统设计的要求,所以选择方案3 2 系统设计2.1 总体设计 经过TL431精密稳压源输出2.5V电压给一个
7、桥式电阻电路,由于NTC热敏电阻的特性,所以随着温度的变化,电阻值减少了,后面在接一个三运放电路将电压放大到所需要的电压值。输出的电压值经过8位A/D转换器ADC0804转换后,将数字信号经由单片机STC89C51进行处理,然后将这些值送由LCD1602进行显示(如图4所示)。 图4 系统总体方案 2.2 各单元模块功能介绍及电路设计2.2.1 学习板电路 学习板系统总体设计电路图(如图5所示)。LED数码显示器DA转换器蜂鸣器温度传感器EEPROM计算机USB通信接口电源键盘AD转换器LCD显示器LED流水灯MCUP2P3P1P0 图5 学习板系统总体设计图学习板上独立按键和矩阵按键的电路图
8、(如图6所示)。 图6 键盘电路STC89C51单片机电路图(如图7所示)。 图7 单片机电路2.2.2 测温通道电路 下图为前向通道的电源部分。中间有D1和D2两个发光二极管,用来指示电源是否正常供电,此外还加了两个大小电容的并联电路,起滤波作用(如图8所示)。 图8 前向通道电源电路控温电路,采用两个水泥电阻,更有效的对NTC热敏电阻进行控温操作(如图9所示)。 图9 控温电路2.2.3 报警电路 蜂鸣器电路,当温度超过限度是起报警作用(图10 报警电路)。 图10 报警电路2.2.3 模数转换电路 前向通道中,当温度值转换为电压后,还需要将电压值进行A/D转换,转换后的值才能送到单片机进
9、行处理。后向通道中进行温度显示前应该先经过D/A转换(如图11 模数转换电路)。图11 AD以及DA转换原理图2.3 特殊器件的介绍热敏电阻器是一种随(感应)温度的变化其电阻值呈显著变化的热敏感半导体元件。温度升高时阻值下降的热敏电阻器,称为负温度系数热敏电阻器(NTC)。3 软件设计3.1 软件流程图该程序基于小系统板,小系统板上有显示、ADC转换、键盘等电路。学习系统板上主控单片机为STC89C51,所以采用c51编程方便简单,软件流程图如下:图8 主程序流程图3.2 线性转换处理-线性插值在ADC进行数据采集的过程中不可能每一个数值都在整温度所对应的ADC数值上,所以如果在两个数据的中间
10、一段就要对其进行进一步的精确定位。这样就必须知道采集到的数据在表12中的具体位置,因此要对数据表进行搜索、查找。线性表的查找(也称检索),可以有比较常见的顺序查找、折半查找及分块查找等方法,分析线性表12可以得到折半查找的算法是比较高效的。这样的插值计算实际上是分段的,用直线段来拟和温度曲线,因此在处理的过程中分段越细致拟和的曲线就越接近实际温度曲线。表1 插值表温度传感器在0到100输出0V2.5V,温度起点为0,满量程为100。学习系统板子上有8位的A/D转换器对应输出的数字量为00000000B11111111B(0-2.5V),应用以下变换公式进行变换:AX=A0+(AM-A0)(NX
11、-N0)/(NM-N0)式中,A0为一次测量仪表的下限。AM为一次测量仪表的上限。AX实际测量值。N0仪表下限对应的数字量。NM仪表上限对应的数字量。NX测量值对应的数字量。温度非线性转换程序模块采用折线拟合法进行线性化处理4 系统测试4.1 测试方法 步骤1:先安上元件后,测试电路是否正确连通,待没有任何问题后将集成芯片安上。以此可以防止集成芯片由于电压过大而烧坏。 步骤2:将NTC热敏电阻放入冰水混合物中(0,进行调零操作。此时电压输出为0V。 步骤3:将NTC热敏电阻放入沸水杯子中,进行调满操作。此时的电压输出为最大,即为2.5V。 步骤4:记录不同温度时刻对应的温度转换值和实际温度值,
12、进行NTC温度特性曲线的绘制。4.2 测试结果 对于电桥温度的取值会影响后面测试温度的精度,所以在电桥平衡电阻(R1,R2)分别在200K和6.8K和20K时,对温度进行了测量。 具体情况如下图表格和图所示:、表2 第一次温度曲线实际测量数据表3 第二次温度曲线实际测量数据 表3 最终温度测量数据4.3结果分析 又图上特性曲线可以看出,温度变化从0度开始到100时,变化规律为先慢接着较快后很慢;5 结论由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。基于学习板小系统进行软件调试很容易。在采集温度部分有调零和满刻度调整电路,在三运放的放大部分有滑动变阻
13、器,可以很容易改变增益。在实现温度转换时,利用插值法,在提高测量精度是变得更容易。此外,在后面的控温部分可以采用TEC半导体制冷片。因为采用三极管放大电路必须考虑三极管所允许的最大允许电流,否则会造成三极管烧坏。参考文献 1 陈武凡.小波分析及其在图像处理中的应用.科学出版社,2002.01.2 高吉祥主编 . 高频电子线路 . 北京:电子工业出版社,20033 易波 . 通信原理 . 长沙:国防科技大学出版社出版,19984 何立民.单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学,1990.5 李晓荃.单片机原理与应用M. 北京:电子工业出版社,2000.6 樊昌信.通信原理
14、(第五版)M.北京:国防工业出版社,2001 .7 全国大学生电子设计设计竞赛组委员会.全国大学生电子设计竞赛训练教程M.北京 电子工业出版社,2005.8 俞俊民.自制恒流源J.沈阳电力高等专科学校学报,1997.9 朱传奇.简易使用的直流电流源J.山东电力技术,1999.10 马云峰.单片机控制的直流电流源设计J.潍坊高等专科学校学报,1999.11 Richard c .Dorf.modern conctrol systermM.BEIJING:Science Publishing House,2002.12 Donald A. Neamen. Electronic circuit an
15、alysis and designM.Tsinghua University Press and Springer Verlag.2002.附录: 附1:元器件明细表1. 基准稳压集成芯片TL431 2. ADC08043. DAC08324. 单片机STC89C515. 三极管80506. 液晶LCD1602附2:仪器设备清单1、数字信号发生器 2、数字万用表 3、模拟示波器4、稳压电源附3:电路图图纸 前后向通道电路图 学习板小系统原理图 前后向通道PCB图 附4:程序清单* 课题:测温 * 创建时间:年月日 */* 主函数部分*/ void main() uchar b=0,c,d; f
16、loat e; init(); /液晶初始化 xianshi(7,mima1,0x80); /显示密码字样 do du_key1(); /扫描键盘 du_key2(); if(adjust1=4&adjust4=3) b=1; adjust1=0; adjust4=0; while(b=0); Timer_start(); xianshi(16,deng1,0x80); /显示“please wait”字样 while(remembermax) max=wendu;else if(wendumin2) min2=wendu; deep_chuli(wendu);baojin();write_c
17、ommand(0x80+6);write_date(AD_buffer0);write_command(0x80+7);write_date(AD_buffer1);write_command(0x80+8);write_date(.);write_command(0x80+9);write_date(AD_buffer2);deep_chuli(max);write_command(0xc0+4);write_date(AD_buffer0); write_command(0xc0+5);write_date(AD_buffer1);write_command(0xc0+6);write_d
18、ate(.);write_command(0xc0+7);write_date(AD_buffer2);deep_chuli(min2);write_command(0xc0+12);write_date(AD_buffer0); write_command(0xc0+13);write_date(AD_buffer1);write_command(0xc0+14);write_date(.);write_command(0xc0+15);write_date(AD_buffer2); /*子程序部分*/ /*采集*/void AD_caiji(uchar x) csad=0; WR1=0;
19、/启动 _nop_(); WR1=1; delay1(); AD_data=0xff; RD1=0; AD_bufferx=AD_data; RD1=1; WR1=0; void chunshu() /数据存储 uchar i; for(i=0;i0;x-) for(y=x;y0;y-) if(AD_bufferyAD_buffery-1)/大小排序(从大到小) buff=AD_buffery-1; AD_buffery-1=AD_buffery; AD_buffery=buff; buff=AD_buffer0; AD_buffer0=AD_bufferx; AD_bufferx=buff;
20、 buff=0; for(x=14;x0;x-) buff=buff+AD_bufferx; average=buff/14; /*键盘查询*/ void delay1()uchar g,h; for(g=100;g0;g-) for(h=100;h0;h-); void du_key1() key1=1; if(key1=0) delay1(); if(key1=0) flag=0; adjust1=adjust1+1; if(adjust1=8) adjust1=0; while(key1=0); void du_key2() key2=1; if(key2=0) delay1(); if
21、(key2=0) if(adjust1=1) adjust2=adjust2+1; if(adjust2=5) / 十位 adjust2=0; else if(adjust1=2) adjust3=adjust3+1; / 个位 if(adjust3=10) adjust3=0; else if(adjust1=4) adjust4=adjust4+1; / 密码else if(adjust1=5) /调节pwm的占空比 增加 tiao=tiao+1; if(tiao=101) tiao=0; else if(adjust1=6)/调节pwm的占空比 减少 tiao=tiao-1; if(ti
22、ao=0) tiao=100; while(key2=0); /*温度线性处理模块*/ void line_processer(uchar x,uchar f) uchar y,z=0; for(y=0;y=Fen_duany0&fFen_duany1) z=y; wendu=(f-Fen_duanz0)/slopez+Fen_duanz2; void deep_chuli(float y) int x; x=y*10; AD_buffer0=shux/100; AD_buffer1=shu(x-(x/100)*100)/10; AD_buffer2=shux%10; /*一天的平均温度*/ void day_average() uchar x;float y=0; for(x=0;x=35|wendu=10) beep=0; else if(wendu=11) beep=1;
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100