找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19119|回复: 8
打印 上一主题 下一主题
收起左侧

单片机+TN901非接触式红外测温设计论文与源码PCB等资料

  [复制链接]
跳转到指定楼层
楼主
摘要
温度测量技术应用十分广泛,而且在现代设备故障检测领域中也是一项非常重要的技术。但在某些应用领域中,要求测量温度用的传感器不能与被测物体相接触,这就需要一种非接触的测温方式来满足上述测温需求。本论文正是应上述实际需求而设计的红外测温仪。
本设计将对硬件选择以及结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和A/D转换电路。不需要使传感器TN901与人体接触,进行温度感应后,TN901就可以感应温度并且直接送入AT89S51单片机中,经过单片机的信号处理并将其送出,通过LCD1602显示屏进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。

目  录
摘  要
ABSTRACT
目  录
1绪论
2 系统的原理及方案

2.1 温度测量技术的概述
2.2  红外测温原理及方法
2.3  红外测温系统的方案介绍
3 红外测温系统的硬件设计

3.1 单片机处理模块
3.2 红外测温模块
3.3 电源模块
3.4 键盘模块
3.5 LCD显示模块
4 红外测温系统的软件设计

4.1 主程序模块的设计
4.2 红外测温程序模块
4.3 键盘扫描程序模块
4.4 显示程序模块
结  论

致  谢
参考文献

附录 一
附录 二
附录 三
附录 四

1绪论

体温计是一种测量人体体温、辅助治疗和诊断疾病的常用医疗工具。随着现代科技的发展,新材料、新工艺的运用,各式各样的体温计陆续出现,探测方式在不断改进,但是人们最常用的依然是水银接触式体温计。

水银接触式体温计是根据汞受热膨胀的原理制成的,由于受到体温的影响,水银的体积膨胀使体温计内水银柱的高度发生变化达到一定的设定刻度实现测量体温。由于人体体温一般变化范围在35摄氏度到42摄氏度之间,所以水银接触式体温计刻度通常设定是35℃到42℃。每度的范围分成10份,因此水银接触式体温计可精确到0.1度。

近年来,电子体温计越来越多的应用于各个行业,比如冶金、玻璃制造及体温测量等领域。许多医院也采用了部分电子体温计,虽然其性能和使用范围暂时不能与传统水银体温计相比,但是因其拥有快速便捷、无需接触被测者等优点被广泛采用,并且在未来会被应用的越来越广。

本体温计采用TN901红外传感器测量被测者体表温度,能直接测量被测者体表实际温度,测量精度高,抗干扰能力强,并运用此方法制造高性能的非接触式电子体温计。本文提出的新型测量体温仪器,针对传统体温计的测量时间长、精度差、接触人体皮肤易交叉感染等问题作出改进,解决了传统体温计读数不方便,用途单一等问题;无汞害,使用寿命长,灵敏度高,快捷方便,不易损坏,尤其适合于老年人、小孩和特殊病人群体。

自从1800年英国天文学家F.W.赫歇尔发现了红外辐射以来,红外技术的发展与应用已有很多年的历史。在相当长的一段时间里,红外技术的应用受到性能优良的红外传感器的制约。红外传感器是红外测温设备的关键部件,它把接收到的红外辐射转变为人们便于观察和测量的电能或者热能参数。红外测温设备发展到今天,在技术上已经趋于成熟。国外的非接触式红外电子测温设备已经发展到相当的水平;在国内,虽然起步比较晚,但是经过了近十几年的发展和研究,目前国内也能生产出高灵敏度、高分辨率的红外传感器,使得限制国内红外测温技术


应用过程中的一个技术难题得到了较好的解决。

目前,应用红外诊断技术的测试设备比较多,像红外测温仪、红外热电视、红外热成像仪等等。此时,我国也在积极主动的研发一种体积小、成本低、不受外界温度干扰、精度高的人体红外测温仪,也就是本课题的非接触式电子体温计,对医学的发展有着很重要的意义。

