1、基于 51 单片机红外测温的设计与实现摘要:随着科技的飞速发展,单片机的应用正在不断地日益广泛,同时也带动传统控制检测日新月异更新。在智能检测、控制系统中,往往使用单片机作为一个核心部件来使用,然后配合具体硬件设备,以及针对具体应用对象特点的软件结合,加以完善。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。传统的温度计多采用物理原理,根据水银等随温度升降的热胀冷缩的性质,通过读取刻度值来判断温度值,这种方法不太方便,而且耗时过长。本课题提供一种新的温度测量方案,采用具有 SPI(series peripheral interface
2、串行外围接口)接口的 TN 系列红外温度传感器来测量温度信号,可以同时测量环境温度和目标温度,并将测量的数据送给 51 单片机处理,之后送数码管显示,同时利用单片机的蜂鸣器,当温度超过某一限定值时,发出警报。红外测温打破了传统的测温模式,它响应快,测量精度高,可靠性强,范围广,为非接触测量,因而不易损坏,该温度计以其准备快捷的测量功能,和清晰易懂的数字化显示方便了人们日常生活和工作以及科研领域领域的使用。本课题是“基于 51 单片机红外测温的设计与实现”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。关键字:红外测温;51 单片机;测温探头
3、1 前言1.1 选题的目的和意义 体温是人体生命活动的基本特征,也是观察人体机能是否正常的重要标志之一。目前,人们使用最广泛的水银体温计是根据水银等随温度升降的热胀冷缩的性质,通过读取刻度值来判断温度值,它有诸多的缺陷:传统温度计在使用时要和被测量者接触,而且往往要等待较长的时间,以让其充分受热,当测量结束后还要将水银重新甩入水银泡中,由于水银泡是由很薄的玻璃制成的,极易破碎,而且其中的水银蒸汽对人体有极强的毒害作用,因此普通的温度计有非常严重的安全隐患。红外测温为测量人体温度提供了快速,非接触测量手段,可广泛,有效的用于密集人群的体温测量。而且可以以数字的方式显示出测量结果,使测量过程变得直
4、观,而且耗时短,往往在几秒钟之内就能测得结果,而且寿命长,是较为理想的测温仪器。红外测温的设计,其内容包含了电子技术,检测技术,单片机等多方面的内容,红外测温技术是一门很实用和前沿的技术,做此课题,有利于理论联系实际,更好的掌握这一方面的知识体系,是对学习内容的升华,特别是对单片机控制技术知识的深入理解,对于自身综合素质与工程能力的培养也有重要意义。2 设计任务和要求2.2 设计任务和要求 2.2.1 设计任务利用单片机作为控制板,控制红外测温模组实现温度测量,并能实现温度的现实,完成一个完整的智能化红外温度计的设计。2.2.2 设计要求1.通过 I/O 口控制启动测温,并能显示温度值:2 .
5、可以测量目标温度和环境温度:3.测量结果表示的精度为个位十位。测量结果表示精度,并非是测量精度,测量精度以传感器的性能决定。3 概述3.1 红外测温概况3.1.1 红外测温的基础理论红外线是电磁波谱的一个部分,这一波段位于可见光和微波之间,根据普朗克辐射定理,凡是绝对温度大于零度的物体都能辐射电磁能,物体的辐射强度与温度表面的辐射能力有关,辐射的光谱分布也与物体温度密切相关。在电磁波谱中,我们把人眼可直接感知的 0.40.75 微米破段称为可见光波段,而把波长从 0.75 至 1000 微米的电磁波称为红外波段,红外波段的短波段与可见光红光相邻,长波端与微波相接。可见光辐射主要来自高温辐射源,
6、如太阳,高温燃烧气体,灼热金属等,而任何低温,室温或加热后的物体都有红外辐射。1. 生物波谱生物波谱,又叫生物频谱,是生物自身发出的生物物理信息的光波或频率的综合称谓,它构成生物体周围的生物信息场。科学研究表明,生物体(包括人体)可产生温度场,电场和磁场等,统称为生物信息场,可以用物理学中的电磁波谱频率或波长,温度等物理因子来表述。生物波谱的波长覆盖范围在电磁波谱中的紫外线到弱微波之间,人体的生物波谱则主要在红外线到弱微波区域,尤其集中在红外线波段范围。因此它遵循电磁波的一切特性。生物波谱的这种物理信息的存在,变化是与生物体自身功能状态密切相关的,同样可以反应生物体的健康状态。2. 红外辐射的
7、发射及其规律先简单介绍一下黑体的红外辐射规律。所谓的黑体,简单讲就是在任何情况下对一切波长的入射辐射吸收率都等译 1 的物体,也就是说全吸收。显然,因为自然界中实际存在的任何物体对不同波长的入射辐射都有一定的反射(吸收率不等以 1) ,所以,黑体知识人们抽象出来的一种理想化的物体模型。但黑体热辐射的基本规律是红外研究及应用的基础,它揭示了黑体发射的红外热辐射随温度及波长的定量关系。3.1.2 红外测温的特点1.远距离和非接触测量红外测温不需要与被测物体接触,并可远距离测量,它特别适合于对高速运动物体,旋转体,带电体和高温高压下物体的温度测量。2.响应速度快红外测温不像热电偶,温度计那样,需要与
8、被测量体接触以达到热平衡,只要接触到目标的红外辐射即可测量,其响应时间在毫秒甚至微妙数量级。3. 灵敏度高因物体温度的微小变化会引起辐射功率的较大变化,容易被探测器探出,故红外测温的可测温差很小,几乎达到零点几摄氏度。4. 准确度高红外测温时非接触测量,不破坏物体本身的温度分布,因而所测温度真实,准确,误差可达 0.1 摄氏度以下。5. 测温范围广测温范围可从负几十摄氏度到正几十摄氏度。4.红外测温的原理51 单片机作为整个系统的控制中心,负责控制启动温度的测量,接受测量的数据,计算温度值,并根据取得的键值控制播报显示过程;红外测温模块负责温度的测量,采集,并将采集数据通过数据端口传送到 51
9、 单片机;通过启动红外测温模块,测量结束返回测量结果,待 MCU 运算处理得出目标温度和环境温度后将结果进行显示。该测温仪器以 51 单片机为控制核心,由于红外测温模块具有 SPI 接口,故可以直接与单片机的 I/O 口相连接,不需要放大信号或调理电路。4.1 51 单片机51 单片机是在一块芯片中继承了 CPU,RAM,ROM,定时/计数器和多功能 I/O 接口等计算机所需要的基本功能部件的大规模集成电路,又称 MCU。51 单片机包含以下几个部件:一个 8 位 CPU一个片内振荡器及时钟电路4KB ROM 程序存储器;128B RAM 数据存储器可寻址 64KB 外部数据存储器和 64KB
10、 外部程序存储器的控制电路。32 条可编程的 I/O 线(4 个 8 位并行 I/O 接口)2 个 16 位的定时/计数器1 个可编程全双工串行接口,5 个中断源,2 个优先级嵌套中断结构。 4.2 红外测温模块红外测温模块采用非接触测温手段,解决了传统测温中需要接触待测物体的问题,具有回应速度快,测量精度高,测量范围广以及可同时测量目标温度和环境温度的特点。测量回应时间大约为 0.5S,而且,它具备 SPI 接口,可以很方便的与 MCU 传输数据。红外测温模块参数如表 4.1 所示。4.2.1 红外测温模块的引脚介绍红外测温模块的引脚图如图 4.5 所示, 其中:V 为电源电压引脚 VCC,
11、VCC一般为 3V 到 5V 之间的电压,一般取 VCC 为 3.3;D 为数据接收引脚,没有数据接收时,D 为高电平;C 为 2KHz Clock 输出引脚;G 为接地引脚;A 为测温启动信号引脚,低电平有效。4.2.2 红外测温模块时序图红外测温时序图如图 4.6 所示,为 SPI 数据格式,在 CLOCK 的下降沿接收数据,一次温度测量需要接收 5 个字节的数据,这五个字节中:Item 中 0x4c 表示测量目标温度,0x66 表示测量环境温度;MSB 为接收温度的高八位数据; LSB 为接收温度的第八位数据;SUM 为验证码,接收正确时SUM=item+MSB+LSB;CR 为结束标志
12、,当 CR 为 0x0Dh 时表示完成一次温度数据的接收。一帧数据包括五个字节,每个字节代表含义如下:Item: ”L ”(4CH):代表此阵数据为目标温度“ f”(66H): 代表此帧数据位环境温度MSB: 8 bit Data MsbLSB: 8 bit Data LsbSum: item+MSB+LSB=SUMCR: 0DH,结束码4.2.3 红外测温模块温度值的计算无论测量环境温度还是目标温度,只要监测到 Item 为 0x4cH 或 0x66H 同时检测到 CR 为 0x0dH,它们的温度计算方法都相同。计算公式为:温度=Temp/16-273.15 (4-1)其中 Temp 为十进
13、制,而测量结果为 16 进制,把它直接转换为十进制即可。5 键盘显示电路5.1 键盘显示电路本设计中采用 8 位数码管显示,设计中用到的硬件电路如图所示5.2 模块功能及接口说明LED 键盘显示模块基本特性和主要功能如下:1. LED 键盘模块采用 DC5V 供电,也可以采用 DC3.3V 供电;2. 8 个发光二极管,可以作为显示状态信息使用3. 一个电位器,可以提供 05V 的模拟电压信号或者 03.3V 的模拟电压,与模组输入的 VDD 有关。6 接线与烧入程序6.1 接线根据所编的程序接线为:V 接电源 VCC;D 接 P1.2;C(时钟)接P3.2;G 接地 GND;A(片选)接 P
14、1.2;蜂鸣器 BEEP 接 P1.36.2 烧入程序安装驱动 XLISP,将 51 单片机通过 USB 接口接到计算机中,通过 XLISP软件自动查找串口,使计算机检测到 51 单片机,从而进行通讯。然后将HEX 文件通过 XLISP 软件烧入 51 单片机中。 7 程序#include/C to p3.2 始终为 3.2 口sbit D=P11; /数据位sbit A=P12; /片选sbit BEEP=P13; /蜂鸣器unsigned char code show=0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60;/字符unsigned
15、 char code some=1,2,4,8,16,32,64,128;/数码管显示的选定unsigned char buff5; /定义一个数组void delay(unsigned int); /定义延时子程序unsigned char array=0,b=0,dat=0,flag=0; unsigned int temp,time=0;int etemp,otemp;main()unsigned i,j;EA=1;EX0=1;IT0=1; /中断初始化A=1;A=0;A=1;A=0;TMOD=0x01;ET0=1;TH0=-1000/256;TL0=-1000%256;while(1)
16、 /重复显示for(i=0;i30)TR0=1;/else TR0=0;/如果目标温度大于30 摄氏度蜂鸣器就响P2=somei;/数码管显示if(i=0|i=1|i=4|i=5)P0=showj;/当显示温度的数值时在对应的数码管上显示对应的字符delay(100);int0() interrupt 0 /中断程序delay(1);if(D)dat|=0x01;/如果有数据则记录在 dat 中else dat|=0x00;if(b=7)/如果 8 位数据完了,就将这个字节数据存在数组中buffarray=dat;array+;b=0;dat=0;else dat=(dat1);b+;if(a
17、rray=5)array=0;flag=1;/数组满了就送显示if(flag)if(buff0=0x66|buff0=0x4c)/显示目标和环境温度temp=buff1;/把第一个字节送给 temptemp=(temp8);/左移八位temp|=buff2;/和第二个字节或,就得到温度值if(buff4=0x0d)/如果末尾的字符为 0x0d 则说明数据正确if(buff0=0x4c)otemp=temp/16-273.15;/显示目标温度else etemp=temp/16-273.15; /显示环境温度flag=0;timer0() interrupt 1/定时器中断BEEP=BEEP;/
18、蜂鸣器低电平有效,所以取反TH0=-1000/256;TL0=-1000%256;time+;if(time=1000)TR0=0;time=0;void delay(unsigned int i)/延时子程序while(i-); 8 总结通过此次专题实践,让我更加清楚的掌握了单片机的有关知识,认识了其强大的功能,其结构特点及其相关的一些开发平台为本系统的设计提供了便利的条件:32 个可编程的 I/O 口使得在设计中扩展红外测温模组和键盘显示模块非常的灵活;而且具有丰富的中断源,使得系统在数据显示,报警等方面游刃有余,扩展性强。对的硬件的处理和软件的设计,以 51 单片机作为本次设计的主控机,使得红外测温仪具有以下功能: 非接触测量温度;快速测量环境温度和目标温度,而且测量以后可以直观的显示,当温度达到一定数值时,可进行报警。通过这些都在很大程度上开阔了我的视野,拓展了我的知识面,也认识到了自己的不足,所以在后续的学习过程中,一定更加努力的学习相关的课程,更好的掌握好这方面的知识。9 参考文献http:/ 李群芳 肖看 编著 清华大学出版社 P82P10051 单片机仿真实战教程 聂典 丁伟 编著 电子工业出版社 P118P135