ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于51单片机的蓝牙计步器设计

2021-09-25 09:06:53  阅读:155  来源: 互联网

标签:状态 SendStr 51 else 单片机 LCD 计步器 statFlag 步数


一.硬件方案

本设计选用单片机STC89C52作为系统控制芯片,通过蓝牙模块把单片机处理的数据传输到手机APP上,这样更能清楚看到检测的效果。整机工作电流只有1-1.5mA,实现超低功耗。采集的步数,路程,卡路里及运动状态用手机APP显示。
主要由51单片机最小系统+ADXL345加速度传感器+lcd1602液晶电路+蓝牙模块电路+呼吸灯电路+电源电路组成;如图:
在这里插入图片描述

二.设计功能

(1)通过ADXL345检测步数,然后通过蓝牙模块将步数,路程,卡路里及运动状态实时传输到手机。
(2)有动态呼吸灯指示走路情况。
(3)液晶lcd1602实时显示步数,路程,卡路里及运动状态,运动状态分stand、lie、walk、run。
(4)手机通过蓝牙可实时显示当前行走的状态、步数、里程及消耗的能量。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)PCB图如下:
在这里插入图片描述

四.软件设计

(1)程序流程图
在这里插入图片描述

(2)主程序源码

void main (void)
{     
	Init_Timer0();        //定时器0初始化
	UART_Init();
	             
	LCD_Init();           //初始化液晶
	DelayMs(20);          //延时有助于稳定
	LCD_Clear(); 

	Init_ADXL345();	  //清屏
	if(Single_Read_ADXL345(0X00)==0xe5)	//读出的数据为0XE5,表示正确
	{
		DelayMs(5);
	}
	else
	{
		DelayMs(3);
	}
	led=1;
	while (1)         //主循环
	{
	    if(ReadAdxl345==1)   //定时读取adxl345数据
	    {
			BuShuCheck();			//检测步数
	
			sprintf(dis1,"B:%04d J:%4.1fm ",BuShu/2,JuLi);	//打印
			LCD_Write_String(0,0,dis1);//显示
			sprintf(dis2,"%7.2fcal ",KaLuLi);	   	//打印
			LCD_Write_String(0,1,dis2);//显示			

			if(statFlag == 0)//站着状态
			{LCD_Write_String(11,1,"Stand");}
			else if(statFlag == 1)躺着状态
			{LCD_Write_String(11,1,"Lie  ");}
			else if(statFlag == 2)//跑着状态
			{LCD_Write_String(11,1,"Run  ");}
			else if(statFlag == 3)//走着状态
			{LCD_Write_String(11,1,"Walk ");}
		}

		if(ReportFlag==1)	//2s
		{
			ReportFlag=0;
			sprintf(dis0,"*B:%04d",BuShu/2);	//上报步数
			SendStr(dis0,7);
			sprintf(dis0,"J:%04.1fm",JuLi);			//上报距离
			SendStr(dis0,7);
			sprintf(dis0,"K:%07.2fcal",KaLuLi);	   	//上报卡路里
			SendStr(dis0,12);

			if(statFlag == 0)//站着状态
			{SendStr("Stand#",6);}
			else if(statFlag == 1)躺着状态
			{SendStr("Lie  #",6);}
			else if(statFlag == 2)//跑着状态
			{SendStr("Run  #",6);}
			else if(statFlag == 3)//走着状态
			{SendStr("Walk #",6);}
			SendStr("\r\n",2);
		}
	}
}

如需资料请关注公众号“单片机实例设计”,首页回复“计步器”获取资料;
在这里插入图片描述

标签:状态,SendStr,51,else,单片机,LCD,计步器,statFlag,步数
来源: https://blog.csdn.net/eletronicfish/article/details/120406766

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有