本设计主体采用TN901红外测温模块接收被测人体温度信号,交由51单片机程序处理之后变成准确文字信号在1602液晶显示屏上显示具体读数。红外测温模块负责温度的测量、采集,并将采集的数据通过数据端口传送到单片机。单片机负责控制启动温度测量,接受测量数据,计算温度值并输出显示以实现红外测温目的的非接触式电子体温计。


2 系统的原理及方案

   本设计将对硬件选择以及结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和A/D转换电路。不需要使传感器TN901与人体接触,进行温度感应后,TN901就可以感应温度并且直接送入AT89S51单片机中,经过单片机的信号处理并将其送出,通过LCD1602进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。

2.1温度测量技术的概述

体温计是一种测量人体体温、辅助治疗和诊断疾病的常用医疗工具。随着现代科技的发展,新材料、新工艺的运用,各式各样的体温计陆续出现,探测方式在不断改进,但是人们最常用的依然是水银接触式体温计。

水银接触式体温计是根据汞受热膨胀的原理制成的,由于受到体温的影响,水银的体积膨胀使体温计内水银柱的高度发生变化达到一定的设定刻度实现测量体温。由于人体体温一般变化范围在35摄氏度到42摄氏度之间,所以水银接触式体温计刻度通常设定是35℃到42℃。每度的范围分成10份,因此水银接触式体温计可精确到0.1度。

近年来,电子体温计越来越多的应用于各个行业,比如冶金、玻璃制造及体温测量等领域。许多医院也采用了部分电子体温计,虽然其性能和使用范围暂时不能与传统水银体温计相比,但是因其拥有快速便捷、无需接触被测者等优点被广泛采用,并且在未来会被应用的越来越广。

2.2 红外测温原理及方法

红外测温仪的测温原理是黑体辐射定律,众所周知,自然界中一切高于绝对零度的物体都在不停向外辐射能量,物体的向外辐射能量的大小及其按波长的分布与它的表面温度有着十分密切的联系,物体的温度越高,所发出的红外辐射能力越强。黑体的光谱辐射出射度由普朗克公式确定,即: 

                     

公式2-1 普朗克公式

下图2-1是不同温度下的黑体光谱辐射度图:

         

               图2-1 不同温度下的黑体光谱辐射度

从上图中曲线可以看出黑体辐射具有几个特征:

  •    在任何温度下,黑体的光谱辐射度都随着波长连续变化,每条曲线只有一个极大值;
  •    随着温度的升高,与光谱辐射度极大值对应的波长减小。这表明随着温度的升高,黑体辐射中的短波长辐射所占比例增加;
  •    随着温度的升高,黑体辐射曲线全面提高,即在任一指定波长处,与较高温度相应的光谱辐射度也较大,反之亦然。
2.3 红外测温系统的方案介绍

本设计将对硬件选择以及结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和A/D转换电路。不需要使传感器TN901与人体接触,进行温度感应后,TN901就可以感应温度并且直接送入AT89S51单片机中,经过单片机的信号处理并将其送出,通过LCD1602数码管进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。

非接触式电子体温计主要由TN901非接触式温度传感器控制,测量采集被测目标温度,将温度信号转变成电信号传送给单片机,由程序处理之后转变成文字信号在1602液晶显示屏上显示被测目标具体温度数字。非接触式电子体温计由两大部分构成,第一部分TN901非接触式温度传感器;第二部分主体控制电路板,电路板由51单片机、1602液晶显示屏、10K排阻、4.7K滑动变阻器、晶振、蜂鸣器、复位电路等构成。主要实现TN901温度传感器测量目标温度,经过程序处理之后在1602液晶显示屏上显示目标温度的具体数字。设置程序最大测量温度和最小测量温度,目标温度超出此范围蜂鸣器发出警报。通过按键复位测量完成后还原读数。4.7K滑动变阻器调节1602液晶显示屏亮度等。

               2-2 TN901红外测温仪

表2-2极限值
参数
符号
额定值
直流电压
V+
<7.0V
输入电压范围
VIN
-0.5V to V+ + 0.5V

Note: 电压超过额定表中给出的额定值可能引起操作错误或者器具的损坏。对正常工作条件见 AC/DC 参数.

2-3直流参数 1

参数

符号

数值

单位

测试条件

最小值

