1、I摘 要温度测量技术应用十分广泛,而且在现代设备故障检测领域中也是一项非常重要的技术。但在某些应用领域中,要求测量温度用的传感器不能与被测物体相接触,这就需要一种非接触的测温方式来满足上述测温需求。本论文正是应上述实际需求而设计的红外测温仪。本设计将对硬件选择以及结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和 A/D 转换电路。不需要使传感器TN901 与人体接触,进行温度感应后,TN901 就可以感应温度并且直接送入AT89S51 单片机中,经过单片机的信号处理并将其送出,通过 LC
2、D1602 显示屏进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。关键词:51 单片机;TN901 红外测温仪;LCD1602 液晶显示屏IIABSTRACTThe technology of temperature measurement is used widespread, and it also important in the modern equipment failure examination field. But in some application domains, we neednt the
3、 sensor contact with the measured object which used in temperature measurement, this needs a kind of non-contact temperature measurement to satisfies the demand and the design of this infrared thermometer is also based on the demand.The design and structure will be designed hardware options, and usi
4、ng the new programmable temperature sensor TN901, its advantage is to be completed and SCM data acquisition and processing directly realize the convenience, high precision, stable performance, and without complex signal conditioning circuit and A / D converter circuit. TN901 does not need to make co
5、ntact with the human body sensor, temperature sensor after, TN901 can sense temperature and directly into the AT89S51 microcontroller, after signal processing and microcontroller sent out by LCD1602 digital tube display. The advantage is that you can quickly and accurately measure the body temperatu
6、re, compared with the traditional mercury thermometer, it has the advantage of high measurement accuracy, measurement time is short and easy to read.KEYWORDS:the 51single;the TN901 infrared thermometer;the ED1602 LCDIII目 录摘 要 IABSTRACT.II目 录 .III1 绪论 12 系统的原理及方案 .32.1 温度测量技术的概述 32.2 红外测温原理及方法 .32.3
7、红外测温系统的方案介绍 .43 红外测温系统的硬件设计 83.1 单片机处理模块 83.2 红外测温模块 103.3 电源模块 103.4 键盘模块 113.5 LCD 显示模块 114 红外测温系统的软件设计 .124.1 主程序模块的设计 124.2 红外测温程序模块 134.3 键盘扫描程序模块 144.4 显示程序模块 14结 论 .16致 谢 .17参考文献 .18附录 一 .19IV附录 二 .23附录 三 .29附录 四 .3011 绪论体温计是一种测量人体体温、辅助治疗和诊断疾病的常用医疗工具。随着现代科技的发展,新材料、新工艺的运用,各式各样的体温计陆续出现,探测方式在不断改
8、进,但是人们最常用的依然是水银接触式体温计。水银接触式体温计是根据汞受热膨胀的原理制成的,由于受到体温的影响,水银的体积膨胀使体温计内水银柱的高度发生变化达到一定的设定刻度实现测量体温。由于人体体温一般变化范围在 35 摄氏度到 42 摄氏度之间,所以水银接触式体温计刻度通常设定是 35到 42。每度的范围分成 10 份,因此水银接触式体温计可精确到 0.1 度。近年来,电子体温计越来越多的应用于各个行业,比如冶金、玻璃制造及体温测量等领域。许多医院也采用了部分电子体温计,虽然其性能和使用范围暂时不能与传统水银体温计相比,但是因其拥有快速便捷、无需接触被测者等优点被广泛采用,并且在未来会被应用
9、的越来越广。本体温计采用 TN901 红外传感器测量被测者体表温度,能直接测量被测者体表实际温度,测量精度高,抗干扰能力强,并运用此方法制造高性能的非接触式电子体温计。本文提出的新型测量体温仪器,针对传统体温计的测量时间长、精度差、接触人体皮肤易交叉感染等问题作出改进,解决了传统体温计读数不方便,用途单一等问题;无汞害,使用寿命长,灵敏度高,快捷方便,不易损坏,尤其适合于老年人、小孩和特殊病人群体。自从 1800 年英国天文学家 F.W.赫歇尔发现了红外辐射以来,红外技术的发展与应用已有很多年的历史。在相当长的一段时间里,红外技术的应用受到性能优良的红外传感器的制约。红外传感器是红外测温设备的
10、关键部件,它把接收到的红外辐射转变为人们便于观察和测量的电能或者热能参数。红外测温设备发展到今天,在技术上已经趋于成熟。国外的非接触式红外电子测温设备已经发展到相当的水平;在国内,虽然起步比较晚,但是经过了近十几年的发展和研究,目前国内也能生产出高灵敏度、高分辨率的红外传感器,使得限制国内红外测温技术2应用过程中的一个技术难题得到了较好的解决。目前,应用红外诊断技术的测试设备比较多,像红外测温仪、红外热电视、红外热成像仪等等。此时,我国也在积极主动的研发一种体积小、成本低、不受外界温度干扰、精度高的人体红外测温仪,也就是本课题的非接触式电子体温计,对医学的发展有着很重要的意义。本设计主体采用
11、TN901 红外测温模块接收被测人体温度信号,交由 51 单片机程序处理之后变成准确文字信号在 1602 液晶显示屏上显示具体读数。红外测温模块负责温度的测量、采集,并将采集的数据通过数据端口传送到单片机。单片机负责控制启动温度测量,接受测量数据,计算温度值并输出显示以实现红外测温目的的非接触式电子体温计。32 系统的原理及方案本设计将对硬件选择以及结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和 A/D 转换电路。不需要使传感器TN901 与人体接触,进行温度感应后,TN901 就可以
12、感应温度并且直接送入AT89S51 单片机中,经过单片机的信号处理并将其送出,通过 LCD1602 进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。2.1 温度测量技术的概述体温计是一种测量人体体温、辅助治疗和诊断疾病的常用医疗工具。随着现代科技的发展,新材料、新工艺的运用,各式各样的体温计陆续出现,探测方式在不断改进,但是人们最常用的依然是水银接触式体温计。水银接触式体温计是根据汞受热膨胀的原理制成的,由于受到体温的影响,水银的体积膨胀使体温计内水银柱的高度发生变化达到一定的设定刻度实现测量体温。由于人体体温一般
13、变化范围在 35 摄氏度到 42 摄氏度之间,所以水银接触式体温计刻度通常设定是 35到 42。每度的范围分成 10 份,因此水银接触式体温计可精确到 0.1 度。近年来,电子体温计越来越多的应用于各个行业,比如冶金、玻璃制造及体温测量等领域。许多医院也采用了部分电子体温计,虽然其性能和使用范围暂时不能与传统水银体温计相比,但是因其拥有快速便捷、无需接触被测者等优点被广泛采用,并且在未来会被应用的越来越广。2.2 红外测温原理及方法红外测温仪的测温原理是黑体辐射定律,众所周知,自然界中一切高于绝对零度的物体都在不停向外辐射能量,物体的向外辐射能量的大小及其按波长的分4布与它的表面温度有着十分密
14、切的联系,物体的温度越高,所发出的红外辐射能力越强。黑体的光谱辐射出射度由普朗克公式确定,即: 21/5CMe公式 2-1 普朗克公式下图 2-1 是不同温度下的黑体光谱辐射度图:图2-1 不同温度下的黑体光谱辐射度从上图中曲线可以看出黑体辐射具有几个特征: 在任何温度下,黑体的光谱辐射度都随着波长连续变化,每条曲线只有一个极大值; 随着温度的升高,与光谱辐射度极大值对应的波长减小。这表明随着温度的升高,黑体辐射中的短波长辐射所占比例增加; 随着温度的升高,黑体辐射曲线全面提高,即在任一指定波长处,与较高温度相应的光谱辐射度也较大,反之亦然。2.3 红外测温系统的方案介绍本设计将对硬件选择以及
15、结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和 A/D 转换电路。不需要使传感器TN901 与人体接触,进行温度感应后,TN901 就可以感应温度并且直接送入AT89S51 单片机中,经过单片机的信号处理并将其送出,通过 LCD1602 数码管进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。非接触式电子体温计主要由 TN901 非接触式温度传感器控制,测量采集被测目标温度,将温度信号转变成电信号传送给单片机
16、,由程序处理之后转变成文字5信号在 1602 液晶显示屏上显示被测目标具体温度数字。非接触式电子体温计由两大部分构成,第一部分 TN901 非接触式温度传感器;第二部分主体控制电路板,电路板由 51 单片机、1602 液晶显示屏、10K 排阻、4.7K 滑动变阻器、晶振、蜂鸣器、复位电路等构成。主要实现 TN901 温度传感器测量目标温度,经过程序处理之后在 1602 液晶显示屏上显示目标温度的具体数字。设置程序最大测量温度和最小测量温度,目标温度超出此范围蜂鸣器发出警报。通过按键复位测量完成后还原读数。4.7K 滑动变阻器调节 1602 液晶显示屏亮度等。图 2-2 TN901 红外测温仪表
17、 2-2 极限值参数 符号 额定值直流电压 V+ 7.0V输入电压范围 VIN -0.5V to V+ + 0.5VNote: 电压超过额定表中给出的额定值可能引起操作错误或者器具的损坏。对正常工作条件见 AC/DC 参数. 表 2-3 直流参数 16(VDD = 3.0V, TA = 25) (VDD = 4.5V, TA = 25) 表 2-4 直流参数 2数值参数 符号 最小值典型值.最大值单位测试条件工作电压 VDD 2.5 - 3.6 V工作电流 IOP - 4 6 mAVDD = 3.0V, FCPU = 600KHz静态电流 ISTBY- 2 3 A VDD = 3.0V输入高电
18、平 VIH 2.0 - - V VDD = 3.0V输入低电平 VIL - - 0.8 V VDD = 3.0V高电平输出电流IOH - -2.0 - mAVDD = 3.0V, VOH = 2.4V低电平输出电流IOL - 2.5 - mAVDD = 3.0V, VOH = 0.8V7表 2-5 测试规范测试条件 -33220C / -27428F工作范围 -1050C / 14122F精度 Tobj=1535C, Tamb=25C +/-0.6C全范围精度 #AC +/-2%, 2C分辨力( -9.9199.9C) 1/16C=0.0625 (fall range)响应时间 (90%) 1
19、 秒D:S 1:1发射率 0.011 step.01刷新频率 1.4Hz尺寸 12x13.7x35mm波长 5um-14um重量(不包括电池) 9 克电源 3V 或 5V 可选择数值参数 符号 最小值典型值 .最大值单位测试条件工作电压VDD3.6 - 5.0 V工作电流 IOP - 6 9mAVDD = 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 -mAVDD = 4.5V, VOH =
20、 3.5V低电平输出电流IOL - 2.5 -mAVDD = 4.5V, VOL = 0.8V83 红外测温系统的硬件设计本红外测温仪采用模块化的设计思想,它的硬件结构由 STC89C51 单片机模块,红外测温模块,电源模块,键盘模块和 LCD 显示模块组成。STC89C51 单片机是本系统的控制中心,它负责控制启动温度测量、接收测量数据、计算温度值、并根据取得的键值控制显示过程;红外测温模块负责温度数据的采集、测量,并将采集到的数据通过数据端口传送给 STC89C51 单片机; LCD 显示模块把测量的温度值直观地显示给观测者;电源模块负责本红外测温仪电源的供应。图 3-1 红外测温仪系统的
21、硬件方案设计框图3.1 单片机处理模块该红外测温仪是以 STC89C51 单片机为核心器件,此单片机模块的工作原理是:加载相应程序的 STC89C51 单片机把红外测温模块传来的数据加以处理,送LCD 显示屏显示。9图 3-2 单片机处理模块电路图图 3-3 单片机引脚图STC89C51 各引脚的功能描述如下:(1)电源和晶振:V CC运行和程序校验时加的电压;VSS接地;XTAL1输入到振荡器的反向放大器;XTAL2反向放大器输出,输入到内部时钟发生器。(2)RST:单片机的上电复位或掉电保护端;(3)ALE: 地址锁存有效信号输出端;(4) :片外程序存储器读选通信号输出端。PSEN103
22、.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, ,而此红外测温仪系统的红外测温模块和 LE
23、D键盘模块的共电电压都可为 5V,所以通过此电源模块后,将外部输入电压转换成 5V 的单片机工作电压,以保障红外测温系统的正常运行。113.4 键盘模块本设计键盘模块总共有三个按键,其中有启动电源键、卡电重启电源键、复位按键。3.5 LCD 显示模块LCD 显示模块:本设计采用 1602LCD 液晶显示屏。数码管显示按显示方式分动态显示和静态显示两种,静态显示虽然数据显示稳定,占用很少的 CPU 时间,但每个显示单元都需要单独的显示驱动电路,使用的电路硬件较多;动态显示需要 CPU 时刻对显示器件进行数据刷新,所谓的动态就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一段时间点亮一次
24、,利用人的视觉留感达到显示的目的。动态显示数据有闪烁感,占用 CPU 时间多,但使用的硬件少,能节省线路板空间。本设计采用的是动态显示,显示模块由两片 74HC164,8 个 8 段 LCD 数码管组成。图 3-6 LCD 显示电路原理图124 红外测温系统的软件设计本设计针对红外测温是测量人体体温,所以本设计软件针对的是人体测体温方面设计,对大环境下其他方面的温度测量设计不做介绍。主程序模块红外测温 键盘扫描 显示模块 通 信 模块图 4-1 红外测温仪系统的软件方案设计框图4.1 主程序模块的设计当红外测温仪接通电源时,STC89C51 单片机自动复位,开始运行该程序。该程序首先对 STC
25、89C51 初始化。然后给出开机显示,接着判断是否有键输入,若没有键输入,则继续判断;若有键输入,则判断是否是红外测温。若不是就返回开机显示,是则进行红外测温,接收数据,并将计算的温度值显示出来,如果是环境温度通过数码管前四位显示,目标温度用后四位显示。并等待结束测温命令。再判定是否结束温度测量,若没则继续测温,若收到结束命令则返回开机显示,重新判断。13图 4-2 主程序流程图4.2 红外测温程序模块该红外测温模块的数据输出信号和脉冲信号分别接单片机 P1.5,P1.6 口,测温控制端接 P1.7 口。它的程序流程图如图 3-2 所示,此模块首先定义一个字符型数组用于存放读取到的一帧数据,然
26、后启动测温,读取数据,数据是在脉冲的下降沿一位一位传送的。把五个字节数据都读完后判断第一个字节是否为 0x4c或 0x66 并且第五个字节为 0x0d,若是则计算温度值返回,否则继续读取数据。14图 4-3 红外测温流程图4.3 键盘扫描程序模块键盘是单片机应用中不可缺少的一部分。本键盘的设计采用 1 列 8 行(1X8)的设计思想,74HC164 在键盘中充当行驱动,列线接在单片机的 P1.3 口上,在固定的极短的时间内对键盘的列线进行扫描,进而判断是否有键按下,有键按下再判断是哪个键按下从而根据按键值在程序中做出进一步的判断。4.4 显示程序模块在显示模块中,我们采用两片74HC164,4
27、个8段LED数码管组成。它的工作原理是主控单片机STC89C51通过控制位选的74HC164去控制点亮不同的数码管,而另一片74HC164是用来根据主控单片机给出的不同信息,给出不同数码管所要显示的不同内容,在给出点亮信号时,数码管就显示出74HC164输出端的信息。4个8段数码管是定时循环按顺序被点亮,由于每次被点亮的时间间隔极短,也由于15人眼对光亮的感觉延迟效应,所以在显示不断被刷新的同时,人眼不会有闪烁感。本显示程序首先定义了数码管的字型和字位口编码表, 然后根据要让哪个数码管亮和让它亮什么数据来选择不同的字型字位口再进行查表,把查到的编码一位位送到两片 164 的数据端进行显示。开始
28、定义字型字位编码表指定字型口查表得字型码指定字位口显示要显示的数据图 4-4 LCD 显示程序流程图16结 论本设计经过几个月的制作与努力之后将近完工,回想这段时间的付出觉得收获很大。所做的非接触式电子体温计虽然是最小电路下的最简单的体温计设计电路,但是能很好的完成任务书中的要求和目标。作出的实物能够测量并显示环境温度和被测物体温度。有些缺陷,测量显示温度比实际物体温度有偏差,应该是TN901 发出红外线接收时有误差,所做实物精度有待提高,所以在今后的工作中,还要不断的学习充电,掌握更多的技能。争取能够在此基础上设计出精确度更高、功能更强大的智能化仪器。本设计主要由 TN901 非接触式温度传
29、感器控制,测量采集被测目标温度,将温度信号转变成电信号传送给单片机,由程序处理之后转变成文字信号在 1602液晶显示屏上显示被测目标具体温度数字。通过这次设计不仅把自己学习数字电路和模拟电路理论知识转化为实践成果,同时加强了自己动手能力和发现问题能力,为今后的学习和工作打下了很好的基础。17致 谢18参考文献1 梁森,王侃夫,黄杭美. 自动检测与转换技术M.北京:机械工业出版社,20062 邓重一. 数据采集与处理系统中的干扰问题及解决方法J.电工技术杂志,2004 3 高晓蓉. 传感器技术M.西南交通大学出版社,2003 4 黄继昌. 传感器工作原理及应用实例M.人民邮电出版社,1998 5
30、 陈杰. 传感器与检测技术M.高等教育出版社,2002 6 金发庆. 传感器技术与应用(第二版)M.北京:机械工业出版社,2006 7 高吉祥. 数字电子技术M.电子工业出版社,2003 8 沈任元 ,吴勇.数字电子技术M.北京:机械工业出版社,2005 9 康华光. 电子技术基础模拟部分M.高等教育出版社,198810 TN901 使用说明书11 李建忠. 单片机原理及应用M.西安电子科技大学出版社,200212 胡汉才单片机原理及系统设计北京:清华大学出版社,200213 阎石. 数字电子技术基础.第四版.高等教育出版社,200414 Behzad Razavi.Design of Ana
31、log CMOS Integrated CircuitsM. . 200115 Rhee W.Design of high-performance CMOS charge pumps inphase-lockedloops.IEEE International Symposium on Cir-cuits and Systems. 1999 19附录 三原理图20附录 四51 单片机运行程序#include“reg52.h“#include “intrins.h“#define uchar unsigned char#define uint unsigned int/* 1602LCD 引脚定
32、义 */#define LCD_data P0 /数据口sbit RS = P26; /寄存器选择输入sbit RW = P25; /写数据端 sbit EN = P27; /液晶使能控制/* 红外测温引脚定义 */sbit A_TN9=P13; /TN9 触发sbit CLK_TN9=P11; /TN9 时钟线sbit DATA_TN9=P10; /TN9 数据线/*全局变量定义*/bit flag;unsigned char TN_Data_Buff5; /红外模块数据缓存数组unsigned char DATA_INDEX;unsigned char DATA_NUM; /八位数据计数u
33、nsigned char data_tmp; /红外模块数据缓存unsigned char table_mbtemp=“00.00C“;float iTemp,MBTemp=11.01; /温度数据/函数定义声明void show_temp(); /温度显示子函数函数21void delay()unsigned int i;for(i=0;i10;i+);/*延时毫秒子程序,11.0592M 晶振下*/void delay_ms(unsigned int time)unsigned int i,j;for(i=1;i=time;i+)for(j=1;j=113;j+);/*-写入命令函数-*/
34、void LCD_Write_Com(unsigned char com) delay_ms(5);RS=0;RW=0; EN=1; P0=com; _nop_(); EN=0;/*-写入数据函数-*/void LCD_Write_Data(unsigned char Data) delay_ms(5);RS=1;RW=0; 22EN=1; P0= Data; _nop_();EN=0;/*-写入字符串函数-*/void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_Write
35、_Com(0x80 + x); /表示第一行else LCD_Write_Com(0xC0 + x); /表示第二行 while (*s) LCD_Write_Data( *s); s +; /*-初始化函数-*/void LCD_Init(void) LCD_Write_Com(0x38); /*显示模式设置*/ delay_ms(5); LCD_Write_Com(0x38); 23delay_ms(5); LCD_Write_Com(0x38); delay_ms(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*显示关闭*/ LCD_Wri
36、te_Com(0x01); /*显示清屏*/ LCD_Write_Com(0x06); /*显示光标移动设置*/ delay_ms(5); LCD_Write_Com(0x0C); /*显示开及光标设置*/=/ / C 格式: void TN_IRACK_EN(void);/ 实现功能: 红外模块启动函数/ 入口参数: 无/ 出口参数: 无/=void TN_IRACK_EN(void) unsigned char j;flag=0;A_TN9=0;delay();DATA_NUM=0;DATA_INDEX=0;for(j=0;j=4;j+)TN_Data_Buffj=0;24/=/ C 格式
37、: void TN_IRACK_UN(void);/ 实现功能: 红外模块关闭函数/ 入口参数: 无/ 出口参数: 无/=void TN_IRACK_UN(void)A_TN9=1;/=/ C 格式: int TN_ReadData(void);/ 实现功能: 读测得数据/=void TN_ReadData(void)data_tmp=0;DATA_NUM=0;DATA_INDEX=0;while(DATA_INDEX5)if(!CLK_TN9)if(flag=0)flag=1;DATA_NUM+;25data_tmp=1;if(DATA_TN9) data_tmp=data_tmp|0x01;elsedata_tmp=data_tmpif(DATA_NUM=8)TN_Data_BuffDATA_INDEX=data_tmp;DATA_NUM=0;DATA_INDEX+;data_tmp=0;elseif(flag=1)flag=0;/=/