49-基于stm32单片机心率脉搏血压体温检测报警源程序、+原理图、仿真、元件清单实物制作

功能介绍:采用stm32单片机作为主控cpu,采用MAX30102采集心率脉搏,采用MSP20传感器采集血压值,采用DS18B20传感器采集温度,采用LCD1602液晶显示屏显示相关数据,当温度大于38度(阈值程序可改)或者血压>140或者血压<50或者心率>130或者心率<40,蜂鸣器进行报警提醒,所有的阈值都可以通过程序进行修改,文末有资料分享:

49-基于stm32单片机心率脉搏血压体温检测报警(程序+原理图+仿真+元件清单全套资料)

 

 程序打开办法:特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。 

uint8_t Ds18b20_Init(void)
{
	uint8_t ack=1;
	Ds18b20_GPIO_OUT();
	DQ_0();
	Delay_us(500);
	DQ_1();
	Delay_us(60);
	Ds18b20_GPIO_IN();
	ack=DQ_Read();
	Delay_us(180);
	DQ_1();
	return ack;
}

void Ds18b20_Write_Byte(uint8_t byte)
{
	uint8_t i;
	Ds18b20_GPIO_OUT();
	for(i=0 ; i<8 ; i++)
	{
		if (byte&0x01) 
		{
				DQ_0();// Write 1
				Delay_us(2);                            
				DQ_1();
				Delay_us(60);             
		}
		else 
		{
				DQ_0();// Write 0
				Delay_us(60);             
				DQ_1();
				Delay_us(2);                          
		}
		byte=byte>>1;
	}
}

uint8_t DS18B20_Read_Write()
{
	uint8_t i;
	uint8_t byte;        		 //byte为要接收到的数据
	for(i=0 ; i<8 ; i++)
	{
		Ds18b20_GPIO_OUT();//SET PG11 OUTPUT
		DQ_0(); 
		Delay_us(2);
		DQ_1();
		Ds18b20_GPIO_IN();//SET PG11 INPUT
		Delay_us(12);
		byte >>= 1;    
		if(DQ_Read())
			byte |= 0x80;
		Delay_us(50);           
					 
	}
	return byte;
}

/************************ 读取温度 ************************/
int16_t DS18B20_Read_Temperature(void)  	//启动温度转换,读取温度
{
	u8 tl=0,th=0;
	if(Ds18b20_Init())
		return 0x7fff;
  Ds18b20_Write_Byte(0xCC);
  Ds18b20_Write_Byte(0x44);//启动DS18B20进行温度转换

  if(Ds18b20_Init())
		return 0x7fff;	
  Ds18b20_Write_Byte(0xCC);//忽略64位ROM地址,直接向DS18B20发温度转换命令,适用于一个从机工作
  Ds18b20_Write_Byte(0xBE);//读DS18B20内部RAM中9字节的温度数据
  tl=DS18B20_Read_Write();//读低8位
  th=DS18B20_Read_Write();//读高8位
	return (th<<8)+tl;
}

/************************ 处理温度 ************************/
void deal_Temp(void)
{
	int 	Temp=0;
	Temp=DS18B20_Read_Temperature()*0.625;

//	printf("指令温度%0.2f",Temp);
//	Temp=Temp*10;
	//OLED_Printf_EN(0,0,"Temp:%0.2f`C",Temp);
   		LCD_Write_Command(0x80);//第一行的首地址
			LCD_Write_Date('T');
			LCD_Write_Date('E');
			LCD_Write_Date('M');
			LCD_Write_Date('P');
			LCD_Write_Date('=');
			LCD_Write_Date(Temp%1000/100+0x30);
			LCD_Write_Date(Temp %100/10+0x30);
			LCD_Write_Date('.');
			LCD_Write_Date(Temp %10+0x30);
			LCD_Write_Date(' ');
			LCD_Write_Date('C');
		if(Temp>380) 
		{
			beep=0;Delay_ms(50);beep=1;Delay_ms(50);
			beep=0;Delay_ms(50);beep=1;Delay_ms(50);
			beep=0;Delay_ms(50);beep=1;Delay_ms(50);
			beep=0;Delay_ms(50);beep=1;Delay_ms(50);
			beep=0;Delay_ms(50);beep=1;Delay_ms(50);
		}
} 

下面是原理图展示:

百度云盘资料分享链接 

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值