典型值.

最大值

工作电压

VDD

2.5

-

3.6

V


工作电流

IOP

-

4

6

mA

VDD = 3.0V,

FCPU = 600KHz

静态电流

ISTBY

-

2

3

μA

VDD = 3.0V

输入高电平

VIH

2.0

-

-

V

VDD = 3.0V

输入低电平

VIL

-

-

0.8

V

VDD = 3.0V

高电平输出电流

IOH

-

-2.0

-

mA

VDD = 3.0V, VOH = 2.4V

低电平输出电流

IOL

-

2.5

-

mA

VDD = 3.0V, VOH = 0.8V

(VDD = 3.0V, TA = 25℃)

(VDD = 4.5V, TA = 25℃)

2-4直流参数 2
参数
符号
数值
单位
测试条件
最小值
典型值.
最大值
工作电压
VDD
3.6
-
5.0
V

工作电流
IOP
-
6
9
mA
VDD = 4.5V,
FCPU = 600KHz
静态电流
ISTBY
-
3
4.5
μA
VDD = 4.5V
输入高电平
VIH
3.0
-
-
μA
VDD = 4.5V
输入低电平
VIL
-
-
0.8
μA
VDD = 4.5V
高电平输出电流
IOH
-
-2.0
-
mA
VDD = 4.5V, VOH = 3.5V
低电平输出电流
IOL
-
2.5
-
mA
VDD = 4.5V, VOL = 0.8V
2-5 测试规范
测试条件
-33~220°C / -27~428°F
工作范围
-10~50°C / 14~122°F
精度 Tobj=15~35°C, Tamb=25°C
+/-0.6°C
全范围精度 #AC
+/-2%, 2°C
分辨力(-9.9~199.9°C)
1/16°C=0.0625 (fall range)
响应时间 (90%)
1秒
D:S
1:1
发射率
0.01~1 step.01
刷新频率
1.4Hz
尺寸
12x13.7x35mm
波长
5um-14um
重量(不包括电池)
9克
电源
3V 或5V 可选择

3 红外测温系统的硬件设计

本红外测温仪采用模块化的设计思想,它的硬件结构由STC89C51单片机模块,红外测温模块,电源模块,键盘模块和LCD显示模块组成。

STC89C51单片机是本系统的控制中心,它负责控制启动温度测量、接收测量数据、计算温度值、并根据取得的键值控制显示过程;红外测温模块负责温度数据的采集、测量,并将采集到的数据通过数据端口传送给STC89C51单片机; LCD显示模块把测量的温度值直观地显示给观测者;电源模块负责本红外测温仪电源的供应。

    图3-1 红外测温仪系统的硬件方案设计框图
3.1 单片机处理模块

该红外测温仪是以STC89C51单片机为核心器件,此单片机模块的工作原理是:加载相应程序的STC89C51单片机把红外测温模块传来的数据加以处理,送LCD显示屏显示。

      图3-2 单片机处理模块电路图

                 

                        图3-3 单片机引脚图

STC89C51各引脚的功能描述如下:

(1)电源和晶振:VCC——运行和程序校验时加的电压;

VSS——接地;

XTAL1——输入到振荡器的反向放大器;

XTAL2——反向放大器输出,输入到内部时钟发生器。

(2)RST:单片机的上电复位或掉电保护端;

(3)ALE: 地址锁存有效信号输出端;

(4):片外程序存储器读选通信号输出端。

3.2 红外测温模块
图3-4 红外测温电路模块

它的测量距离大约为30米,测量回应时间大约为0.5秒。而且它具备SPI接口,可以很方便地与单片机(MCU)传输数据。

红外测温传感器的引脚介绍:

    图3-5 红外测温传感器引脚图

红外测温传感器引脚图如图2-4,其中V为电源引脚VCC,VCC一般为3V到5V之间的电压,一般取3.3V;D为数据接收引脚,没有数据接收时D为高电平;C为2KHz Clock输出引脚;G为接地引脚;A为测温启动信号引脚,低电平有效。            

3.3 电源模块

