资源描述
目 录摘要.IAbstract.II第一章红外线测温仪的研发背景 .11.1红外测温仪的实际应用.11.2 红外测温技术的发展历程.1第二章人体红外测温仪的原理和特点 .22.1人体红外线测温仪的理论依据.22.2 人体红外线测温仪的性能指标及作用.22.3 影响温度测量的主要因素及修正方法.32.4 人体红外线测温仪的特点.5第三章 人体红外测温仪的硬件设计 .63.1 总体设计.63.1.1 整体框图设计 .63.1.2 电路设计 .73.2 温度传感器.83.3 放大电路的设计.83.4 模数转换部分电路.93.5 LCD1602 显示电路.10第四章 软件设计 .125.1 红外测温仪的使用注意事项.155.2 改进方案.155.3 推广及应用.15参考文献 .16致 谢 .17附录 1 PCB 板图.18附录 2 3D 效果图 .19附录 3 程序 .20人体红外测温仪人体红外测温仪摘要摘要:为了克服传统温度计测量温度的主要缺点需要测量者与被测目标近距离接触和测量不方便。在顾及仪器测量高精度前提下,以追求最低成本为原则,研制了非接触式热释电红外测温仪,实现了对物体表面温度快速准确的测量。本文也设计了红外测温仪的整体系统构架。根据热释电原理,主要针对人体体温测量进行了具体的设计开发,开发包括整体方案,硬件电路,单片机程序和主机程序。并利用设计出来的红外测温仪在环境温度30下对人体温度和水温进行了测量,对人体的温度测量的误差低于0.1,提高了测量精度。人体测温仪的设计主要为适应人体体温快速无接触测量的需要。主要介绍热释电红外传感器的工作原理以及最适宜人体红外线检测的热释电传感器PM611的优点和等效电路,阐述了基于热释电传意器的红外测温仪的工作原理,讨论了该系统的设计与实现方法,简单介绍了测温系统的适用条件。关键词:关键词:温度测量,热释电,AT89C51ITemperature measuring based on body infrared rayAbstract: To decrease the limitation of traditional method of temperature measuring such as close contact between measurer and the target and inconvenience when measuring, we developed a non-contact type piezoelectric infrared thermometer, realizes fast and accurate surface temperature measurements. This article also designed the overall system architecture infrared thermometer. Then under the piezoelectric principle, aimed at human body temperature measurement for a specific design, development including hardware, peripherals technology, SCM, and the host program . Designed by using the infrared thermometer at ambient temperature 30,temperature and water temperature on the human body were measured on the human body temperature measurement error is less a 0.1 improve the measurement accuracy. This thermometer mainly applies to no-contact, speedy body-heat measurement. This article mainly introduces operational principles of piezoelectric infrared sensor and the structure of hydroelectrically sensor PM611.It formulates the theory of the thermometer based on hydroelectrically sensor and studies how to design and implement of the systemFinally,it indicates the conditional demand of the system.Key words: temperature measurement, piezoelectric,AT89C510第一章红外线测温仪的研发背景1.1红外测温仪的实际应用由于医学发展的需要,在很多情况下,一般的温度计己经满足不了快速而又准确的测温要求,例如车站和机场等人口密度较大的地方进行人体温度测量。虽然现在国外这种测温的技术都比较成熟,但是国内这方面的技术还处于发展阶段。因此,为了适应医学发展的需要,有效地进行特殊环境下的温度测量,从而有力地控制和预防诸如甲流、非典之类型的特殊疾病的传播,急需设计一种测温速度快,准确率高的测温仪。针对一般的工业用的红外测温仪的精确度不够高,我们根据这种红外线测温的原理,通过关键器件的选择、瞄准系统的设计以及温度补偿的自动调节来提高红外线测温仪的精确度,设计了一种用红外线测温电路,用于人员密集且流量大的场合进行快速的人体温度测量。1.2 红外测温技术的发展历程红外测温技术在生产过程中、在产品质量控制和监测、设备在线故障诊断和安全保护以及节约能源等方面发挥了重要作用。近 20 年来,非接触式红外人体测温仪在技术上得到迅速发展,性能不断完善,功能不断增强,品种不断增多,适用范围也不断扩大。比起接触式测温方法,红外测温有着响应时间快、非接触、使用安全及使用寿命长等优点。非接触式红外测温仪包括便携式、在线式和扫描式三大系列,并备有各种选件和计算机软件,每一系列中又有各种型号及规格。 红外检测技术是“九五”国家科技成果重点推广项目,红外检测是一种在线监测(不停电)式高科技检测技术,它集光电成像技术、计算机技术、图像处理技术于一身,通过接收物体发出的红外线(红外辐射),将其热像显示在荧光屏上,从而准确判断物体表面的温度分布情况,具有准确、实时、快速等优点。任何物体由于其自身分子的运动,不停地向外辐射红外热能,从而在物体表面形成一定的温度场,俗称“热像”。红外诊断技术是通过吸收这种红外辐射能量,测出设备表面的温度及温度场的分布,从而判断设备发热情况。目前应用红外诊断技术的测试设备比较多,如红外测温仪、红外热电视、红外热像仪等等。像红外热电视、红外热像仪等设备利用热成像技术将这种看不见的“热像”转变成可见光图像,使测试效果直观,灵敏度高,能检测出设备细微的热状态变化,准确反映设备内部、外部的发热情况,可靠性高,对发现设备隐患非常有效。目前,我国也在研发一种体积小,成本较低,又不受外界环境温度干扰的人体红外测温仪,对医学的发展有很重大的意义。1第二章人体红外测温仪的原理和特点2.1人体红外线测温仪的理论依据自然界一切温度高于绝对零度(-273.15)的物体,由于分子的热运动,都在不停地向周围空间辐射包括红外波段在内的电磁波,其辐射能量密度与物体本身的温度关系符合辐射定律。红外辐射原理 辐射定律: (2.1)440()ETT式中: 为辐射出射度数,;为斯蒂芬波尔兹曼常数,E3W/m;为物体的辐射率;为物体的温度,单位;为物8245.67*10 W/(m)KTK0T体周围的环境温度,单位。测量出所发射的 ,就可得出温度。KE利用这个原理制成的温度测量仪表叫红外温度仪表。这种测量不需要与被测对象接触,因此属于非接触式测量。在不同的温度范围,对象发出的电磁波能量的波长分布不同,在常温(0100)范围,能量主要集中在中红外和远红外波长。用于不同温度范围和用于不同测量对象的仪表,其具体的设计也不同。根据式(2.1)的原理,仪表所测得的红外辐射为: (2.2)441212()EATT 式中:为光学常数,与仪表的具体设计结构有关;为被测对象的辐射率;A1为红外温度计的辐射率;为被测对象的温度(K) ;为红外温度计的温21T2T度(K) ;它由一个内置的温度检测元件测出。辐射率是一个用以表达物体发射电磁波能力的系数,数值由 0 至 1.0。所有真实的物体,包括人体各部位的表面,其值都是某个低于 1.0 的数值。人体主要辐射波长在 910的红外线,通过对人体自身辐射红外能量的测m量,便能准确地测定人体表面温度。由于该波长范围内的光线不被空气所吸收,因而可利用人体辐射的红外能量精确地测量人体表面温度。通过对人体自身辐射的红外能量的测量,便能准确地测定人体表面温度。红外温度测量技术的最大优点是测试速度快,1 秒以内可测试完毕。红外测温仪由光学系统、光电探测器、信号放大器及信号处理、显示输出等部分组成。2.2 人体红外线测温仪的性能指标及作用总的来说,测温范围、显示分辨率、精度、工作环境温度范围、重复性、相对湿度、响应时间、电源、响应光谱、尺寸、最大值显示、重量、发射率等都是红外线测温仪的性能指标。21、确定测温范围:测温范围是测温仪最重要的一个性能指标。每种型号的测温仪都有自己特定的测温范围。2、确定目标尺寸:红外测温仪根据原理可分为单色测温仪和双色测温仪(辐射比色测温仪) 。对于单色测温仪,在进行测温时,被测目标面积应充满测温仪视场。否则背景会干扰测温读数,造成误差。对于双色测温仪,其温度是由两个独立的波长带内辐射能量的比值来确定的。 3、确定距离系数(光学分辨率):距离系数由 D:S 之比确定,即测温仪探头到目标之间的距离 D 与被测目标直径之比。如果测温仪由于环境条件限制必须安装在远离目标之处, 而又要测量小的目标,就应选择高光学分辨率的测温仪。光学分辨率越高,测温仪的成本也越高。4、确定波长范围 :目标材料的发射率和表面特性决定测温仪的光谱相应波长对于高反射率合金材料,有低的或变化的发射率。5、确定响应时间:响应时间表示红外测温仪对被测温度变化的反应速度,定义为到达最后读数的 95%能量所需要时间,它与光电探测器、信号处理电路及显示系统的时间常数有 关。6、信号处理功能:鉴于离散过程(如零件生产)和连续过程不同,所以要求红外测温仪具有多信号处理功能(如峰值保持、谷值保持、平均值) 。7、环境条件考虑:测温仪所处的环境条件对测量结果有很大影响,应予考虑并适当解决,否则会影响测温精度甚至引起损坏。8、红外辐射测温仪的标定:红外测温仪必须经过标定才能使它正确地显示出被测目标的温度。 2.3 影响温度测量的主要因素及修正方法影响红外人体测温仪的因素有:1、测温目标大小与测温距离的关系:在不同距离处,可测的目标的有效直径 D 是不同的,因而在测量小目标时要注意目标距离。人体红外测温仪距离系数 K 的定义为:被测目标的距离 L 与被测目标的直径 D 之比,即 K=L/D。 2、选择被测物质发射率:人体红外测温仪一般都是按黑体(发射率=1.00)分度的,而实际上,物质的发射率都小于 1.00。因此,在需要测量目标的真实温度时,必须设置发射率值。物质发射率可从辐射测温中有关物体发射率的数据中查得。3、测量温度时的环境因素:测温仪所处的环境条件对测量结果有很大的影响,应予考虑并适当解决,否则会影响测温精度。本设计中正是利用了PM611 热释电红外线传感器可以补偿温度起伏的作用,实现准确测温。 4、强光背景里目标的测量:若被测目标有较亮背景光(特别是受太阳光或强灯直射) ,则测量的准确性将受到影响,因此可用物体遮挡直射目标的强3光以消除背景光干扰。 5、温度输出功能:首先模拟信号输出05V,15V,010V,0/420 毫安,可以加入闭环控制中。其次高报警、低报警生产过程中要求控制温度在某个范围里,可设置高,低报警值。高报警:在高报警设置打开的情况下,当温度高于高报警值,相应的 LED 灯闪烁,蜂鸣器响,并有 AH 常开继电器接通。由于在温度测量时是在不确定的环境中进行的,所以外界环境会对测温造成一定的影响,对测量结果产生误差,所以要对环境温度有一个修正。 由 2.1 节辐射公式可得出热释电传感器的响应公式为: (2.3)440()aVS TT式中:为与热释电响应特性及物体表面发射率有关的常数,为物体表面温S0T度,为环境温度。根据表达式(2.3)可以得到不同的标定公式: aT(1)简单关系式,即 (2.4)1/440aaaVTTTK VS式中:,应用此公式所作的标定实验结果见表 1,表中数据表明,314aaKST 不仅与 有关,还与 有关。 aKaT0T(2)多项式,即 (2.5)1/440aVTTS令 (2.6)201 aaSaaTaT在参考文献7中,取三项,其实验结果表明,要使测温仪满足一定的精度,S测温时的环境温度和物体表面温度要在一定的范围内,如环境温度=30,aT物体表面温度在 180以上时,读数误差较大。由下表 1 可知:首先应该对物体表面温度分段定标,因为测量范围较大,所以不同段的标定系数相差很大。实际应用中每隔 510就必须标定一个系数,当采样电压峰值落在此区间时就选择该系数。然后再根据环境温度的不同对已选出的标定系数进行修正,达到在不同环境温度下仍然能够准确测温的目4的。 分析表 1 可知,当物体表面温度较低时(78以下) ,环境温度对修正系数的影响较大。所以对此温度范围的物体必须进行环境温度对标定系数的修正。而当物体表面温度较高时,则修正系数基本由物体表面温度决定,这样系数就不必再依环境温度进行校正。这就减少了标定系数的复杂性 。下图为表 1:表表 1 不同环境温度下的标定系数不同环境温度下的标定系数2.4 人体红外线测温仪的特点人体红外测温仪是通过接收人体发射的红外线的能量的大小来测量其体温的仪器。测温仪内部的灵敏探测元件将采集的能量信息输送到微处理器中进行处理,然后转换成温度读数显示。所以人体红外测温仪具有以下优点:1、非接触测量:它不需要接触到人体,只需在额头前方 5 厘米左右测温即可,而且红外探测器只需感应人体辐射的红外线。因此,不会干扰人体,也不会为人体带来损伤。2、测量范围广:因为人体红外测温仪是非接触式测温,所以测温仪并不处在较高或较低的温度场中,而是工作在正常的温度或测温仪允许的条件下进行测量的,所以测量范围比较广。3、测温速度快:即响应时间快。红外探测器中灵敏元非常灵敏,只要接收到目标红外辐射即可在短时间内定温。4、准确度高:人体红外测温不会与普通测温一样破坏物体本身温度分布,因此测量精度高。5、灵敏度高:只要人体温度有微小变化,辐射能量就有较大改变,易于测出。而且使用安全及使用寿命长。6、体积小,方便携带。7、受外界环境温度干扰较小:由于本设计中所使用的红外探测器是带补标准温度 ()环境温度()测量值(V)系 数 Ka(V/) 26.0 2.613 3.061 26.5 2.605 2.879 34.00 27.0 2.588 2.704 26.0 2.960 17.57 26.5 2.948 17.47 78.00 27.0 2.925 17.44 26.0 3.392 27.71 26.5 3.388 27.59 120.00 27.0 3.384 27.485偿电路的,所以它可以补偿外界环境温度的高低起伏。6第三章 人体红外测温仪的硬件设计3.1 总体设计下图 3.1 所示是人体红外测温仪系统的总体结构框图。红外探测器检测系统信号处理单元显示单元报警系统控制器图 3.1系统总体结构框图 由上图可以看出,红外探测仪接收到人体发出的红外线后,经过检测系统确定后,再在信号处理单元对所测得的信号进行放大、滤波、再计算,模数转换处理传送到显示单元显示出温度读数。如果经过处理后的数据大于所设置的预警数据,则蜂鸣器报警。如果检测完信号后送达处理系统处理,所测的数据有误,则可以通过控制器(按钮)来进行重新检测,直到显示正确温度。3.1.1 整体框图设计热释电红外测温仪可以这样设计整体结构框图,如图 3.2 所示。按下开关即可测量,每次测量结果显示在显示器上。 当测量按钮按下时,整个电路开始工作,物体表面辐射的能量经热释电传感器接收后,将热辐射信号转化为电信号,经由放大电路放大后(由外界环境导致的杂乱信号经滤波器过滤后)到达 A/D 模数转换器,89C51 单片机作为 CPU 接收经 A/D 转换后的数字信号,经数据处理后转换成物体表面温度显示在 LCD 液晶显示屏上。传 感 器放 大 器大器滤 波 器波器ADC0804转 换 器AT89C51液 显 LCD1602图 3.2总体电路框图73.1.2 电路设计本设计采用 89C51 系列单片机进行数据的采集存储和处理。由于信号只有一个输入,为了避免不必要的消耗,本设计 A/D 转换器采用的是 ADC0804。芯片的 CLKIN 端和 CLKR 端配合可以由芯片自身产生时钟脉冲。测量物体表面辐射能量的热释电传感器选用的是尼赛拉传感器有限公司的 PM611 型热释电传感器,它有效调节外界环境的温度起伏影响;液晶显示器(LCD)选用的是 2 行 16 个字的液晶显示屏。电路的主要功能是将热释电传感器接收的红外辐射能量转换为可供 A/D 转换器接受的电信号。显示器(LCD)由 74LS02 译码器驱动,并由 89C51 单片机通过软件控制显示物体表面的温度。通过软件程序编制可以实现三位有效数字的显示( 100 度以下显示两位整数和一位小数,100 度以上显示三位整数)下图 3.3是整个设计的电路连接图:8图 3.3红外人体测温仪电路3.2 温度传感器本设计的探头使用的是红外线传感器,它能接收人体发射出的红外线并使之转换成电压信号。设计选用的是 PM611 单元热释电传感器,这种传感器虽是单灵敏元,由于他采用一个接收元和二个并联的补偿元串接的结构,故也能有效地补偿环境温度起伏,振动等干扰影响。他的工作温度是-20+70 ,特别适合测量人体的温度。而且 PM611 各项指数都比较好,因此选用了他做温度仪的探头。如图 3.4 所示:图 3.4传感器的内部典型连接电路3.3 放大电路的设计由于传感器探测到的人体红外线信号较弱,当转化为电压后需要通过放大器放大电压信号。因为探测器测到的信号可能掺杂了外界环境的某些因素,所以放大电路中要加入低通滤波电路把多余的杂信号过滤掉。如图 3.5 所示:9图 3.5放大部分电路 传感器输出的信号经 47 F 电容耦合到第一个同相放大器,它的闭环增益为 2324 之间。同时第一个放大器还兼做高通滤波器,其截止频率为 0.3 Hz。第二个放大器是一个低通滤波器,其闭环增益约为 1,截止频率为 7 Hz。第一个,第二个放大器分别把低于 0.3Hz 和高于 7 Hz 的信号滤掉,使输出的信号仅是经过调制器调制的 1 Hz 红外辐射信号。通过第二章的原理可知由信号转换为电压再转化成温度才显示出来的,那么这个过程将在第三个放大器中完成。通过放大滤波的信号就输入到模数转换器的 Vin(+)端,模数转换器会把收到的信号进行模数转换。调试:在实验中通过调节放大器 1 输出端的 10K 变阻器,使第三个放大器的输出信号大小发生改变,当最后一个也就是第三个信号放大器的输出小于5V 时,可以适应下面系列的处理,因此第三个放大器的两个电位器用来调节最后信号输出的大小,确保在高温时不超过 5V。3.4 模数转换部分电路由于传感器探测到红外线后被放大的是模拟信号,然而需要在 LCD 液显上显示出来,所以本设计利用模数转换器来实现这个功能。因为只用到了一个输入信号,所以为了节省不必要的累赘,采用 ADC0804 把有用的模拟信号转换成数字信号,最后显示出来。ADC0804 是用 CMOS 集成工艺制成的逐次比较型模数转换芯片。分辨率8 位,输入电压范围是 05V, 增加一些外部电路后,输入模拟电压为5V。此芯片内有输出锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU 数据总线上,不用再加接口电路。ADC0804 芯片的外引脚图如 3.6 所示,引脚名称及意义如下:10图 3.6 ADC0804 引脚图Vin(+) 、Vin(-):芯片的两个模拟信号输出端,用来接收单极性、双极性和差模输入信号;D0D7:AD 转换器的数据输出端;AGND:接模拟信号地;DGND:接数字信号地端;CLK IN:外电路提供时钟脉冲输入端;CLK R:内部时钟发生器外接电阻端,与 CLK IN 端配合可由芯片自身产生时钟脉冲,频率为 1/1.1RC;CS:片选信号输入端,低电平有效,一旦使用低电平,表示转换器被选中,则开始工作。WR:写信号输入,低电平有效。当 CS、WR 同时为低电平时,启动转换。RD:读信号输入,低电平有效,当 CS、RD 同时为低电平时,可以读取转换输出的数据。 INTR:转换结束输出信号,低电平有效。如果输出低电平表示此次转换已经完成。本设计采用了 CLK R 端口和 CLK IN 端口配合,芯片本身产生时钟脉冲的方法,A/D 转换器 Vin(+)端口接收到经处理过的模拟信号在内部进行模数转换,片选端口 CS 和 WR 写信号输入端口同为低电平时启动转换,因为 0804内部有输出锁存器,转换后的数字信号存在锁存器里,当 CS、RD 同为低电平时,可以读取转换输出的数字信号,由 A/D 模数转换器的 D0D7 端输出,接入 AT89C51 单片机的 P1 口的 P1.7P1.0,经过程序烧制显示到液晶显示屏上。A/D 模数转换电路连接图如下图 3.7:11图 3.7 ADC0804 模数转换电路3.5 LCD1602 显示电路液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。在本设计采用的字符型液晶模块是一种用 5x7 点阵图形来显示字符的液晶显示器,根据显示的容量可以分为 1 行 16 个字、2 行 16 个字、2 行 20 个字等等,这里以常用的 2 行16 个字的 1602 液晶模块来介绍它的编程方法。1602 采用标准的 16 脚接口,其中:第 3 脚:VEE 为液晶显示器对比度调整端;第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;第 5 脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS 和 RW 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平RW 为高电平时可以读忙信号,当 RS 为高电平 RW 为低电平时可以写入数据;第 6 脚:E 端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令;第 714 脚:D0D7 为 8 位双向数据线; 第 1516 脚:空脚。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表 2 是 DM-162 的内部显示地址。表表 2 216021602 的内部显示地址的内部显示地址121 12 23 34 45 56 67 78 89 91 10 01 11 11 12 21 13 31 14 41 15 51 16 6序号序号0 00 00 01 10 02 20 03 30 04 40 05 50 06 60 07 70 08 80 09 90 0A A0 0B B0 0C C0 0D D0 0E E0 0F F第一第一行行4 40 04 41 14 42 24 43 34 44 44 45 54 46 64 47 74 48 84 49 94 4A A4 4B B4 4C C4 4D D4 4E E4 4F F第二第二行行1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。 在软件中设置温度的代码是:30.0(00110011B,00110000B,00101110B, 00110000B,01000011B);37.0(00110011B,00110111B,00101110B,00110000B, 01000011B);60(00110110B,00110000B,01000011B)。在液显电路连接上,LCD1602 显示模块可以直接和单片机 AT89C51 直接接口,液晶显示的 D0D7 八个双向端口接 AT89C51 单片机的 P0 口的P0.0P0.7,单片机的 P0 口可以作为通用的输入,输出端口使用,此时,若要驱动 NMOS 或其他拉电流负载时,需外接上拉电阻,才能使该位高电平有效,所以中间接 10K 的排阻,来决定显示器高低点位,是否要显示。由于 VEE 端接电源时接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,对比度过低会使屏幕模糊不清,所以使用时可以通过一个 10K 的电位器来调整它的对比度。LCD1602 的 RS 寄存器选择端口接单片机的 P2.1 口,通过软件程序中对此端口的设置来决定选择的寄存器。液显的 RW 端口直接接单片机的 P2.2 口,高电平时进行对输入的数字信号进行读数。使能 E 端接单片机的 P2.3 口,使能端由高电平到低电平时开始执行命令,把读数显示出来。下图 3.8 是 LC D1602 显示电路的连接图:13图 3.8LCD 显示电路连接图14第四章 软件设计设计的思路是首先初始化系统,然后显示子程序,开始测温后复位各个端口,摁下开关 ,接通电源,确定打开电源后 A/D 模数转换器 Vin(+)输入端读取经过放大滤波计算后的数据进行模数转换,CS 片选端、WR 写入端同时设置成低电平,当芯片自身产生一个脉冲时,启动转换。然后 A/D 转换器的CS、RD 同时为低电平 0 时读取转换输出的数据,转换后的数据存入模数转换器自身的锁存器里,由输出端口 D0D7 输入到单片机的 P0 口中。读取三次数据,满三次后读数正确的写入单片机 EEPROM 存储器。同时计数器加 1,继续读取下一组数据。如果读数满三次后数据不正确,则要对单片机进行清零,复位后重新测量读数。中断子程序设置 INT0 为外部中断,中断后对 EEPROM 里的数据进行读取,然后通过液晶屏显示出来,读取时要对数据进行一个判断,AT89C51 单片机的P3 口除了是多功能 I/O 口外还是第二功能口,它的第二功能是作为控制端口使用的,所以本设计用 P3.0 串行口输入端来控制报警系统,如果数据大于37.0,则蜂鸣器报警。显示温度的范围是 3060,当所测温度高于下限或者上限温度时,报警系统报警。执行完一次子命令后运行中断信号,子程序返回。主程序流程图如图 4.1 所示。主程序主要实现以下功能: 1、开机或复位时能自动初始化设备,引导程序正确执行。 2、开机或复位之后启动 A/D 转换,对环境温度进行采样,并在显示器上显示当前环境温度。 3、保持环境温度显示的同时,对覆盖热释电探测器视场的物体表面的红外辐射进行转换和采样,并比较各采样值,直到采样值为热释电探测器响应的峰值电压为止。 如图 4.2 是软件设计部分的中断子程序流程图,主要实现以下功能: 1、A/D 采样子程序完成对热释电传感器放大电路输出信号的采样。要实现准确测温就必须得到输出信号的峰值,但在实际电路中,由于探测器响应延时不尽相同,且电路的延时也很难准确计算,所以要准确采集到峰值是十分困难的。为此,我们只有对输出信号不断地进行采样,并比较各样值,取其中的最大者作为峰值的近似值 2、数据处理子程序完成对采样值的计算处理。中间又经过了 ADC0804 数模转换器将结果转换为可供 LCD 显示的代码。 3、读取温度时超过预警温度,蜂鸣器报警,没超过直接显示所测温度。4、液晶显示子程序完成最后的温度。15外部中断 0 初始化显示子程序复位读取数据写入 EEPROM(超过 37.0度)计数器加 1计数器清零数据正确满三次启动键打开结束NYYNY开始N图 4.1 主程序流程图16读取指令读取 EEPROM(超过37 度)报警发送数据LCD 显示中断返回YN外部中断入口 图 4.2 中断子程序流程图17第五章小结5.1 红外测温仪的使用注意事项1、必须准确确定被测物体的发射率;2、避免周围环境高温物体的影响;3、对于透明材料,环境温度应低于被测物体温度;4、测温仪要垂直对准被测物体表面,在任何情况下,角度都不能超过30;5、不能应用于光亮的或抛光的金属表面的测温,不能透过玻璃进行测温;6、正确选择跟离系数,目标直径必须充满视场;7、如果红外测温仪突然处于环境温度差为 20 或更高的情况下,测量数据将不准确,温度平衡后再取其测量的温度值。5.2 改进方案 由于普通红外测温仪只限于测量物体外部温度,不方便测量物体内部和存在障碍物时的温度,所以可以在其检测头部加一段光导纤维,并在其前端装一个小视角的透镜,这样被测物体的辐射能经过透镜到光导纤维内部。在光导纤维里面经过多次反射传至检测器。因为光纤可以自由弯曲,使辐射能自由转向,这就解决了物体内部温度的测量问题,可以测量有障碍物挡住的角落等地方的温度。5.3 推广及应用由于 SARS 和 H1NI 甲流的出现(其相似并发病症状之发烧),这样,红外测温仪就用于人体温度的测量和大量人群的初步筛检。但是非接触式人体红外测温仪测量的是表体温度而非精确体温,所以有关人体表面温度和传统的用体温计测得的腋下温度之间的相关性还正在研究之中,且发表的相关文章少之又少。到目前为止,还没有任何结论性的证据表明,其中一种温度可以可靠地、一致性地表示为另一种温度。本文通过研究部分受试人员的温度测试结果发现:手持式红外侧温仪所测得的人体表面温度与体温(腋下温度)相比较,其温差因人体个体差异而一致性较差。从本设计试验结果来看,如果将温差判据确定为 2-4时,将仍然有35%左右的人员漏查和不必要的进一步待查。而按照现在一些相关单位暂时提出的红外测温值修正 1-3,那么可能漏查的人员更多!基于普朗克辐射理论的红外非接触测温技术,由于被测物体均非物理惫义上的黑体(发射率 =1),而是灰体(发射率 (,R,)1),而被测物体的发射率(,R,)与辐射波长 ,辐射物体表面粗糙度 R,被测物体的材料等有关,18因而其测温的准确度受到限制。相对于工业用途的红外测温来讲,人体表面的红外测温因每个人的个体差异较大(诸如人体自身对周围环境温度的适应调节能力,皮肤状况,化妆,出汗,肤色等),因而很难准确地(标准体温计的准确度为0.15)地给出人体温度。19参考文献(参考文献(References)1那彦.电子及通信毕业设计M.西安:西安电子科技大学出版社,2008.2程玉兰.红外诊断实用技术M.北京:机械工业出版社,2002.3赵全利,肖兴达.单片机原理及应用教程(第二版)M.北京:机械工业出版社,2008.4彭承琳.生物医学传感器原理及应用M .北京;高等教育出版社,2000.5何希才.传感器及其应用实例M .北京:机械工业出版社,2004.6黄贤武,郑筱霞.传感器实际应用电路设计M.成都:电子科技大学出版社,1997.7何志彪,黄光,易新建.热释电红外测温方程的研究J.红外技术,1999.8陈继述.红外探测器M .北京:国防工业出版社,1986. 9胡乾斌,李光斌,李玲,等单片微型计算机原理与应用 M .武汉:华中理工大学出版社,1997.10柳刚,黄竹邻,周昊,王双保,易新建.非接触式红外研制M.光电子科技与信息, 2005.11陈永甫.红外探测与控制电路M .北京:人民邮电出版社,2004:290-320.12何希才.传感器及其应用电路M .北京:电子工业出版社,2001:746,177191.13马殿阁.多路红外温度监测仪J .电子测量技术,1993(3):5556.14刘瑞新.单片机原理及应用教程M .北京:机械工业出版社,2005.7.15无线电杂志社.无线制作精汇M .北京:人民邮电出版社,2005.16赵亮.单片机语言编程与实例M .北京:人民邮电出版社,2003.17阎石.数字电子技术基础M .北京:高等教育出版社,2006.5.18谢嘉奎.电子线路非线性部分(第四版)M .北京:高等教育出版社,2000.20致 谢在本次毕业设计中,我首先非常感我的导师彭岚峰老师孜孜不倦的指导,做设计的过程中彭老师多次询问进程,并为我指点迷津。她严谨细致、一丝不苟的作风一直是我工作、学习中的榜样,她循循善诱的教导和不拘一格的思路给予我无尽的启迪。 感谢何尚平老师,在导师带实习生去苏州实习时对我的询问不耐烦的给我讲解、指导,帮助我开拓研究思路、精心点拨、热忱鼓励。又给了我很多参考资料。何老师作为一个老师对不是自己的学生耐心之极,很令人钦佩,是优秀的师德。 我还要感谢在一起愉快的度过四年生活的谢碧芳同学,叶栋兰同学,柳谚和曹李华同学,正是由于他的帮助和督促,我才能克服一个个的困难和疑惑,直至今天的顺利完成。21附录 1 PCB 板图22附录 2 3D 效果图正面图反面图23附录 3 程序# include /头文件# include # include # include # include # include # include /测温头文件#include /液晶显示头文件sbit upalarm=P30;/上限温度报警信号sbit dc_motor_run=P26;/超过上限温度,报警 bit up_one,down_one; /加 1 和减 1 标志bit alarm_up_flag; /上限报警设置标志bit set_temper_flag;/设置控制标志温度标志bit alarm_switch;/报警开关bit set_temper_dot_flag;unsigned char user_temper=37; /用户标定温度unsigned char TH=30,TL=20,RS=0 x3f; /上限温度 50,下限 20,分辨率 10 位,也就是 0.25Cunsigned unsigned char t2,*pt;/用来存放温度值,测温程序就是通过这个数组与主函数通信的unsigned char TempBuffer117=0 x2b,0 x20,0 x30,0 x30,0 x2e,0 x30,0 x30,0 x20,0 x53,0 x45,0 x2b,0 x20,0 x30,0 x30,0 x2e,0 x30,0;/显示实时温度,上电时显示+ 00.00 SET+ 00unsigned char TempBuffer017=0 x54,0 x48,0 x3a,0 x2b,0 x20,0 x30,0 x30,0 x20,0 x54,0 x4c,0 x3a,0 x2b,0 x20,0 x30,0 x30,0 x20,0;/显示温度上下限,上电时显示 TH:+ 00 TL:+ 00unsigned char code dotcode4=0,25,50,75;因显示分辨率为 0.25,但小数运算比较麻烦,故采用查表的方法*再将表值分离出十位和个位后送到十分位和百分位*/void sounddelay();void tempsound();24/*用户设定温度转换为 LCD 显示数据*功能:将用户设定温度 user_temper,分离出符号位,百、十、个位 并将它们转化为 ACSII 码,送到液晶显示缓冲区void user_temper_LCD(unsigned char temper)TempBuffer110=0 x2b; / /0 x2B 为+的 ASCII码TempBuffer111=temper/100+0 x30; /分离出 temper 的百十个位 if( TempBuffer111=0 x30) TempBuffer111=0 xfe; /百位数消隐 TempBuffer112=(temper%100)/10+0 x30; /分离出十位 TempBuffer113=(temper%100)%10+0 x30; /分离出个位TempBuffer115=user_dot_temper+0 x30;/*温度转换为 LCD 显示数据*功能:将报警温度,分离出符号位,百、十、个位,并将它们转化为 ACSII 码,送到液晶显示缓冲区void alarm_LCD( unsigned char TH, unsigned char TL) TempBuffer03=0 x2b;/0 x2B 为+的 ASCII 码if(TL0 x7f) else TempBuffer011=0 x2b; /0 x2B 为+的 ASCII 码TempBuffer04=TH/100+0 x30; /分离出 TH 的百十个位 if( TempBuffer04=0 x30) TempBuffer04=0 xfe; /百位数消隐 TempBuffer05=(TH%100)/10+0 x30; /分离出十位 TempBuffer06=(TH%100)%10+0 x30; /分离出个位 TempBuffer012=TL/100+0 x30; /分离出 TL 的百十个位 if( TempBuffer012=0 x30) TempBuffer012=0 xfe; / /百位数消隐 TempBuffer013=(TL%100)/10+0 x30; /分离出十位25 TempBuffer014=(TL%100)%10+0 x30; /分离出个位/*温度转换为 LCD 显示数据*功能:将两个字节的温度值,分离出符号位,整数及小数 并将它们转化为 ACSII 码,送到液晶显示缓冲区void temper_LCD(void) unsigned char x=0 x00,y=0 x00; t0=*pt; pt+; t1=*pt; else TempBuffer10=0 x2b;/0 xfe 为变+的 ASCII 码 t1=4; /右移 4 位 x=x&0 x0f;/和前面两句就是取出 t0的高四位,t0的低四位代表小数 t1=t1|x; /将高低字节的有效值的整数部分拼成一个字节 soundvalue1=t1; if(t1user_temper) dc_motor_run=1; /如果温度高于用户标定温度,则报警 else dc_motor_run=0; TempBuffer11=t1/100+0 x30; /+0 x30 为变 09 ASCII 码 if( TempBuffer11=0 x30) TempBuffer11=0 xfe; /百位数消隐 TempBuffer12=(t1%100)/10+0 x30;/分离出十位 TempBuffer13=(t1%100)%10+0 x30; /分离出个位26 t0=t0&0 x0c; /取有效的两位小数 t0=2; /左移两位,以便查表 x=t0; y=dotcodex;/查表换算成实际的小数 soundvalue2=y; TempBuffer15=y/10+0 x30;/分离出十分位 TempBuffer16=y%10+0 x30;/分离出百分位
展开阅读全文