【单片机毕业设计】【mcuclub-dz-1113】基于单片机的身体参监测系统

在这里插入代码片
最近设计了一个项目基于单片机的身体参监测系统,与大家分享一下:

一、基本介绍

单片机类型:STM32F103C8T6
具体功能:
1、通过MLX90614监测当前的体温,监测到体温不在设置的阈值内声光报警;
2、通过心率检测模块检测当前用户的心率,监测到心率不在设置的阈值内声光报警;
3、通过血压监测模块监测当前用户的血压,监测到血压不在设置的阈值内声光报警;
4、通过按键设置各阈值,启停体温、心率、血压监测;
5、通过OLED显示测试的数据;

二、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C
请添加图片描述

三、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
请添加图片描述

四、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。
请添加图片描述

五、系统框图

此次设计是基于STM32F103C8T6单片机的身体参数监测系统;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,主要是对输入进行处理然后控制输出;输入又可以分为五部分:第一部分是体温检测模块,通过该模块获取当前人体温度;第二部分是心率检测模块,通过此模块可以监测当前人体心率数据;第三部分是血压监测模块,由此模块可以检测当前人体血压数据。第四部分是按键模块,通过按键可以设置阈值以及控制继电器的开关;第五部分是供电电路,主要是用来对整个系统进行供电;输出主要可以分为二个部分:第一部分是显示部分,显示当前人体的体温,心率,血压数据;第二部分是声光报警模块,该模块用于当测量值超过设定的阈值时进行声光报警。
请添加图片描述

六、软件设计流程

请添加图片描述

七、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

函数名:按键函数
传参值:无
返回值:无
**********************************/
void Key_Function(void)
{
	key_num = Chiclet_Keyboard_Scan(0);		//按键扫描,获取键值
	if(key_num != 0)								      //有按键按下
	{
		switch(key_num)
		{
			case 1:								            //按键1:切换界面
				display_num++;
				if(display_num >= 7)
				{
					display_num = 0;
				}
				
				Oled_Clear_All();					      //清屏
			break;

			case 2:											      //按键2切换监测数据
				switch(display_num)
				{
					case 0:
						flag_select++;
						if(flag_select >= 4)
						{
							flag_select = 0;
						}
					break;
					
					case 1:												//界面1:温度最大值+1
						if(temp_max < 99)
							temp_max++;
					break;
					
					case 2:												//界面2:温度最小值+1
						if(temp_min < temp_max-1)
							temp_min++;
					break;
					
					case 3:												//界面3:心率最大值+1
						if(pulse_max < 200)
							pulse_max++;
					break;
					
					case 4:												//界面4:心率最小值+1
						if(pulse_min < pulse_max-1)
							pulse_min++;
					break;
					
					case 5:												//界面5:血压值最大值+1
						if(blood_h_max < 200)
						{
							blood_h_max++;
						}
					break;
					
					case 6:												//界面6:血压值最小值+1
						if(blood_h_min < blood_h_max - 1)
						{
							blood_h_min++;
						}
					break;
						
					default:
					break;
				}
			break;

			case 3:														//按键3监测与清零
				switch(display_num)
				{
					case 0:
						if(flag_select > 0)
						flag_cl++;
						if(flag_cl >= 3)
						{
							flag_cl = 0;
						}					
					break;
					
					case 1:												//界面1:温度最大值-1
						if(temp_max > temp_min+1)
							temp_max--;
					break;
					
					case 2:												//界面2:温度最小值-1
						if(temp_min > 0)
							temp_min--;
					break;
					
					case 3:												//界面3:心率最大值-1
						if(pulse_max > pulse_min+1)
							pulse_max--;
					break;
					
					case 4:												//界面4:心率最小值-1
						if(pulse_min > 0)
							pulse_min--;
					break;
					
					case 5:									      //界面5:血压值最大值-1
						if(blood_h_max > blood_h_min+1)
							blood_h_max --;	
					break;
						
					case 6:												//界面6:血压值最小值-1
						if(blood_h_min> 0)
							blood_h_min --;	
					break;
										
					default:
					break;
				}
			break;

			default:
			break;
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机俱乐部--官方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值