【毕业设计】毕设分享 基于51单片机的非接触式测温系统实现

系列文章目录



0 前言

🔥近几年随着人工智能等新技术的不断火热,带动了嵌入式等的传统行业的进一步发展。最近带过的几届同学反馈:以往的毕设题目缺乏创新性和亮点,不能满足学校的答辩要求。为了方便毕业生们顺利、省心、高效的通过毕设,这里分享一些优质的低投入高产出毕业设计。

今天给大家分享一个比较实用且有一定创新力的题目

🚩基于51单片机的非接触式测温系统实现

🥇首先对这道题目给出一个量化的评价(每项满分5⭐):

  • 难度:⭐⭐⭐
  • 工作量:⭐⭐⭐
  • 创新性:⭐⭐⭐

1 题目

请添加图片描述

2 方案设计

2.1 方案框图

分析题目功能点,结合开发经验,构思整体方案,形成整体方案框图

请添加图片描述

2.2 器件选型

根据市售器件,进一步确定所用器件的具体型号:
主控:采用 8051 内核的 STC89C52 单片机, 外部晶振 11.0592MHz;
非接触式测温传感器:采用红外原理的非接触式测温传感器,型号 GY-615V3DAG,与主控通过 I2C 协议通信;
LCD屏幕:采用 LCD1602液晶屏,与主控通过并行数据接口通信;
系统采用5V供电。

2.3 小结-设计要点、难点解析

1、I2C 协议原理及使用;
2、红外非接触测温传感器的原理、使用方法、产品特性与通信协议;
3、传感器原始数据处理,对返回的数据结果进行滤波整定;
4、系统软件总体流程设计,能够准确快速地响应温度识别结果;
5、显示界面设计,需具备良好的人机交互体验;
6、系统需具备高鲁棒性,稳定性和可靠性是至关重要的。

3 硬件设计——原理图及PCB

使用 Altium Designer 软件进行硬件原理图和PCB绘制
请添加图片描述

请添加图片描述

4 软件设计——软件模块划分及主程序源码

使用 Keil-MDK ARM建立工程

工程文件树
请添加图片描述

主程序部分源码展示:

#include <reg52.h>
#include "LCD1206.h"	//包含LCD1206函数库文件
#include "stdio.h"
#include "iic.h"

#define uint unsigned int
#define uchar unsigned char
#define uint32_t unsigned long
#define int16_t  int
	
/********************************************************************************************* 
程序名:	非接触式测温仪
编写人:	
编写时间:	
硬件支持:	
					主控MCU ST89C52RC 外部晶振11.0592MHz
					LCD1602 并行数据口-P0 控制口 EN-5^7 RW-2^6 RS-2^5
					无接触测温传感器 SDA-2^3 SCL-2^4
					

修改日志:  
1-	
	
						

*********************************************************************************************/

/* 位定义 */


/* 变量声明 */
/* 体温限制 */
float SetTemp = 3730;		// 为方便存储、计算和比较 体温存储为四位数
/* 被测者体温 */
int CutTemp = 0;

/* 数组 存放原始及转换后的数据 */
uchar raw_data[9]={0};
uint datas[4]={0},delay_t;

/* 结构体变量 传感器所测数据  */
typedef struct
{
    float e;		// 发射率 E=(0x62)/100=0.98
    float to;		// 目标温度 TO=(0x0C*256+0xEB)/100=30.99℃
    float ta;		// 环境温度 TA=(0x0C*256+0x3F)/100=31.35℃
    float bo;		// 额温转换体温 BO=(0x0E*256+0x20)/100=36.16℃
} gyir;

/***********函数声明***********/

/* ms级delay函数 */
void delay(uint z);


/* LCD更新显示内容 */
void LCDUpdate(void);



/* 主函数 */
void main()
{
	// 变量声明
	
	// LCD显示字符串 
	uchar code uctech[] = {"  IRThermoetry  "};
	
	uchar raw_data[9]={0};				// 数组 存放原始及转换后的数据
	uint datas[4]={0},delay_t;
	uchar i;
	uchar td = 0;
	gyir my_ir;				// 结构体定义

	// 初始化各部件
	delay(200); 			// 启动等待,等LCD讲入工作状态
	LCDInit(); 				// 初始化LCD
	
	// 第一行显示信息
	DisplayListChar(0, 0, uctech);		


	
	delay(200);
	
	td=2;
	Single_WriteI2C_byte(0xa4,0x02,2);//设置更新频率5hz
	switch(td)
	{
		case 0:delay_t=1010;break;
		case 1:delay_t=510;break;
		case 2:delay_t=210;break;
		case 3:delay_t=110;break;
	}
	delay(1); 
	Single_WriteI2C_byte(0xa4,0x07,95);//设置发射率0.95
	delay(1);
	Single_WriteI2C_byte(0xa4,0x06,95);//设置温度补偿 95-100=-5度
	delay(1); 
	

5 成果——实现效果展示

在这里插入图片描述

6 最后总结——项目资料获取

想获取设计方案、器件资料、原理图、PCB、程序源码获取、其他毕设题目解答,欢迎私信。
或搜索微信公众号“电子设计万事屋”,敬请关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值