当前位置:首页 >> 信息与通信 >>

基于NTC热敏电阻的温度测量与控制系统设计


题目名称: 题目名称:基于 NTC 热敏电阻的温度测量与控 制系统设计

摘要: 摘要:

本系统由 TL431 精密基准电压,NTC 热敏电阻(MF-55)的温度采集,

A/D 和 D/A 转换,单片机 STC89C51 为核心的最小控制系统,LCD1602 的显示电路 等构成。温度值的线性转换通过软件的插值方法实现

。该系统能够测量范围为 0~100℃,测量精度±1℃,并且能够记录 24 小时内每间隔 30 分钟温度值,并能 够回调选定时刻的温度值,能计算并实时显示 24 小时内的平均温度、温度最大 值、最小值、最大温差,且有越限报警功能。由于采用两个水泥电阻作为控温元 件,更有效的增加了温度控制功能。 关键词: TL431 温度 线性转换 关键词: NTC

Abstract: The 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 the 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 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 方案设计与论证............................................................................................................................ 3 1.1 整体设计方案比较和选择 ............................................................................................. 3 2 系统设计....................................................................................................................................... 5 2.1 总体设计......................................................................................................................... 5 2.2 各单元模块功能介绍及电路设计 ............................................................................... 5 2.2.1 学习板电路 ......................................................................................................... 5 2.2.2 测温通道电路 ..................................................................................................... 7 2.2.3 模数转换电路 ....................................................................................................... 8 2.3 特殊器件的介绍 ............................................................................................................. 8 3 软件设计....................................................................................................................................... 9 3.1 软件流程图............................................................................................................... 9 3.2 线性转换处理--线性插值 ..................................................................................... 10 4 系统测试..................................................................................................................................... 11 4.1 测试方法................................................................................................................. 11 4.2 测试结果................................................................................................................. 12 4.3 结果分析.................................................................................................................. 14 5 结论 ............................................................................................................................................ 14 参考文献......................................................................................................................................... 14 附录: ............................................................................................................................................ 15 附 1:元器件明细表.............................................................................................................. 15 附 2:仪器设备清单.............................................................................................................. 15 附 3:电路图图纸.................................................................................................................. 16 附 4:程序清单...................................................................................................................... 17

2

1 方案设计与论证
1.1 整体设计方案比较和选择

温度测量和控制系统, 基于 NTC 热敏电阻的特性进行设计。 当外界温度变化时, 可以将温度值转换为电压值。电压值经过模数转换后送入单片机进行处理。当某 路传感器温度超越设定的温度上下阀值时, 即产生相应的声光报警信号并显示该 传感器的温度值,直至温度回到门限内(要求具有 1℃的回差)或通过控制键解 除警报。后向通道通过水泥电阻作为控温元件,增加温度控制功能。最后将输出 的数字信号经过 D/A 转换,变换为温度,最终经过 LCD1602 进行显示。 NTC 热敏电阻特点是在工作温度范围内电阻阻值随温度的上升而降低,可满 足 0℃~100℃测量范围,但热敏电阻精度、重复性、可靠性较差,不适用于检 测小于 1℃的信号;而且线性度很差,不能直接用于 A/D 转换,应该用硬件或软 件对其进行线性化补偿。 该温度测控系统,需要前向通道(温度采集器和 AD 转换器) ,单片机控制 系统和后向通道(温度控制系统)三部分组成。其中温度采集器部分有以下三种 方案: 方案 1: 采用 NTC 热敏电阻,恒流源(采用 LM317L,内部提供 1.2V 的基准电压)和相 电压跟随器运放构成(如图 1 所示) 。 方案优点:该方案硬件电路简单,电路电流值较小,焦耳热损耗很小,温度测 量误差可以控制在很小的范围内。 方案缺点:因为恒流源要提供毫安数量级的电流,但受电源变化的影响较大, 故要求电源十分稳定,同时其输出精度不高。

图 1 方案 1 系统设计框图

方案 2: 采用恒压源、滑动变阻器和同相电压跟随器的运放电路构成(如图 2 所示) 。 方案优点:原理简单,电路简单; 方案缺点:恒压源不能保证绝对的恒压,从而使温度测得不稳定。
3

图2

方案 2 系统设计框图

