基于STM32单片机的心率计(仅测心率)(OLED显示)(Proteus仿真+程序)

基于STM32单片机的心率计

功能描述:

        由 STM32FC103单片机最小系统+Pulse Sensor心率采集模块 +OLED显示模块组成
1、采用STM32FC103单片机为主控制器
2、采用心率传感器PulseSensor测量心率。
3、OLED显示测得的心率值。
4、仿真中心率传感器用波形发生器和按键两种方式模拟,可用开关切换。
注意:proteus8.11以上版本才能打开  心率测量误差±1 

视频演示链接:

6、基于STM32单片机的心率计(仅测心率)(OLED显示)

仿真图:

基于STM32单片机的心率计(仅测心率)(OLED显示)(Proteus仿真+程序)_第1张图片

程序源码:

#include "delay.h"
#include "OLED_I2C.h" 
#include "pulsesensor.h"


#include "stdio.h" 	
#include "stdlib.h" 	

extern unsigned int cnt;

int main(void)
{	
	unsigned char Heart = 0;        //心率值
	unsigned char buf[18];

	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级

	OLED_Init();                                    //OLED初始化操作
	OLED_CLS();                                     //OLED清除屏幕	
	OLED_ShowCN(16*0,0,0);
	OLED_ShowCN(16*1,0,1);
	OLED_ShowStr(16*2,0,"STM32",2);
	OLED_ShowCN(16*4+8,0,3);
	OLED_ShowCN(16*5+8,0,4);
	OLED_ShowCN(16*6+8,0,5);
	
	OLED_ShowCN(16*0,2,3);
	OLED_ShowCN(16*1,2,4);
	
	TIM3_Int_Init(11,7285);			                //定时  按照正常计算发现数值偏大 这里作为微调使仿真中更加准确
    EXTIX_Init();                                   //外部中断初始化
 	while(1)
	{	

		Heart = Pulsesensor_Read();                 //获取心率值	
        sprintf((char *)buf,(const char *)":%3d/min",Heart);
        OLED_ShowStr(16*2,2,buf,2);
		
		sprintf((char *)buf,(const char *)"IBI:%4dms",cnt);
        OLED_ShowStr(0,4,buf,2);
		
		
		
	}	
}

软件免费下载地址:

1、Proteus仿真软件
文件内容:Proteus7.8安装包、Proteus8.6安装包、Proteus.8.10安装包、Proteus Professional 8.11 SP0安装包

链接:https://pan.baidu.com/s/11LNUZ9BJXWvXf1C4dPc3_w 
提取码:2756 


3、KEIL5 MDK软件(STM32开发软件)
链接:https://pan.baidu.com/s/1t3eY-3yRdTa7jZMlijq_jg 

提取码:ab58 

代码下载:

https://pan.baidu.com/s/16meqzTFraMvdEBD1gp8MFA?pwd=cerh

你可能感兴趣的:(项目合集,单片机,stm32,proteus)