《红外温度传感器原理(6页).doc》由会员分享,可在线阅读,更多相关《红外温度传感器原理(6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-红外温度传感器原理-第 6 页自然界一切温度高于绝对零度(-27315)的物体。由于分子的热运动都在不停地向周围空间辐射包括红外波段在内的电磁波。其辐射能量密度与物体本身的温度关系符合普朗克(Plank)定律。红外测温的原理是一样的,都是根据普朗克原理。一般理解红外测量的是物体的温度其实测的是目标物与传感器或者说是物体与环境温度之间的差值。物体辐射能量的大小直接与该物体的温度有关具体地说,是与该物体热力学温度的4次方成正比用公式可表达为:#嵌入式研究网a href=cghdddEKMGfghb5654fmMH E=(T4-T4o) (1)#嵌入式研究网a href=cghdddEKMGfgh
2、b5654fmMH式中,E是辐射出射度单位是Wm3;#嵌入式研究网a href=cghdddEKMGfghb5654fmMH是斯蒂芬一波尔兹曼常数,567x10-8W(m2K4);#嵌入式研究网a href=cghdddEKMGfghb5654fmMH是物体的辐射率:#嵌入式研究网a href=cghdddEKMGfghb5654fmMHT是物体的温度(K);#嵌入式研究网a href=cghdddEKMGfghb5654fmMHTo是物体周围的环境温度(K)。#嵌入式研究网a href=cghdddEKMGfghb5654fmMH#嵌入式研究网a href=cghdddEKMGfghb565
3、4fmMH 人体主要辐射波长为9 m10 m的红外线通过对人体自身辐射红外能量的测量便能准确地测定人体表面温度。由于该波长范围内的光线不被空气所吸收,因而也可利用人体辐射的红外能量精确地测量人体表面温度。#嵌入式研究网a href=cghdddEKMGfghb5654fmMH#嵌入式研究网a href=cghdddEKMGfghb5654fmMH红外测温仪工作原理:红外测温仪由光学系统,光电探测器,信号大器及信号处理.显示输出等部分组成。光学系统汇聚其视场内的目标红外辐射能量,红外能量聚焦在光电探测器上并转变为相应的电信号,该信号再经换算转变为被测目标的温度值 红外测温模块输出的有效数据就是温
4、度值,只需要把这些数据换算成10进制就可以了 i nclude #define uchar unsigned char#define uint unsigned int /*-工程说明-;工程名称:ZyTemp.Uv2;功能描述:测量环境温度和目标温度,并用键盘控制显示温度值,; 按K1,显示目标温度; 按K2,显示环境温度; IDE环境: Keil uVision3 V3.31;硬件连接: VCC-VCC ; P1.0-Data; P1.2-Clk; P1.4-ACK ; GND-GND;-定义接口-*/ sbit TN_Data = P10;sbit TN_Clk = P12;sbit T
5、N_ACK = P14;sbit key_1 = P22;sbit key_2 = P23;/*-变量列表-*/unsigned char code keytab_1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89;/H: 0x89;/L: 0x87;/P: 0x8a;/Q: 0X98;unsigned char code keytab_2=0xef,0xdf,0xbf,0x7f;uchar ReadData5,iShow5;/*-函数列表-*/void display_1
6、(uchar i,uchar num); /定位显示单个字符void display_2(void); /定位显示四个字符void TN_ReadData(uchar Flag); /读数据void TN_GetData(void); /计算数据/*-主程序入口-*/void main() TN_ACK=1;while(1)if(!key_1)TN_ACK=0;TN_ReadData(0x4c); /目标温度的第一个字节为0x4celse if(!key_2)TN_ACK=0;TN_ReadData(0x66); /环境温度的第一个字节为0x66if(ReadData0=0x4c)&(Read
7、Data4=0x0d)/每帧的最后一个字节为0x0dTN_GetData();display_2();else if(ReadData0=0x66)&(ReadData4=0x0d)/每帧的最后一个字节为0x0dTN_GetData();display_2(); /*-定位显示单个字符-*/void display_1(uchar i,uchar num) P0=keytab_1i; P2=keytab_2num; /*-定位显示四个字符-*/void display_2(void)uchar kk;display_1(iShow3&0x0f,3); /显示十位for(kk=200;kk0;k
8、k-); /延时display_1(iShow2&0x0f,2); /显示个位for(kk=200;kk0;kk-); /延时display_1(iShow1&0x0f,1);/显示小数第一位for(kk=200;kk0;kk-); /延时display_1(iShow0&0x0f,0); /显示小数第二位for(kk=200;kk0;kk-); /延时/*-读数据-*/void TN_ReadData(uchar Flag)uchar i,j,k;bit BitState=0; for(k=0;k7;k+) /每次发七帧for(j=0;j5;j+) /每帧五个字节for(i=0;i8;i+)
9、while(TN_Clk);BitState= TN_Data;ReadDataj=ReadDataj1;ReadDataj=ReadDataj|BitState;while(!TN_Clk); if(ReadData0=Flag) k=8;TN_ACK=1;/*-计算数据-*/void TN_GetData(void)int Temp;Temp=(ReadData18)|ReadData2;Temp = Temp/16 - 273.15;Temp=Temp*100;/温度值乘100,以方便计算小数点后两位iShow4=Temp/10000;/计算温度值的百位数iShow3=(Temp/100
10、0);/计算温度值的十位数iShow3=iShow3%10; iShow2=(Temp/100);/计算温度值的个位数iShow2=iShow2%10;iShow1=(Temp/10);/计算温度值的小数点后第一位数iShow1=iShow1%10;iShow0=(Temp);/计算温度值的小数点后第二位数 iShow0=iShow0%10;char data BUFFER1=0;/定时器计数变量Sbit PR=P22; /定义播放/录音的控制端口Sbit EOM=P22; /定义结束信号Sbit PD=P24; /定义芯片电源开关Sbit CE=P25; /定义片选Void play(voi
11、d)PD=1; /打开芯片电源开关CE=0; /选中该芯片PR=1; /开始播放While (! EOM); /等待播放内容结束信号Delays(); /延时PD=0; CE=0; PR=0;Main()EA=1;IT=1;ET0=1; /开中断TMOD=0x01; /T0 方式 1 计时 1 秒TH0=- 5000/256;TL0=- 5000%256;TR0=1; /开中断 , 启动定时For(;);/* 定时计数器 0 的中断服务子程序 */Void timer0(void) interrupt 1 using1TH0=- 5000/256; /定时器 T0 的高 4 位赋值TL0=- 5000%256; /定时器 T0 的低 4 位赋值BUFFER0=BUFFER0+1; /百分秒进位If(BUFFER0=1000)Play(); /调用播放子程序