方案 3: 基于紧密稳压电源 TL431 作为恒压源,后接电桥电阻电路和三运放电路(如 图 3 所示) 。 R6 + R7 R11 + 1) 三运放的放大增益计算公式: AV = ( R5 R10 由于: R 6 = R 7 =30K; R 5 =20K; R11 = R10 =1K 所以: AV 最大可以放大约 60 倍。 电桥中 R1 和 R 2 的取值决定了输出电压的精确度,经过多次测量,所以该处取 值都为 20K。

图3

方案 3 系统设计框图

方案选定:方案 3 方案论证: 综上所述前面采用电桥方法可以减小由于恒压源输出电压的波动感的影 响。后面采用差分放大,从而输出很稳定,能够满足系统设计的要求,所以选择 方案 3。
4

其中运放选 OP07(零点漂移很小,类似于精密放大,虽然带宽不是很宽, 但是在此处已经足够了) 方案 3 中, 用滑动变阻器, , R5 可以很方便的改变增益。 同时又不影响电路的对称性。

2 系统设计
2.1 总体设计

经过 TL431 精密稳压源输出 2.5V 电压给一个桥式电阻电路, 由于 NTC 热敏 电阻的特性,所以随着温度的变化,电阻值减少了,后面在接一个三运放电路将 电压放大到所需要的电压值。 输出的电压值经过 8 位 A/D 转换器 ADC0804 转换后, 将数字信号经由单片机 STC89C51 进行处理,然后将这些值送由 LCD1602 进行显 示(如图 4 所示) 。

温度采集 模块

水泥电阻 控温模块 STC89C51 MCU D/A

A/D

display

图 4 系统总体方案

2.2

各单元模块功能介绍及电路设计

2.2.1 学习板电路
学习板系统总体设计电路图(如图 5 所示) 。

5

LED 数码显示器 P1 LED 流水灯 LCD 显示器 MCU 温度传感器 AD 转换器 EEPROM 键盘 P3 USB 通信接口电源 P2 P0 DA 转换器 蜂鸣器

计算机

图 5 学习板系统总体设计图

学习板上独立按键和矩阵按键的电路图(如图 6 所示) 。

图 6 键盘电路

STC89C51 单片机电路图(如图 7 所示) 。

6

图 7 单片机电路

2.2.2

测温通道电路

下图为前向通道的电源部分。中间有 D1 和 D2 两个发光二极管,用来指示电源 是否正常供电, 此外还加了两个大小电容的并联电路, 起滤波作用 (如图 8 所示) 。

图 8 前向通道电源电路

控温电路,采用两个水泥电阻,更有效的对 NTC 热敏电阻进行控温操作(如图 9 所示) 。

图 9 控温电路 7

2.2.3 报警电路
蜂鸣器电路,当温度超过限度是起报警作用(图 10 报警电路) 。

图 10 报警电路

2.2.3 模数转换电路
前向通道中,当温度值转换为电压后,还需要将电压值进行 A/D 转换,转换后 的值才能送到单片机进行处理。 后向通道中进行温度显示前应该先经过 D/A 转换 (如图 11 模数转换电路) 。

图 11 AD 以及 DA 转换原理图

2.3

特殊器件的介绍

热敏电阻器是一种随(感应)温度的变化其电阻值呈显著变化的热敏感半导 体元件。 温度升高时阻值下降的热敏电阻器, 称为负温度系数热敏电阻器 (NTC) 。 NTC 负温度系数热敏电阻 R-T 特性如下图 12 所示:

8

图 12 B 值相同,阻值不同的 R-T 特性曲线示意图

电阻值和温度变化的关系式为:

其中,RT 为在温度 T(K)时的 NTC 热敏电阻阻值,RN 为在额定温度 TN(K)时的 NTC 热 敏电阻阻值。(TN 取 25℃,RN=1.20 kΩ),T 为规定温度(K),B 为 NTC 热敏电阻的材料 常数,又叫热敏指数。而且,

通过公式(1)、(2)以及表 1,可求得 B=3 900 K,从而可以得出电阻值和温度变化的关系式 为:

3 软件设计
3.1 软件流程图

该程序基于小系统板,小系统板上有显示、ADC 转换、键盘等电路。学习系统 板上主控单片机为 STC89C51,所以采用 c51 编程方便简单,软件流程图如下:

9

图8

主程序流程图

3.2 线性转换处理--线性插值
在ADC进行数据采集的过程中不可能每一个数值都在整温度所对应的ADC数值 上,所以如果在两个数据的中间一段就要对其进行进一步的精确定位。这样就必 须知道采集到的数据在表1-2中的具体位置,因此要对数据表进行搜索、查找。 线性表的查找(也称检索),可以有比较常见的顺序查找、折半查找及分块查找 等方法,分析线性表1-2可以得到折半查找的算法是比较高效的。 这样的插值计算实际上是分段的,用直线段来拟和温度曲线,因此在处理的过 程中分段越细致拟和的曲线就越接近实际温度曲线。
表 1 插值表

10

温度传感器在 0℃到 100℃输出 0V—2.5V,温度起点为 0℃,满量程为 100℃。 学 习 系 统 板 子 上 有 8 位 的 A/D 转 换 器 对 应 输 出 的 数 字 量 为 00000000B — 11111111B(0-2.5V) ,应用以下变换公式进行变换: AX=A0+(AM-A0)(NX-N0)/(NM-N0) 式中,A0 为一次测量仪表的下限。 AM 为一次测量仪表的上限。 AX 实际测量值。 N0 仪表下限对应的数字量。 NM 仪表上限对应的数字量。 NX 测量值对应的数字量。 温度非线性转换程序模块采用折线拟合法进行线性化处理

4 系统测试
4.1 测试方法
步骤 1:先安上元件后,测试电路是否正确连通,待没有任何问题后将集成芯 片安上。以此可以防止集成芯片由于电压过大而烧坏。 步骤 2:将 NTC 热敏电阻放入冰水混合物中(0℃,进行调零操作。此时电压 输出为 0V。 步骤 3:将 NTC 热敏电阻放入沸水杯子中,进行调满操作。此时的电压输出为 最大,即为 2.5V。 步骤 4:记录不同温度时刻对应的温度转换值和实际温度值,进行 NTC 温度特 性曲线的绘制。

11

4.2 测试结果
对于电桥温度的取值会影响后面测试温度的精度, 所以在电桥平衡电阻(R1,R2) 分别在 200K 和 6.8K 和 20K 时,对温度进行了测量。
具体情况如下图表格和图所示:

、 表 2 第一次温度曲线实际测量数据

12

表 3 第二次温度曲线实际测量数据

13

表 3 最终温度测量数据

4.3 结果分析
又图上特性曲线可以看出,温度变化从 0 度开始到 100°时,变化规律为先慢 接着较快后很慢;

5 结论
由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地 达到了题目要求的各项指标。基于学习板小系统进行软件调试很容易。在采集温 度部分有调零和满刻度调整电路,在三运放的放大部分有滑动变阻器,可以很容 易改变增益。在实现温度转换时,利用插值法,在提高测量精度是变得更容易。 此外,在后面的控温部分可以采用 TEC 半导体制冷片。因为采用三极管放 大电路必须考虑三极管所允许的最大允许电流,否则会造成三极管烧坏。

参考文献
[1] [2] [3] [4] [5] 陈武凡.小波分析及其在图像处理中的应用.科学出版社,2002.01. 高吉祥主编 . 高频电子线路 . 北京:电子工业出版社,2003 易波 . 通信原理 . 长沙:国防科技大学出版社出版,1998 何立民.单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学,1990. 李晓荃.单片机原理与应用[M]. 北京:电子工业出版社,2000.
14

[6] [7] [8] [9] [10] [11] [12]

樊昌信.通信原理(第五版)[M].北京:国防工业出版社,2001 . 全国大学生电子设计设计竞赛组委员会.全国大学生电子设计竞赛训练教程[M].北京 电子工业出版社,2005. 俞俊民.自制恒流源[J].沈阳电力高等专科学校学报,1997. 朱传奇.简易使用的直流电流源[J].山东电力技术,1999. 马云峰.单片机控制的直流电流源设计[J].潍坊高等专科学校学报,1999. Richard c .Dorf.modern conctrol systerm[M].BEIJING:Science Publishing House,2002. Donald A. Neamen. Electronic circuit analysis and design[M].Tsinghua University Press and Springer Verlag.2002.

附录: 附录:
附 1:元器件明细表
1. 2. 3. 4. 5. 6. 基准稳压集成芯片 TL431 ADC0804 DAC0832 单片机 STC89C51 三极管 8050 液晶 LCD1602

附 2:仪器设备清单
1、数字信号发生器 2、数字万用表 3、模拟示波器 4、稳压电源

15

附 3:电路图图纸

前后向通道电路图

学习板小系统原理图

16

前后向通道 PCB 图

附 4:程序清单
****************************************** *** 课题:NTC测温 *** *** *** 创建时间:2011年6月11日 ****************************************** /******************************************************************** 主函数部分 ********************************************************************/ void main() { uchar b=0,c,d; float e; init(); //液晶初始化 xianshi(7,mima1,0x80); //显示密码字样 do{ du_key1(); //扫描键盘 du_key2(); if(adjust1==4&adjust4==3) { b=1; adjust1=0; adjust4=0;
17

} } while(b==0); Timer_start(); xianshi(16,deng1,0x80); //显示“please wait……”字样 while(remember<=50); init(); xianshi(6,wendu1,0x80); while(1) { du_key1(); du_key2(); chunshu(); lvbo(); if(adjust1==1) { flag=flag+1; if(flag==1) { init(); xianshi(8,look_shi,0x80); } write_command(0x80+9); write_date(shu[adjust2]); } else if(adjust1==2) { flag=flag+1; if(flag==1) { init(); xianshi(7,look_ge,0x80); } c=adjust3/10; d=adjust3%10; write_command(0x80+8); write_date(shu[c]); write_command(0x80+9); write_date(shu[d]); } else if(adjust1==3) { flag=flag+1;
18

if(flag==1) { init(); xianshi(9,look,0xc0); } Look_for(); deep_chuli(wendu); write_command(0xc0+10); write_date(AD_buffer[0]); write_command(0xc0+11); write_date(AD_buffer[1]); write_command(0xc0+12); write_date('.') ; write_command(0xc0+13); write_date(AD_buffer[2]); } else if(adjust1==4) { flag=flag+1; if(flag==1) { init(); xianshi(9,day_aver,0xc0); } day_average(); deep_chuli(wendu); write_command(0xc0+10); write_date(AD_buffer[0]); write_command(0xc0+11); write_date(AD_buffer[1]); write_command(0xc0+12); write_date('.') ; write_command(0xc0+13); write_date(AD_buffer[2]); } else if(adjust1==5) { flag=flag+1; if(flag==1) { init(); xianshi(5,pwm_1,0xc0); }
19

write_command(0xc0+5); write_date(shu[tiao/10]); write_command(0xc0+6); write_date(shu[tiao%10]); } else if(adjust1==6) { flag=flag+1; if(flag==1) { init(); xianshi(5,pwm_2,0xc0); } write_command(0xc0+5); write_date(shu[tiao/10]); write_command(0xc0+6); write_date(shu[tiao%10]); } else if(adjust1==7) { flag=flag+1; if(flag==1) { init(); xianshi(7,cha,0xc0); } e=max-min2; deep_chuli(e); write_command(0xc0+8); write_date(AD_buffer[0]); write_command(0xc0+9); write_date(AD_buffer[1]); write_command(0xc0+10); write_date('.') ; write_command(0xc0+11); write_date(AD_buffer[2]); } else { flag=flag+1; if(flag==1) { xianshi(6,wendu1,0x80);
20

xianshi(4,max1,0xc0); xianshi(4,min1,0xc0+8); } line_processer(15,average); if(flag1==1) { min2=wendu; max=wendu; flag1=0; } if(wendu>max) { max=wendu; } else if(wendu<min2) { min2=wendu; } deep_chuli(wendu); baojin(); write_command(0x80+6); write_date(AD_buffer[0]); write_command(0x80+7); write_date(AD_buffer[1]); write_command(0x80+8); write_date('.') ; write_command(0x80+9); write_date(AD_buffer[2]); deep_chuli(max); write_command(0xc0+4); write_date(AD_buffer[0]); write_command(0xc0+5); write_date(AD_buffer[1]); write_command(0xc0+6); write_date('.') ; write_command(0xc0+7); write_date(AD_buffer[2]); deep_chuli(min2); write_command(0xc0+12); write_date(AD_buffer[0]); write_command(0xc0+13); write_date(AD_buffer[1]); write_command(0xc0+14); write_date('.') ;
21

write_command(0xc0+15); write_date(AD_buffer[2]); } } } /******************************************************************* 子程序部分 ********************************************************************/ /******************************* AD采集 *******************************/ void AD_caiji(uchar x) { csad=0; WR1=0; //启动ad _nop_(); WR1=1; delay1(); AD_data=0xff; RD1=0; AD_buffer[x]=AD_data; RD1=1; WR1=0; } void chunshu() //数据存储 { uchar i; for(i=0;i<16;i++) { AD_caiji(i); } } /******************************************** 滤波模块 数据滤波去掉最大,最小值后求均值 **********************************************/ void lvbo() { uchar x,y; uint buff; for(x=15;x>0;x--) {

22

for(y=x;y>0;y--) { if(AD_buffer[y]>AD_buffer[y-1]) //大小排序(从大到小) { buff=AD_buffer[y-1]; AD_buffer[y-1]=AD_buffer[y]; AD_buffer[y]=buff; } } buff=AD_buffer[0]; AD_buffer[0]=AD_buffer[x]; AD_buffer[x]=buff; } buff=0; for(x=14;x>0;x--) { buff=buff+AD_buffer[x]; } average=buff/14; } /************************************** 键盘查询 *************************************/ void delay1() { uchar g,h; for(g=100;g>0;g--) for(h=100;h>0;h--); } void du_key1() { key1=1; if(key1==0) { delay1(); if(key1==0) { flag=0; adjust1=adjust1+1; if(adjust1==8) { adjust1=0; }
23

} while(key1==0); } } void du_key2() { key2=1; if(key2==0) { delay1(); if(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(tiao==0) { tiao=100;
24

} } } while(key2==0); } } /***************************************** 温度线性处理模块 ***************************************/ void line_processer(uchar x,uchar f) { uchar y,z=0; for(y=0;y<x;y++) { if(f>=Fen_duan[y][0]&&f<Fen_duan[y][1]) { z=y; wendu=(f-Fen_duan[z][0])/slope[z]+Fen_duan[z][2]; } } } void deep_chuli(float y) { int x; x=y*10; AD_buffer[0]=shu[x/100]; AD_buffer[1]=shu[(x-(x/100)*100)/10]; AD_buffer[2]=shu[x%10]; } /*************************************** 一天的平均温度 ***************************************/ void day_average() { uchar x; float y=0; for(x=0;x<48;x++) { average=Tem_buffer[x]; line_processer(15,average); y=y+wendu; } wendu=y/48; }
25

