毕业设计|基于STM32单片机智能手环脉搏心率计步器体温显示设计
来源:玩转单片机与嵌入式发布时间:2022-03-052518浏览
询问 AI 欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。






在公众号后台,回复【智能手环】可以免费获取相关资料的下载链接。

回复【加群】,限时免费进入知识共享、技术交流群;
回复【3D封装库】,常用元器件的3D封装库;
回复【电容】,获取电容、元器件选型相关的内容;
回复【阻抗匹配】,获取电磁兼容性、阻抗匹配相关的资料
回复【资料】,获取全部电子设计、单片机开发相关的资料
回复【终端电阻】,获取CAN终端电阻相关的资料
回复【单片机】,获取单片机全套视频教程和参考设计
回复【STM32】,获取STM32相关设计和视频教程
回复【PCB】,获取PCB设计相关的资料
回复【硬件知识】、【硬件设计】,获取硬件开发工程必备手册
回复【经典电路】、【电路】,获取5000个经典电路
回复【论文】、【毕业设计】,获取毕业设计、电子竞赛、学术专业等相关论文资料
回复【华为】,获取华为的硬件设计资料
回复【USBCAN】,获取开源项目:基于STM32的USBCAN项目资料
回复【振荡器】,获取晶振电路的详细设计资料
…………
回复【更多】,本公众号的全部关键词内容
欢迎关注【玩转单片机与嵌入式】公众号,本公众号会每天输出高质量的技术干货文章,欢迎持续关注。

一:功能


二:电路图



三:源代码

#include "led.h"#include "delay.h"#include "sys.h"#include "usart.h"#include <stdio.h>#include "timer.h"#include "key.h"#include "exti.h"#include "adxl345.h"#include "lcd1602.h"#include "ds18b20.h"unsigned char ReadAdxl345; /* 定时读取adxl345数据 */unsigned char ErrorNum=0; /* 记录错误次数 */unsigned char CheckNum=0; /* 检测次数 */char dis0[16]; /* 液晶数组显示暂存 */char dis1[35];unsigned int xlTab[5]; /* 心率数组 */unsigned char count=0; /* 心率滤波计数 */unsigned int xinLater=0; /* 心率延时处理 */unsigned int xinLv =0; /* 心率值 */unsigned int BuShu=0; /* 步数 */unsigned int Normal_num=0; /* 正常次数 */unsigned int Error_num=0; /* 倾斜次数 */unsigned int disBuShu = 0; /* 显示步数 */float disJuLi = 0; /* 显示距离 */float temperature; /* 温度 */unsigned char readTemp = 0; /* 读取温度标志 */int main(void){delay_init(); /* 延时函数初始化 */uart_init(9600); /* 串口初始化为9600 */TIM3_Int_Init(49,7199); /* 50ms */EXTIX_Init(); /* 初始化外部中断 */LED_Init(); /* 初始化与LED连接的硬件接口 */KEY_Init(); /* 初始化按键 */Lcd_GPIO_init(); /* 初始化lcd引脚 */Lcd_Init(); /* 初始化lcd屏幕 */delay_ms(200);Init_ADXL345();if(Single_Read_ADXL345(0X00)==0xe5){delay_ms(5);}else{delay_ms(3);}while(1){if(ReadAdxl345== 1) /* 定时读取adxl345数据 */{ReadAdxl345= 0;ReadData_x(); /* 三轴检测函数 */CheckNum++;if((temp_Y>450)||(temp_Y<-450)) /* 查看正常次数 */{Normal_num++; /* 正常次数++ */}else{Error_num++; /* 倾斜次数 */}if((Error_num!=0)&&(Normal_num!=0)) /* 检测到步数 */{BuShu++; /* 步数脉冲量++ */Error_num=0; /* 清除一个周期检测 */Normal_num=0;}}if(disFlag==1) /* 显示标志 */{disFlag = 0;readTemp++; /* 定时计数 */if(readTemp >= 8) /* 约800ms处理一次数据 温度 */{readTemp =0; /* 重新计数 */temperature=(float)DS18B20_Get_Temp()/10; /* 缩小10倍为实际值 */}disBuShu = BuShu/2; /* 显示步数 */disJuLi = disBuShu*0.45; /* 显示距离 */sprintf(dis0,"X:%03d/min %4.1f C",xinLv,temperature); /* 打印 */Lcd_Puts(0,0,(unsigned char *)dis0); /* 显示 */Lcd_1Put(14,0,0xdf); /* 显示符号 */sprintf(dis1,"BS:%03d JL:%4.1fm ",disBuShu,disJuLi); /* 打印 */Lcd_Puts(0,1,(unsigned char *)dis1); /* 显示 */}}}

在公众号后台,回复【智能手环】可以免费获取相关资料的下载链接。
~END~

如果大家有遇到同样问题的、要类似迷茫的、要好的建议意见的,欢迎进群交流,大家一起共勉。(扫码进单片机开发群交流)

新闻来源:玩转单片机与嵌入式,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。


