基于红外传感器人体测温系统设计(STC89C51单片机)
2026/9/15 14:33:41 网站建设 项目流程

目 录
摘 要 I
ABSTRACT II
目 录 III
1绪论 1
1.1选题背景及依据 1
1.2国内外研究现状 1
1.3研究内容 3
2 红外传感器人体测温系统原理及方案设计 4
2.1温度测量技术的概述 4
2.2 红外测温原理及方法 4
2.3 红外传感器人体测温系统的方案介绍 5
3 红外传感器人体测温系统的硬件设计 9
3.1 单片机处理模块 9
3.2 红外测温模块 11
3.3 电源模块 11
3.4 键盘模块 12
3.5 LCD显示模块 12
4 红外传感器人体测温系统的软件设计 13
4.1 主程序模块的设计 13
4.2 红外测温程序模块 14
4.3 键盘扫描程序模块 15
4.4 显示程序模块 15
5 红外传感器人体测温系统仿真调试与分析 17
5.1系统调试 17
5.2 结果分析 18
结 论 20
致 谢 21
参考文献 22
附录一 原理图 23
附录二 元器件清单 24
附录三 程序 25
1.3研究内容
本设计主体采用TN901红外测温模块接收被测人体温度信号,交由51单片机程序处理之后变成准确文字信号在1602液晶显示屏上显示具体读数。红外测温模块负责温度的测量、采集,并将采集的数据通过数据端口传送到单片机。单片机负责控制启动温度测量,接受测量数据,计算温度值并输出显示以实现红外测温目的的非接触式电子体温计。红外传感器测量被测者体表温度,能直接测量被测者体表实际温度,测量精度高,抗干扰能力强,并运用此方法制造高性能的非接触式电子体温计。
2 红外传感器人体测温系统原理及方案设计
本设计将对硬件选择以及结构进行设计,并且采用新型的可编程温度传感器TN901,它的优点是能直接与单片机完成数据采集和处理,实现方便、精度高,性能稳定,并且不需复杂的信号调理电路和A/D转换电路。不需要使传感器TN901与人体接触,进行温度感应后,TN901就可以感应温度并且直接送入AT89S51单片机中,经过单片机的信号处理并将其送出,通过LCD1602进行显示。这样的好处是可以快速并精准的测量出人体体温,与传统的水银体温计相比,它的优点是测量精准度高、测量时间短、并且方便读数。
2.1温度测量技术的概述
体温计是一种测量人体体温、辅助治疗和诊断疾病的常用医疗工具。随着现代科技的发展,新材料、新工艺的运用,各式各样的体温计陆续出现,探测方式在不断改进,但是人们最常用的依然是水银接触式体温计。
水银接触式体温计是根据汞受热膨胀的原理制成的,由于受到体温的影响,水银的体积膨胀使体温计内水银柱的高度发生变化达到一定的设定刻度实现测量体温。由于人体体温一般变化范围在35摄氏度到42摄氏度之间,所以水银接触式体温计刻度通常设定是35℃到42℃。每度的范围分成10份,因此水银接触式体温计可精确到0.1度。
近年来,电子体温计越来越多的应用于各个行业,比如冶金、玻璃制造及体温测量等领域。许多医院也采用了部分电子体温计,虽然其性能和使用范围暂时不能与传统水银体温计相比,但是因其拥有快速便捷、无需接触被测者等优点被广泛采用,并且在未来会被应用的越来越广。
3 红外传感器人体测温系统的硬件设计
本红外传感器人体测温系统采用模块化的设计思想,它的硬件结构由STC89C51单片机模块,红外测温模块,电源模块,键盘模块和LCD显示模块组成。
STC89C51单片机是本系统的控制中心,它负责控制启动温度测量、接收测量数据、计算温度值、并根据取得的键值控制显示过程;红外测温模块负责温度数据的采集、测量,并将采集到的数据通过数据端口传送给STC89C51单片机; LCD显示模块把测量的温度值直观地显示给观测者;电源模块负责本红外传感器人体测温系统电源的供应。

图3-1 红外传感器人体测温系统的硬件方案设计框图

//宏定义 #define uchar unsigned char #define uint unsigned int //头函数 #include <reg52.h> //全局变量定义 float Temp; float HJTemp,MBTemp; //TN9温度传感器头函数 #include <TN9.h> //LCD头函数 #include <LCD.h> //按键 sbit K =P1^0; sbit LR=P1^7; sbit LG=P1^1; void delay1(uint x) { uint a,b; for(a=0;a<20;a++) { for(b=x;b>0;b--); } } void delay(uint x) { uint a,b; for(a=0;a<20;a++) { for(b=x;b>0;b--); } } //主函数 void main() { // while(1) //if(K==1) //屏幕初始化 Init_LCD(); //开启指示灯 LR=1; LG=0; delay1(20); //开始按键 //while(K==1); //温度显示初始化 // Init_T(); //循环读码 //while(1) while(1) { // Display(MBTemp,HJTemp); if(K==0) { Init_T(); while(K==0) { LR=~LR; //读取目标温度 TN_IRACK_UN(); TN_IRACK_EN(); TN_GetData(0x4c); MBTemp=Temp; LR=~LR; //读取环境温度 TN_IRACK_UN(); TN_IRACK_EN(); TN_GetData(0x66); HJTemp=Temp; //显示 Display(MBTemp,HJTemp);} } } }












需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询