STC89C51的内核共电为5v,,而此红外测温仪系统的红外测温模块和LED键盘模块的共电电压都可为5V,所以通过此电源模块后,将外部输入电压转换成5V的单片机工作电压,以保障红外测温系统的正常运行。

3.4 键盘模块

本设计键盘模块总共有三个按键,其中有启动电源键、卡电重启电源键、复位按键。

3.5 LCD显示模块

    LCD显示模块:本设计采用1602LCD液晶显示屏。数码管显示按显示方式分动态显示和静态显示两种,静态显示虽然数据显示稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示需要CPU时刻对显示器件进行数据刷新,所谓的动态就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一段时间点亮一次,利用人的视觉留感达到显示的目的。动态显示数据有闪烁感,占用CPU时间多,但使用的硬件少,能节省线路板空间。

本设计采用的是动态显示,显示模块由两片74HC164,8个8段LCD数码管组成。

                           图3-6 LCD显示电路原理图

4 红外测温系统的软件设计

  本设计针对红外测温是测量人体体温,所以本设计软件针对的是人体测体温方面设计,对大环境下其他方面的温度测量设计不做介绍。

     图4-1 红外测温仪系统的软件方案设计框图
4.1 主程序模块的设计

当红外测温仪接通电源时,STC89C51单片机自动复位,开始运行该程序。该程序首先对STC89C51初始化。然后给出开机显示,接着判断是否有键输入,若没有键输入,则继续判断;若有键输入,则判断是否是红外测温。若不是就返回开机显示,是则进行红外测温,接收数据,并将计算的温度值显示出来,如果是环境温度通过数码管前四位显示,目标温度用后四位显示。并等待结束测温命令。再判定是否结束温度测量,若没则继续测温,若收到结束命令则返回开机显示,重新判断。

图4-2 主程序流程图
4.2 红外测温程序模块

该红外测温模块的数据输出信号和脉冲信号分别接单片机P1.5,P1.6口,测温控制端接P1.7口。它的程序流程图如图3-2所示,此模块首先定义一个字符型数组用于存放读取到的一帧数据,然后启动测温,读取数据,数据是在脉冲的下降沿一位一位传送的。把五个字节数据都读完后判断第一个字节是否为0x4c或0x66并且第五个字节为0x0d,若是则计算温度值返回,否则继续读取数据。

                     图4-3 红外测温流程图
4.3 键盘扫描程序模块

键盘是单片机应用中不可缺少的一部分。本键盘的设计采用1列8行(1X8)的设计思想,74HC164在键盘中充当行驱动,列线接在单片机的P1.3口上,在固定的极短的时间内对键盘的列线进行扫描,进而判断是否有键按下,有键按下再判断是哪个键按下从而根据按键值在程序中做出进一步的判断。

4.4 显示程序模块

在显示模块中,我们采用两片74HC164,4个8段LED数码管组成。它的工作原理是主控单片机STC89C51通过控制位选的74HC164去控制点亮不同的数码管,而另一片74HC164是用来根据主控单片机给出的不同信息,给出不同数码管所要显示的不同内容,在给出点亮信号时,数码管就显示出74HC164输出端的信息。4个8段数码管是定时循环按顺序被点亮,由于每次被点亮的时间间隔极短,也由于人眼对光亮的感觉延迟效应,所以在显示不断被刷新的同时,人眼不会有闪烁感。

本显示程序首先定义了数码管的字型和字位口编码表, 然后根据要让哪个数码管亮和让它亮什么数据来选择不同的字型字位口再进行查表,把查到的编码一位位送到两片164的数据端进行显示。

图4-4 LCD显示程序流程图


结  论

本设计经过几个月的制作与努力之后将近完工,回想这段时间的付出觉得收获很大。所做的非接触式电子体温计虽然是最小电路下的最简单的体温计设计电路,但是能很好的完成任务书中的要求和目标。作出的实物能够测量并显示环境温度和被测物体温度。有些缺陷,测量显示温度比实际物体温度有偏差,应该是TN901发出红外线接收时有误差,所做实物精度有待提高,所以在今后的工作中,还要不断的学习充电,掌握更多的技能。争取能够在此基础上设计出精确度更高、功能更强大的智能化仪器。