/************************************* 报警模块 **************************************/ void baojin() { if(wendu>=35||wendu<=10) { beep=0; } else if(wendu<=34||wendu>=11) { beep=1; } }

26


相关文章:
课题一NTC热敏电阻的温度测量和控制系统
2011 年暑期电子设计大赛课题一基于 NTC 热敏电阻的温度测量与控制系统设计 学生姓名 院系名称 专业名称 杜衡、向奇林、刘露平 物理与电子工程学院 电子信息工程 ...
基于NTC热敏电阻的温度测量与控制系统设计
题目名称:基于 NTC 热敏电阻的温度测量与控 制系统设计摘要:本系统由 TL431 精密基准电压,NTC 热敏电阻(MF-55)的温度采集, A/D 和 D/A 转换, 单片机 STC...
基于NTC热敏电阻的温度测量与控制系统设计
设计、制作一个基于 NTC 热敏电阻的温度测量与控制系统。 二、要求 1.基本要求 (1) 设计并制作一个基于 NTC 热敏电阻的温度测量与控制系统: (2) 测温范围:0...
基于热敏电阻温室温度检测系统设计
成绩 南京工程学院 课程设计说明书(论文) 题 目 基于热敏电阻温室温度检测系统设计 课程名称院专班系业级 检测技术课程设计 康尼学院 电气工程及其自动化 K 电气 ...
热敏电阻温度测量系统设计
2、设计要求 20、热敏电阻温度测量系统设计 任务要求:a、设计基于 MF58 的 NTC 热敏电阻信号调理电路 b、设计 A/D 转换电路 c、设计数码管显示电路 3、设计...
基于单片机的热敏电阻测温系统设计
按照温度系数不同分为正温度系数热敏电阻器 (PTC)和负温度系数热敏电阻器(NTC)...图 3-1 系统设计框图 3.2 温度测量基于热敏电阻设计的电路原理图如图 3-2...
基于热敏电阻的温度控制器设计
基于热敏电阻的温度控制系统结构框图 3 硬件的实现 3.1 温度传感器温度传感器采用负温度系数的热敏电阻(NTC) ,NTC 的温度系数大,价格低 1 廉,用此制造的测温、...
单片机课程设计之热敏电阻测温
石化、水泥、玻璃、医药等行业温度的测量及为重要。...NTC 热敏电阻为核心器 件来设计热敏电阻测温系统。 ...采用单片机对温度采集进行 控制,不仅具有控制方便、...
基于单片机的温度控制器设计(热敏电阻)
重庆科技学院 《智能仪器仪表的设计 与调试》课程设计报告学 院:_电气与信息工程学院_ 专业班级: 学号: __ _ 学生姓名: 设计地点(单位)___逸夫科技大楼 I506...
更多相关标签:
ntc热敏电阻温度曲线 | ntc热敏电阻 温度计算 | ntc热敏电阻测量电路 | ntc热敏电阻温度系数 | ntc热敏电阻温度特性 | 热敏电阻温度测量电路 | 热敏电阻测量温度程序 | 热敏电阻温度测量 |