1、前言
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉小洪学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,小洪学长分享优质毕业设计项目,今天要分享的是基于51单片机步数检测计步器无线蓝牙上传设计。
随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。计步器作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。手持式的电子计步器是适应市场需求的设计,使用起来简单方便。
计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。电子计步器主要组成部分是振动传感器和电子计数器。步行的时候人的重心会上下移动。以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。所谓的振动传感器其实就是一个平衡锤在上下振动时平衡被破坏使一个触点能出现通/断动作,由电子计数器完成了主要的记录与显示功能,其他的属于热量消耗,路程换算均由电路完成。计步器中一般采用一种加速度计来感受外界的震动。常用的加速度计原理如下:在一段塑料管中密封着一小块磁铁,管外缠绕着线圈,当塑料管运动时,磁铁由于惯性在管中反向运动,切割线圈,由于电磁感应,线圈中产生电流,人体运动时,上下起伏的加速度近似为正弦过程,线圈的输出电流也是正弦波,测量正弦波的频率就可以得出运动的步数,再计算的出速度,距离,和消耗卡路里。
2、简介
基于51单片机步数检测计步器无线蓝牙上传设计
1、通过ADXL345检测步数,然后通过蓝牙模块将步数,路程,卡路里及运动状态实时传输到手机。
2、有动态呼吸灯指示走路情况。
3、液晶lcd1602实时显示步数,路程,卡路里及运动状态,运动状态分stand、lie、walk、run。
4、数据上报B:0014
J: 7.7m
K: 448.45cal
,分别表示步数、距离m、卡路里cal。
3、组成
本设计由STC89C52单片机最小系统+ADXL345加速度传感器+lcd1602液晶电路+蓝牙模块电路+呼吸灯电路+电源电路组成。
4、实现效果
整体展示
5、设计原理
5.1 STC89C52RC简介
STC89C52RC单片机使用范围十分广泛,而且是每个电子设备设计者的首选芯片,此款芯片深得广大用户的喜爱。这款单片机是基于8051单片机进行加强改造的,在对于指令代码的编写时能完全兼容传统8051单片机,所以在程序的编写方面更加便捷。其优点就是有很高的可靠性、价格实惠、功耗比较低,STC89C52RC单片机芯片在技术方面最主要的优点就是采用了Flash存贮器技术,这种技术的使用不仅降低了制造的成本,并且在软件和硬件方面都能与8051单片机完全兼容,还采用了高密度非易失存储制造技术制造,将多功能8位CPU和闪烁存储器组合在单个芯片中,所以可以被中国的大多数用户接受。其程序的电可擦写特性,使得开发与试验更加容易,也为了很多嵌入式控制系统提供了一种灵活性高且价廉的方案选择。
在芯片内部有12时钟/机器周期和6时钟/机器周期,我们可以进行随意的选择。它的工作电压为:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)。其工作频率在0~40MHz之间,和普通的8051单片机相比更加方便,在实际使用中它的工作频率可达48MHz。我们能使用的应用程序空间为8K字节,在片上集成512字节RAM。芯片上有32个通用的I/O口,就是4组分别是P1、P2、P3、P4,每组各有8个I/O口。复位后的4组接口是准双向口/弱上拉,当被作为总线扩展使用时,就不用加上拉电阻,而作为I/O口使用时,就需加上拉电阻。在芯片内部内置的ISP(在系统可编程)和IAP(在应用可编程)技术,让其编程和仿真都变得十分简便,省去使用专用编程器和专用仿真器的麻烦,并且还可以直接通过串口(RxD/P3.0,TxD/P3.1)下载用户程序,下载速度很快,这使得程序的烧写更加容易。还有看门狗的功能。外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒。共有3个16位定时器/计数器,即定时器T0、T1、T2。通用异步串行口(UART),还可用定时器软件实现多个UART。
STC89C52RC引脚功能说明:
VCC(40引脚):电源电压
VSS(20引脚):接地
P0端口(P0.0~P0.7,39~32引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
P2端口(P2.0~P2.7,21~28引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX @DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX @R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。
STC89C52RC单片机的芯片引脚图,如图所示。
图 STC89C52RC单片机引脚图
晶振电路
对于每个单片机系统中都会有晶振电路,晶振在整个单片机系统中起到举足轻重的作用。它结合单片机内部电路,产生时钟频率,有了这个基础单片机才能执行全部的指令,完成所需的功能。同时,时钟频率产生的快慢直接影响单片机运行速度的快慢,时钟频率越高,相对的单片机运行的速度也是越快的。晶振其实就是电能与机械能相互转化的晶体共振技术,为其单片机提供稳定、精确的单频振荡。
晶振电路一般会有两个电容组成,也叫做负载电容。其单片机的工作状态一般会处于并联谐振状态。而其中负载电容的大小会根据晶振的要求来选取确定值。晶振的频率就是在它提供的负载电容下完成的测试,使其减小误差的产生。同时也能保证温漂产生的误差,选取相同的电容值,是为了保证晶振电路的正常运行,如果两个电容的取值不同,甚至相差过大的话,都会容易造成谐振的不平衡,导致停振或干脆振不起来。
在此次的设计中XTAL1和XTAL2端外接石英晶体作为定时元件,在STC89C52RC芯片内部有用于构成振荡器的高增益反向放大器,从而实现自激振荡,产生时钟。晶体振荡器的工作频率一般在1.2~12MHZ之间选择,电容C1、C2一般在10PF~40PF之间取值都是可以的。在这里我选用了12MHZ的工作频率和两个22PF的电容构成晶振电路,STC89C52RC单片机的晶振电路如图3.2所示。
图 晶振电路
复位电路
复位电路也是单片机中重要的一部分,在单片机启动运行时,首先要进行复位操作,而单片机自己又不能独自完成,所以要结合外部电路进行复位操作。如图3.3为复位电路图。RST引脚是复位信号的输入端。当输入连续两个机器周期以上高电平时为有效,当晶振频率为12MHZ时,复位信号持续的时间应超过2us才能完成复位操作。当我们加上复位电路,单片机上电以后,RST引脚会先保持一小段时间的高电平而后变为低电平,这就是单片机复位的过程。
图 复位电路