本设计主要由TN901非接触式温度传感器控制,测量采集被测目标温度,将温度信号转变成电信号传送给单片机,由程序处理之后转变成文字信号在1602液晶显示屏上显示被测目标具体温度数字。

通过这次设计不仅把自己学习数字电路和模拟电路理论知识转化为实践成果,同时加强了自己动手能力和发现问题能力,为今后的学习和工作打下了很好的基础。


单片机程序源码:
  1. //宏定义
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. //头函数
  5. #include <reg52.h>
  6. //全局变量定义
  7. float Temp;
  8. float HJTemp,MBTemp;

  9. //TN9温度传感器头函数
  10. #include <TN9.h>
  11. //LCD头函数
  12. #include <LCD.h>
  13. //按键
  14. sbit K =P1^0;
  15. sbit LR=P1^7;
  16. sbit LG=P1^1;

  17. void delay1(uint x)
  18. {
  19. uint  a,b;
  20. for(a=0;a<20;a++)
  21.    { for(b=x;b>0;b--);
  22.    }
  23. }

  24. void delay(uint x)
  25. {
  26. uint  a,b;
  27. for(a=0;a<20;a++)
  28.    { for(b=x;b>0;b--);
  29.    }
  30. }
  31. //主函数
  32. void main()
  33. { // while(1)        

  34. //if(K==1)        //屏幕初始化
  35.         
  36.         Init_LCD();
  37.         //开启指示灯
  38.         LR=1;
  39.         LG=0;
  40.          delay1(20);
  41.         //开始按键
  42.         //while(K==1);
  43.         
  44.         //温度显示初始化
  45. //        Init_T();

  46.         //循环读码
  47.         //while(1)
  48.   while(1)        
  49.   {        
  50.         // Display(MBTemp,HJTemp);
  51.         if(K==0)
  52.         {          Init_T();
  53.                   while(K==0)
  54.         {        LR=~LR;
  55.                 //读取目标温度
  56.                 TN_IRACK_UN();
  57.                 TN_IRACK_EN();
  58.                 TN_GetData(0x4c);
  59.                 MBTemp=Temp;
  60.                 LR=~LR;
  61.                 //读取环境温度
  62.                 TN_IRACK_UN();
  63.                 TN_IRACK_EN();
  64.                 TN_GetData(0x66);
  65.                 HJTemp=Temp;
  66.                 //显示
  67.                 Display(MBTemp,HJTemp);}
  68. …………
  69. …………
  70. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)



全部资料51hei下载地址:
非接触测温资料.rar (5.85 MB, 下载次数: 428)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏8 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:421188 发表于 2018-11-6 08:00 来自手机 | 只看该作者
请问,TN901可以直接与51单片机开发板连接么?做这个测温仪,还要其他元件吗
回复

使用道具 举报

板凳
ID:433680 发表于 2018-11-26 19:46 | 只看该作者
楼主的给数据很齐,应该不需要其它组件
回复

使用道具 举报

地板
ID:282650 发表于 2019-1-18 16:34 来自手机 | 只看该作者
感谢楼主无私奉献!
回复

使用道具 举报

5#
ID:197152 发表于 2019-2-8 15:37 | 只看该作者
黑人脸 发表于 2018-11-6 08:00
请问,TN901可以直接与51单片机开发板连接么?做这个测温仪,还要其他元件吗

tn901太贵了 用其他的红外的也就是30左右,tn百十块钱
回复

使用道具 举报

6#
ID:235690 发表于 2019-5-9 11:57 | 只看该作者
非常详细的资料!
回复

使用道具 举报

7#
ID:718174 发表于 2020-5-5 18:49 | 只看该作者
吴海晨o 发表于 2019-2-8 15:37
tn901太贵了 用其他的红外的也就是30左右,tn百十块钱

DS18B20也可以,只是精度没有那么好
回复

使用道具 举报

8#
ID:1020777 发表于 2022-4-24 11:26 | 只看该作者
有谁可以根据楼主提供的资料画个仿真图学习下吗?
回复

使用道具 举报

9#
ID:1020777 发表于 2022-4-25 11:16 | 只看该作者
求仿真
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表