版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
绪论1.1研究背景在社会发展迅速的今天,人们的物质和精神生活水平不断提高使得他们更加注重自己的健康。计步器作为记录步数的电子设备可以计算步数以及对应的距离和能耗,所以人们可以使用计步器来记录日常运动情况并且根据记录的数据制定个性化的运动计划,专业人群还可以用来分析人体的健康状况。传统的计步器使用机械传感器,机械式传感器实际上是给其配重,使它上下振动就会失去平衡,使其可以接通或断开触点,其中计数器起主要的记录和显示功能。而新型计步器一般采用三轴加速度传感器来感受外界的振动。ADXL345三轴加速度传感器是基于微电机系统技术的新型传感器,内部具有质量快、弹性支撑结构和检测电路。当传感器随着人体的运动产生加速度时,移动质量快使得弹性支持结构变形,改变检测电路的电容、电阻等参数转化为电信号,最终通过SPI或I2C数字接口与单片机主控芯片通信,STC89C52单片机将采集到的加速度数据进行传输处理,再计算距离和耗热量,最终显示在LCD1602显示屏上。1.2研究目的及意义1.21研究目的本设计的研究目标是设计一款通过单片机和加速度传感器等硬件搭配专门算法实现运动步数准确计算能稳定计数的计步器。设计者在设计时针对步数误判、数据显示异常等常见问题重点优化单片机编程控制逻辑让设备运行更稳定并且改进传感器数据采集处理技术确保数据精准度。他希望做出一款运行稳定和操作简单且测量准确的计步器来满足人们日常运动记录的需求。1.2.2研究意义从实际使用角度,计步器能清楚呈现用户每天的运动数据,让人对自身运动情况有直观认识,进而激发坚持锻炼的积极性,通过长期记录运动状态,帮助用户改善体质,契合个人健康管理需要,把这种计步器设计应用到实际中,还能推动健康生活方式的普及,为运动健康产业发展注入新活力。在技术研究方面,研发基于单片机的计步器,有助于深入掌握单片机工作原理以及外围设备控制方法,通过实际开发积累智能运动监测设备的设计经验,为单片机技术在可穿戴健康设备领域的应用提供参考。1.3国内外研究现状1.3.1国内研究现状我国计步器技术研究多年来在清华大学、北京大学等高校电子信息专业持续加大研发投入,围绕单片机性能强化攻关提升计步设备测量精准度与运行稳定性,针对传统计步器复杂运动场景计数偏差大问题,高校科研团队依托三轴加速度传感器数据用创新算法精准识别分析人体运动姿态在模拟多样复杂运动轨迹测试中,新型计步器经算法优化与硬件协同较早期产品实现测量精度大幅提升有效降低运动数据统计误差1.3.2国外研究现状在计步器技术探索方面国外比国内更早起步,美国日本和德国的科研单位与企业掌握的技术更为成熟处于行业领先地位,以美国高校为例斯坦福大学麻省理工学院的科研团队深入研究单片机低能耗技术通过改进芯片结构和优化电路设计有效减少计步器中单片机的电量消耗,他们研制出的新型低功耗单片机在电量相同的情况下工作时间比传统单片机长得多为计步器长时间使用提供关键技术保障,从全球范围看美日德等国家凭借早期发展积累的优势在计步器研发领域保持技术领先,美国知名高校的科研人员针对单片机能耗高的问题从芯片架构和电路设计两方面进行创新成功取得技术突破。1.4研究内容本文进行基于单片机的计步器设计,需要保证计步设备功能完备、性能稳定。设计者通过深度调研发现设计需拥有计步、距离计算和消耗的能量估算功能同时要确保设备具备低功耗和稳定运行的能力。在此基础上明确以单片机为核心,组合加速度传感器与显示模块总体方案。选用STC89C52单片机,搭建最小系统。设计复位电路与晶振电路,系统稳定运行得以保障。应用ADXL345加速度传感器采集数据。设计自适应接口电路,数据经由LCD1602液晶显示屏被呈现。软件编程选用C语言。设计系统主程序与步长设置等子程序,达成数据处理与显示功能。单片机识别步数后,依据公式计算运动距离与卡路里。软硬件设计完成后对计步器的硬件进行检测调试消除焊接故障和处置异常问题,对软件进行改良程序逻辑与算法等调试。计步器经改良符合预期要求可以为用户提供可靠的运动监测服务。1.5本章小结这一章节对计步器的研究背景和技术发展情况进行了详细整理然后确定了以单片机为核心的计步器既要保证测量准确又要考虑控制成本和方便使用。设计者查看参考文献发现国外在提高传感器精度和创新算法方面成绩显著而国内主要是想办法降低功耗和减少成本让产品能更多地推广使用。他因此规划了在硬件上选择STC89C52单片机和ADXL345高精度传感器并且通过优化结构让它们配合得更好和在软件上用C语言编写程序实现数据收集、处理和直观展示功能的具体技术路线。最后经过系统调试确保计步器能稳定运行为接下来硬件电路设计和软件算法开发提供了理论依据和实施方向。
2系统整体设计方案2.1总体设计方案计步器设计运用模块化架构其核心部件涵盖STC89C52单片机和ADXL345加速度传感器以及最终的LCD1602显示屏,实现步距设置、任务设置、步数清除和所有数据清除的功能,最终完成实现步数统计以及相关的距离和消耗的能量统计。ADXL345加速度传感器依托高分辨率与大测量范围可以精准获取人体运动生成的加速度信号充当数据采集的前端装置。模拟信号被采集后依靠传感器内置的A/D转换模块迅速将其转换为数字信号利于后续数据处理。各模块经过这样的数据转换得以分工明晰和彼此协作最终实现计步器的各类功能。STC89C52单片机是接收来自ADXL345传感器的数据并对这些数据进行深度处理的主控模块。它使用预先描述的计步算法分析计算加速度数据并且识别有效的步数信息还可以根据步数进一步换算运动的距离和消耗的热量。处理后的数据最终被传送到LCD1602显示屏,实现直观化显示。LCD1602显示屏具备特殊的显示能力。LCD1602显示屏具备双线16字显示能力,能明晰显示步数、距离、卡路里消耗量等关键运动数据,用户可随时对其进行查看。通过这样的显示方式,达成了一种稳定的显示效果。借助这种设计,用户无需复杂操作,便能清晰掌握自身运动状态。而这一结果的实现,离不开计步器各模块的协作,其工作流程如图2.1计步器工作流程图所示。计步器中各模块紧密配合,实现数据采集、处理至显示的完整流程,为用户供给便捷、准确的运动监测服务。图2.1计步器工作流程图2.2关键技术2.2.1单片机选择方案①采用AT89S51单片机作为硬件核心,如图2.2AT89S51单片机实物图所示,它是一款经典的8位单片机并在电子电路设计和嵌入式系统开发中广泛应用而且可以使用外部设备连接,但是它的存储容量有限对于复杂的数据处理显得不足并且其处理能力相对较弱无法快速处理数据,它的接口也不够丰富不能满足本设计需求缺乏USB接口等等往往需要外接额外芯片来实现。图2.2AT89S51单片机实物图②采用STC89C52单片机作为硬件核心,如图2.3STC89C52单片机实物图所示它是一种增强性8位单片机并且在性能和功能上比AT89S51更好。它除了同样具有AT89S51的功能且硬件资源比第一款芯片增加了一倍。计步器对电路进行调试时,它更强大的工作性能与更广泛的应用领域使得调试更能顺利进行,因此选择采用STC89C52作为主控制系统核心。图2.3STC89C52单片机实物图2.2.2传感器选择方案①方案一:选择机械式振动传感器机械式振动传感器通过敏感元件感受被测量的变化并将其转化为机械元件的位移、变形或运动等机械量的变化。佩戴者在步行或者跑步过程中,传感器利用机械传动机构或转换装置将这些机械量进一步转换为便于测量和观察的形式如指针的偏转和刻度的变化等。机械式振动传感器原理简单、精度和成本低,适用于振幅较大的场合。②方案二:选择ADXL345三轴加速度传感器ADXL345三轴加速度传感器如图2.4ADXL345三轴加速度传感器实物图所示,它的加速度的变化能够改变电阻、电压或者电容的变化,从而获得空间位置三个垂直方向的加速度分量。佩戴者在跑步过程中,身体上下起伏,计步器内部的微控制器读取三轴加速度传感器的三组模拟量,通过计步算法分析,获取运动信息。三轴加速度传感器具有精度高、反应速度快、通讯协议简单可靠等特点,广泛使用于汽车、数码产品、航天设备等领域。图2.4ADXL345三轴加速度传感器实物图③方案三:选择压力传感器压力传感器压力传感器是一种能将压力信号转换为电信号或其他可测量信号的老式传感器。计步器如果使用压力传感器可以利用它对压力变化的高灵敏度响应特性将其放在鞋底内部。使用这样的计步器时压力传感器会因脚步运动产生压力变化使得传感器输出稳定压力信号。基于计步器在测量精度和响应速度等多方面的需求对三种方案进行全面比较后将ADXL345三轴加速度传感器确定为本计步器的关键传感器。该传感器既契合高精度测量需求又拥有良好的适应性与稳定性。它能够稳固采集计步器的运动数据从而保障计步器的整体性能与使用体验。2.2.3显示器选择方案①方案一:采用LED数码管动态扫描LED数码管价格不贵且很适合显示数字,它虽然用动态扫描法和单片机连接能少占用单片机的接口但是由于接线需要花费不少时间。计步器因为考虑到安装调试的效率所以最终决定不选它做显示方案而是去找更方便接线和安装的显示设备。②方案二:采用点阵式数码管显示点阵式数码管作为一种由八行八列发光二极管有序排列构成的显示器件,虽然其在文字显示方面展现出适配性与优势但由于其相较其他数字显示器件更为复杂的结构与制造工艺使得其价格处于相对较高的水平,计步器最终不选用点阵式数码管作为显示部件。③方案三:采用LCD1602液晶显示屏它是为了显示字母和数字以及符号等而专门设计的点阵型液晶模块。如图2.5LCD1602实物图所示,它能够显示的内容是16X2也就是能够显示两行。这个液晶显示屏的显示功能强大因为内置有192种字符不仅具有可以清晰地显示很多符号和数字并且还有电力消耗少和寿命长以及抗干扰能力强的特点。综上,在此设计中采用LCD1602液晶显示屏。图2.5LCD1602实物图2.3理论研究研究人员对基于单片机的计步器设计有不同的方案,以STC89C52单片机为例计步器以此为核心来构建最小系统包含时钟电路和复位电路构成二者共同保障系统的稳定启动,其中时钟电路为整个系统提供时序基准而复位电路负责单片机的初始化工作。它利用并行IO口实现对传感器与显示模块的驱动和通信并通过在P0口外接上拉电阻增强其驱动性能而这些硬件基础为后续数据采集与处理工作奠定基石REF_Ref4436\r\h[1]。它的数据采集环节主要依靠ADXL345三轴加速度传感器其原理基于MEMS传感器技术该传感器内部可动质量块在加速度作用下产生位移导致电容极板间距改变并且通过检测电容变化量将其转换为三轴加速度信号REF_Ref4067\r\h[2]。传感器在数据传输方面采用I2C总线与单片机进行主从模式通信,单片机作为主机发送控制指令而传感器作为从机回传加速度数据借助通信协议中的起始信号、数据帧格式和应答机制确保数据可靠传输而传输完成后数据进入软件处理流程REF_Ref5808\r\h[3]。软件设计以《51单片机C语言编程与应用》为指导采用模块化编程,在数据处理阶段运用中值滤波、滑动平均滤波等数字滤波算法去除传感器采集信号中的高频噪声并保留周期性特征同时利用峰值检测算法设定动态阈值识别有效步数并结合步行周期减少误判REF_Ref5370\r\h[4]。LCD1602显示模块在人机交互部分通过4位总线模式与单片机通信并且利用指令集实现步数和距离等信息的实时更新,它在按键处理采用消抖和状态机机制,检测到按键按下后延时去抖,通过状态标志位区分短按(用于参数设置)和长按(用于进入设置)操作以优化用户交互体验。在工程实现阶段设计人员让传感器在非活动状态进入休眠模式兼顾性能与功耗使单片机在数据处理间隙进入空闲模式并通过中断唤醒机制平衡二者性能与功耗同时在USB电源模块集成过流保护和充电检测功能,实现边充边用且将待机电流控制在极低保障续航REF_Ref30388\r\h[5]。上述从硬件设计和软件实现到工程应用的完整理论体系为基于单片机的计步器设计提供全面支撑使计步器在测量精度、功耗控制和用户体验上达到平衡满足大众运动量化监测与健康管理需求。2.4本章小结本章是计步器系统的整体方案设计,其中计步器的硬件选择对关键技术进行比较后选择最适合本设计的硬件设备。本设计的核心器件选型经详尽对比分析后选择由ADXL345传感器和STC89C52单片机以及LCD1602显示屏组成的硬件架构。该单片机具备低功耗特性与适配的存储资源,既满足计步器功能要求又实现成本与续航的平衡。该传感器相较于传统传感器以高精度和宽量程特性完美适配复杂运动场景监测并且在多维运动检测与抗干扰能力上具有明显优势为计步精度提供有力支撑。该显示器更是能完美显示单片机传来的各种数据。计步器的这些选择为它稳定运行与功能实现奠定了坚实基础并且在以上选择的基础上将进行更进一步的研究。
3硬件系统设计3.1系统硬件概述本电路是以STC89C52单片机为控制核心,该芯片具有在线编程功能并且具有能量小耗能低的特点能在低压下工作,它拥有灵便的8位中央处理器和在系统可擦写可编程闪存,使得STC89C52为众多嵌入式计算系统提供稳定和高效的解决方案。传感器采用ADXL345加速度传感器,它既支持多量程可调参数设定又满足不同场景需要并且测量精度非常高,它的数字输出数据为16位的二进制补码格式可通过SPI或IIC数字接口访问。显示使用LCD1602液晶显示屏来实现,该显示屏具有文本输出和定位以及内容清除功能,它不仅可供显示的字符较多而且控制指令简单使得它可以应用在测量设备和智能家电等多种领域。3.2主要单元电路的设计3.2.1系统主控制模块设计本设计中单片机主要负责处理数据和对各个硬件设备间的协调,其使用52类别单片机STC89C52单片机它外部结构图如REF_Ref16989\h图3.1单片机外部结构图所示,它具有尺寸小巧、操控功能强和使用温度区间宽等众多优点。本设计使用中国制造的STC89C52单片机其以便宜的价格以及较优异的性能成了很多控制系统的最佳选择并且它具有较大的数据存储区域和程序存储区域。因为学习52单片机容易入门和指令简单易懂以及编程灵活,所以在本设计中具有较高的使用价值。图3.1单片机外部结构图一个典型的单片机最小系统一般由复位电路、晶振电路、供电指示灯和外部拓展端口等部分组成,本系统也不例外,单片机的最小系统为其提供了平稳运转的能力,当单片机具备了这些最基本的条件后,就可以正常运转了。①复位电路的设计,复位电路可以使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。复位电路在单片机系统中占据着至关重要的地位,它是单片机最小系统单元中不可或缺的一部分。其主要职责在于确保单片机程序在特定情况下能够顺利复位,并从主函数开始重新执行从而避免程序陷入错误状态或死循环。按键复位电路是单片机系统中重要的复位方式,不仅能在上电时让单片机进入复位状态还克服了上电复位电路只能上电复位的局限。计步器运行中如果遇异常,只需按下按键即可复位而且无需重新断电上电。它的原理是利用电阻分压,按键未按时复位引脚为低电平而按下时引脚电平升高触发复位,松开后恢复低电平继续正常运行。像单片机开发板中,合理设计的按键复位电路可以精准控制电平变化,无论是开发调试还是实际应用,都因灵活性和便捷性更受青睐,有力保障单片机系统稳定运行。所以在此设计中,采用的按键复位电路。按键复位电路如图3.2复位电路图所示。图3.2复位电路图②晶振电路的设计,晶振电路是一种利用晶体的压电效应来产生稳定时钟信号的电路,本设计将晶振电路尽量靠近芯片以减少信号传输延迟和干扰并且要避免将晶振放置在发热元件附近以免影响其性能。单片机必须要有晶振电路也就是时钟电路提供的晶振信号才可以稳定运行而单片机本身就如一个复杂的同步时序电路,因为需要保证同步工作方式的实现所以电路应在唯一的时钟信号控制下严格地工作。本设计在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器。如图3.3时钟振荡电路图中X1、C1、C2可以根据情况选择不同频率的石英晶体而补偿电容通常选择30nF左右的瓷片电容。图3.3时钟振荡电路图3.2.2系统采集模块设计ADXL345的功能实现通过检测质量块在加速度作用下产生的位移从而转换为电信号进行测量。它里面的G-Cell传感器是由半导体材料(多晶硅)经半导体工艺加工得到,其结构可简化为三块电容极板。在极板的两端被圈定情况下,受到加速度作用时,中间极板发生位置偏离现象。无加速度状态下的初始位置由此改变,与两端极板间距离产生差异。这种差异导致电容值出现相应变化,经容压变换过程、增益放大环节以及滤波处理阶段后,最终体现在电压输出值的改变上。由此可见,加速度测量任务通过此方式得以完成。ADXL345是一种高性能低功耗的三轴加速度传感器。它可通过SPI或者I2C数字接口访问并且输出16位二进制补码格式数据。移动设备应用领域具有良好适配性的器件为ADXL345。静态重力加速度的测量可在此倾斜检测应用中实现,运动或冲击引发的动态加速度同样能够被检测。倾斜角度变化不足1.0度的微小量值亦可被其高分辨率特性所捕获24。传感器底座及接口电路连接情况展示于图3.4传感器连接模块图中。图3.4传感器连接模块图作为信号产生模块的该电路主要承担转接口功能,针对ADXL345加速度传感器设计。相应变化值的产生依靠此加速度传感器实现。3.2.3系统显示模块设计本设计中由于要对步数、总步数、距离和消耗的能量进行显示所以选择液晶显示屏LCD1602模块作为输出。14引脚或16引脚结构为1602字符型LCD常见配置,额外两条引脚线用于背光电源供应。可实现两行显示功能之该器件,每行16个字符予以呈现,供电方式上采用单+5V电源即可工作。外围电路之配置较为简易化,价格层面则体现出明显低廉化特征。由此可见其性价比优势显著。1602液晶模块内部结构中,字符发生存储器已预先存储160种不同点阵字符图形。阿拉伯数字与英文字母大小写形式,以及常用符号等均包含其中。具体管脚功能详见表3.1LCD1602引脚功能所示内容。表3.1LCD1602引脚功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端。4RSRS为寄存器选择。5R/WR/W为读写信号线。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0~DB7三态、双向数据总线LCD1602主要管脚介绍:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度参数设置过高时将导致鬼影现象产生。实际应用中可通过10K电位器进行对比度调节操作。寄存器选择端RS处于高电平状态时数据寄存器被选中,低电平状态则指令寄存器处于工作模式。读写信号线端即R/W端,高电平状态下执行的是读操作,低电平状态下则为写操作。RS与R/W共同处于低电平状态时,指令或显示地址的写入方可实现。RS为高电平且R/W为低电平时,数据写入成为可能。使能端E的功能在于,其电平由高向低跳变之际,液晶模块方能执行命令。LCD1602丰富的管脚配置确保了电路连接的可靠性。将LCD1602的RS端和P1.0,R/W端和P1.1,E端和P1.2相连,当RS=0时,向LCD1602写入指令而当RS=1时,数据被写入LCD1602。R/W端接高电平时芯片进入读数据状态,相反情况下则处于写数据状态。使能信号端的角色由E端承担。液晶显示屏显示示数的条件需满足:R/W保持高电平的同时E端亦为高电平,且RS处于低电平状态。图3.5展示了LCD1602液晶与单片机之间的硬件连接关系。图3.5LCD1602液晶与单片机硬件连线图3.2.4系统按键模块设计按键模块硬件电路采用独立按键与上拉电阻方案,通过检测单片机I/O口电平变化来确定按键状态,具有简洁且易扩展的特点。选用6mm×6mm的轻触式微动开关作为按键,利用STC89C52单片机P3口的内部上拉电阻,无需外接。引脚分配为:设置按键S2(SET)接P1.3,按下时进入设置模式并可切换设置项;确认按键S3(ENTER)接P1.4,按下可保存当前设置并退出设置模式;加按键S4(UP)接P1.5,用于增加步距、提醒步数等数值;减按键S5(DOWN)接P1.6,可减少相应数值;而独立在外的复位按键S6(RST)接RST,按下能清除当前步数、距离和卡路里,如图3.6按键电路图所示。图3.6按键电路图3.3本章小结本章重点在于对计步器系统硬件架构设计,它将STC89C52单片机作为控制核心搭建起涵盖数据采集和处理及显示的完整硬件体系而其中主控模块是整个硬件系统稳定运行的关键。它在主控模块设计中STC89C52依靠在线编程(ISP)技术和低功耗优势及完善的8位单片机体系被确立为系统核心而其配套的复位电路与晶振电路保障了单片机的可靠启动与时序稳定。复位电路对比分析上电自动复位与手动按键复位功能,最终选择第二种作为本设计的复位方式。它的传感器采集模块选择ADXL345三轴加速度传感器其具备高分辨率和宽量程与低功耗特性使运动加速度信号的实时采集得以实现并且通过SPI/I2C通信接口与单片机连接为计步算法提供高精度原始数据输入而后单片机采集到的数据经过处理后需要进行可视化展示。它的显示模块运用LCD1602液晶显示屏借助其双行16字符显示能力及标准化控制接口显示步数、距离等信息。计步器在硬件连接时控制信号与单片P2端口直接相连通过电平逻辑控制完成指令写入与数据显示操作。
4软件系统设计4.1系统主程序设计计步器在接通电源后准备开始工作,首先在显示屏展示当前步数接着运用特定计步算法处理采集数据以计算步数并将计算结果输出显示。随后检查清零按键状态,若未按下则返回继续计数不然按下则对LCD1602显示屏上的步数等数据进行清零,最终流程结束。如图4.1系统主程序设计图所示,该流程完整呈现了计步器从步数显示、计算到依据按键操作决定数据是否清零的工作过程。图4.1系统主程序设计图4.2系统子程序设计4.2.1步距设置流程如图4.2步距设置流程图所示,计步器步距设置流程从设置开始,先进行步距设定,随后可对步距进行增减调整,之后判断用户是否确认设置。若确认,步距设置成功;若不确认,按下复位按键则返回主界面,该流程涵盖了步距设置操作从起始到最终确认或放弃的全过程。图4.2步距设置流程图4.2.2步数设置流程如图4.3步数设置流程图所示,计步器步数设置流程起始于设置操作,先进行步数的初始设定,随后可对步数进行增减调整。调整完毕后,判断用户是否确认设置。若确认,步数设置成功;若不确认,按下复位按键则返回主界面,此流程涵盖了步数设置从开始到最终确认或放弃的全部步骤。在达到设置的步数以后,提醒灯会亮起,当然如果设置为零,提醒灯会立刻亮起。图4.3步数设置流程图4.2.3步数清除流程如图4.4步数清除流程图所示,计步器清除步数流程从设置开启,先执行清除步数操作,接着询问是否确认。若确认,步数即被清除,对应的距离和消耗的能量也会清零;若不确认,按下复位按键则返回主界面,此流程呈现了清除步数操作从开始到确认或取消的全过程。确认清除步数以后,与步数相关的距离以及消耗的能量都会清零,当然总步数不会清零。图4.4步数清除流程图4.2.4所有数据清除流程如图4.5所有数据清除流程图所示,计步器清除所有数据流程始于设置,按下四次设置按键后触发清除所有数据操作后,系统询问是否确认。若确认,所有数据清零;若不确认,按下复位按键则返回主界面,该流程涵盖了清除操作从启动到确认或放弃的全过程。图4.5所有数据清除流程图4.3计步器算法的实现设计者在经过综合考量后为了能够精准且全面地捕捉运动特征最终选择“加速度”作为核心检测参数对步行或跑步这类运动进行量化分析。ADXL345三轴加速度传感器拥有高精度和高灵敏度的特性能够实时准确地采集到X、Y、Z三个轴向的加速度信号而刚好人体在运动过程中其运动状态可以被分解为前向、竖向以及侧向这三个相互正交方向的分量。计步器为了达成测量精度不能依赖于人体运动轴与传感器坐标轴的严格对齐这一目标所以我们引入了三轴数据融合算法,该算法的核心思想是将三个方向的加速度数据进行综合处理和分析并通过数学运算和逻辑判断将不同方向的加速度信息进行融合从而实现不同方向的运动检测。4.3.1步行周期的加速度特征在单个步行周期也就是一个完整的步伐过程中竖向和前向加速度信号的变化规律与步行阶段之间存在着明确且紧密的对应关系。大量的研究表明当人行走时身体的脚部、腿部、腰部以及手臂等各个部位都会随着步伐的节奏产生周期性的加速度波动,而且在特定的运动阶段这些加速度波动会出现明显的特征峰值。设计者通过收集和处理大量的实验数据总结出当传感器佩戴在手臂或大腿部位时保持步行的过程中加速度信号的变化规律,例如在一个步行周期内手臂的加速度信号可能会出现多次起伏其中某些特定的峰值和谷值与步行的不同阶段相对应。通过对这些特征的准确识别和分析设计者就能够实现对步数的有效检测。4.3.2步数检测与能量计算方法准确识别加速度信号中的有效峰值是步数检测的关键。当佩戴者完成一个完整的步伐时其运动部位(如手臂或大腿)的加速度信号会呈现出规律性的起伏,这种起伏是由于人体在步行过程中各个关节的运动和肌肉的收缩舒张所导致的。设计者为了准确地从这些起伏信号中提取出有效步数需要设置合理的阈值区间和采用合适的波形识别算法。距离计算采用了总距离(S)等于步数(N)与平均步距(L)的乘积,即S=N×L的经典数学模型。平均步距是一个受到个人身高、腿长、步行习惯等多种因素影响的参数,设计者为了提高距离计算的准确性通过一些校准方法来确定每个用户的平均步距,例如让用户在一段已知距离的道路上行走并记录下行走的步数然后通过计算得出平均步距。能量消耗估算以简化公式C=S/15为基础,其中C表示能量消耗值而S表示运动距离,这个公式能够在一定程度上反映出运动强度与能量消耗之间的关系。设计者通过将运动距离转换为能量消耗值可以实现对运动强度的量化评估,这种方法在保证算法实时性的同时也兼顾了实验实现的便利性。4.4本章小结本章围绕计步器系统的软件程序设计展开全面描写。计步器在系统主程序设计方面详细说明了计步器从通电启动后历经步数显示、计算再依据清零按键操作决定数据处理方式的完整工作流程。计步器系统子程序设计中分别介绍了步距、步数设置流程以及步数和所有数据的清除流程。它的各流程均从设置操作起始,经相关设置或清除操作后依据用户确认与否决定最终结果,其涵盖了从操作开始到确认或放弃的全过程从而清晰呈现了计步器各项设置与数据处理功能的实现逻辑。计步器算法实现部分,选取加速度为核心检测参数,借助ADXL345三轴加速度传感器采集信号通过三轴数据融合算法保障测量精度不受佩戴方向影响。基于步行周期内加速度特征建模,以手臂或大腿为传感器佩戴部位实现步数检测。同时,给出步数检测、距离计算及能量消耗估算的具体方法,在确保算法实时性的同时,兼顾实验便利性。本章通过对计步器软件程序各环节的设计与说明为计步器系统功能的实现奠定了坚实的软件基础也为后续系统调试与优化提供了清晰的理论框架和操作指引。
5系统调试5.1硬件调试计步器首先焊接STC89C52单片机作为主控芯片并且Vss接地,再焊接由30瓷片电容C4和30瓷片电容C5搭配12M晶振Y2组成的晶振电路并且连接单片机XTAL2和XTAL1接口再接地,再焊接2.2uF电解电容搭配SW-PB按键S6和10K插件电阻R3组成的复位电路并且连接单片机RST接口并接+5v电源,再焊接ISP插针用于程序烧录,再焊接104瓷片电容C6和100uF电解电容C7进行滤波在上下两端分别接+5v电源和接地并且在C7端连接LED灯3和510插件电阻R8还有在C6端连接SW开关J4和POWER电源接口J5通过电源线连接电源,再焊接510插件电阻搭配LED灯4组成的提醒灯连接+5v电源,再焊接SW-PB按键S2、S3、S4、S5组成的按键电路,再焊接LCD1602并连接一个10k蓝白可调电阻R2,再焊接ADXL345三轴加速度传感器模块负责数据采集,最后根据电路图完成电路连接后完成焊接任务,其整体电路布局于7*9cm的电路板上。计步器焊接出现过虚焊问题,原因是焊接时烙铁头与焊件接触时间过短或烙铁头温度不够导致焊料未能充分熔化并与焊件表面形成良好的合金层,在从新焊接以后恢复正常。整体焊接完成后使用万用表检测焊点重点排查了漏焊、虚焊及元件损坏等物理连接问题发现了显示器焊接时因为焊料过多造成了短路,重新焊接后回复正常。焊接实物如图5.1最终实物图(a)所示而接通电源后的实物状态如图5.1最终实物图(b)所示。(a)(b)图5.1最终实物图5.2软件调试5.2.1LCD1602显示模块调试模块概述:LCD1602显示屏作为计步器的最终显示端负责实时显示步数、总步数、运动距离及卡路里消耗需调试显示屏初始化、字符/数据显示逻辑及与单片机的通信时序。调试步骤与测试方法:①初始化与基础显示测试,步骤:将LCD1602驱动程序(含初始化函数init_1602()、字符写入函数write_data()、字符串写入函数write_string())烧录至单片机,观察显示屏是否显示初始界面(如“step:0/0”“S:0C:0”)。调用write_string(1,0,"TESTMODE"),验证首行字符显示是否正确对齐,无乱码或错位。测试工具:万用表(检测LCD1602电源电压5V是否稳定)、逻辑分析仪(抓取RS、R/W、E引脚时序,确认符合LCD1602通信协议)。②动态数据更新测试,步骤:在主程序中强制赋值步数bushu=100、总步数zong=500,调用write_bushu()函数,观察LCD1602是否实时更新显示“step:100/500”。模拟运动场景,通过串口向单片机发送假数据,触发距离(S=60)和卡路里(C=4)计算,验证第二行“S:60C:4”是否正确显示。边界测试:输入超界数据(如步数10万、距离9999m),检查多位数显示是否完整(如“step:100000/100000”不截断)。③对比度与背光调试调节LCD1602模块上的10kΩ电位器,观察字符对比度是否可平滑调整,无“鬼影”或过暗现象。预期结果:初始化后显示屏无黑屏、花屏,字符显示清晰对齐。动态数据更新无延迟,数值与实际一致,边界值显示完整。对比度调节正常,不同光照环境下字符可见。调试代码(LCD1602初始化与显示)如下。//LCD1602初始化函数voidinit_1602(){write_com(0x38);//8位数据总线,2行显示,5x8点阵write_com(0x0c);//显示开,光标关,闪烁关write_com(0x06);//地址自动递增,光标右移delay_uint(1000);write_string(1,0,"step:0/0");//初始显示步数和总步数write_string(2,0,"5:0mC:0");//初始显示距离和卡路里}//显示步数函数typedefunsignedcharuchar;voidwrite_bushu(ucharhang,ucharadd,longdate){if(hang==1)write_com(0x80+add);//第一行地址elsewrite_com(0x80+0x40+add);//第二行地址//拆分数字并显示(代码略,参考附录A)}5.2.3传感器数据采集与计步算法调试模块概述:ADXL345三轴加速度传感器通过I2C总线向单片机传输数据,计步算法基于Y轴加速度信号的阈值检测,需调试传感器通信、数据解析及步数统计逻辑。调试步骤与测试方法:传感器通信与数据解析测试,步骤:调用Single_Read_ADXL345(0x00)读取设备ID,验证是否返回0xE5(传感器正常连接标志)。静止放置计步器,通过串口打印X/Y/Z轴原始数据,Z轴应接近1,X/Y轴接近0,否则需校准偏移量(修改寄存器0x1E~0x20)。工具:逻辑分析仪(抓取I2C总线SCL/SDA波形,确认起始位、地址、数据传输正确)。加速度信号处理与阈值调试,步骤:在display_y()函数中,打印滤波后的加速度值temp,行走时观察其是否呈周期性波动(单步周期内出现明显波峰波谷)。初始阈值设为70~100mg(对应temp=70~100),若漏计步数,降低下限至60;若误计(如晃动计步器计步),提高上限至110。模拟测试:用函数生成正弦波模拟步行加速度信号,输入至算法,验证步数统计是否与波形周期数一致。实际运动场景测试,步骤:匀速步行20步,对比实际步数与显示步数,计算误差率(公式:误差率=(显示-实际)/实际×100%,目标≤10%)。携带计步器上下楼梯(非水平运动),观察是否因Z轴加速度变化导致误判,需优化算法为三轴数据融合。预期结果:传感器通信稳定,无数据丢失或错误解析。静止时无步数增加,步行时步数统计误差≤10%,复杂运动场景误判率低。阈值调整后,不同运动速度下检测灵敏度一致。调试代码(传感器数据读取与阈值判断)如下。//连续读取传感器数据voidMultiple_read_ADXL345(){//I2C通信代码(略,参考附录A)dis_data=(BUF[3]<<8)|BUF[2];//合成Y轴数据(16位补码)floattemp=abs(dis_data)*3.9/1000;//转换为g单位(13位精度)if(temp>threshold_high&&last_temp<threshold_low){//上升沿触发bushu++;//步数加1update_display();}//更新显示last_temp=temp;}//保存上一时刻值5.2.2按键功能模块调试模块概述:计步器按键包括设置键(进入菜单)、确认键、加减键(调整步距/任务步数)、复位键(清除当前数据),需调试按键响应逻辑、消抖处理及菜单交互。调试步骤与测试方法:①按键响应与消抖测试,步骤:短按“设置键”,通过Keil调试器监控标志位flag_set是否翻转,LCD1602是否显示菜单光标(如“>SetStepLength”)。快速连续按下“加减键”,观察步距值是否按10cm/次递增/递减,无连续快速变化。工具:串口调试助手(打印按键值)、逻辑分析仪(检测按键引脚低电平持续时间是否够快)。②菜单交互与功能验证,步骤:长按“设置键”进入多级菜单(步距设置→任务提醒→清除步数→清除所有数据),按“设置键”切换选项,验证光标是否正确移动(如第一行选项前显示“>”)。在“步距设置”中输入60cm,按“确认键”,断电重启后通过read_eeprom()函数读取步距值是否保存为60。边界测试:步距设置为0cm或150cm时,程序是否拒绝输入(需增加输入范围判断)。③复位与清除功能测试,按下“复位键”(清除当前步数),检查bushu是否归零,zong(总步数)是否保留;按下“清除所有数据”,验证zong是否归零。预期结果:单按/长按按键响应准确,无误触发或漏触发。菜单选项切换流畅,输入范围限制有效,数据保存与清除功能正常。消抖处理后,快速按键无连续计数错误。调试代码(按键消抖与功能处理)如下。//按键扫描函数voidkey_scan(){if(key_set==0){//设置键按下delay_1ms(10);//消抖延时if(key_set==0){set_flag=~set_flag;//切换菜单标志位while(key_set==0);//等待松手}}if(key_add==0){//加键按下delay_1ms(10);if(key_add==0&¤t_step<150){current_step++;//步距加1cmwhile(key_add==0);}}}//菜单显示函数(简化版)voidmenu_display(){if(set_flag){write_string(1,0,"->SetStepLength");//显示菜单选项write_bushu(2,10,current_step);}}//显示当前步距5.2.4数据存储与掉电保护调试模块概述:计步器通过单片机内部EEPROM存储总步数、步距等数据,需调试EEPROM读写逻辑及掉电后数据恢复功能。调试步骤与测试方法①EEPROM读写测试,步骤:调用write_eeprom()函数写入数据(如bushu=100,zong=500),通过Keil内存窗口查看地址0x2000~0x2005的值是否正确。调用read_eeprom()函数读取数据,验证变量bushu和zong是否与写入值一致。工具:Keil调试器(监控EEPROM寄存器值)、万用表(断电后测量单片机电源引脚电压是否为0V)。②掉电保护功能验证,步骤:写入当前数据后断开电源,等待10s后重新上电,观察LCD1602是否显示断电前的总步数zong,当前步数bushu是否归零(设计要求:总步数保留,当前步数清零)。多次断电重启,测试数据是否稳定保存,无丢失或错乱。③擦除功能测试,执行“清除所有数据”操作,检查EEPROM对应地址是否全为0,且再次上电后总步数zong是否归零。预期结果:EEPROM读写无错误,数据与变量完全一致。掉电后总步数、步距等参数完整保存,当前步数正确清零。擦除操作彻底,无残留数据。调试代码(EEPROM写入与读取)如下。//保存数据到EEPROMvoidwrite_eeprom(){SectorErase(0x2000);//擦除扇区byte_write(0x2000,bushu);//存储当前步数(低8位)byte_write(0x2001,bushu>>8);//存储当前步数(中8位)byte_write(0x2002,bushu>>16);//存储当前步数(高8位)}//同理存储总步数zong(32位)//从EEPROM读取数据voidread_eeprom(){bushu=byte_read(0x2002);bushu<<=8;bushu|=byte_read(0x2001);bushu<<=8;bushu|=byte_read(0x2000);}//同理读取总步数zong5.3实物测试如表5.1实际测试不复位记录表为在实际步数中显示步数以及总步数不复位情况下记录。表5.2实际测试每5步复位一次记录表记录了实际测试中每5步复位一次的步数数据。实例表明在总步数不复位的情况下,步数显示的准确性得以保持。数据显示实物对步数的统计准确率超过90%。表5.1实际测试不复位记录表实际步数51015202530显示步数5914182227总步数5914182227表5.2实际测试每5步复位一次记录表实际步数51015202530显示步数454555总步数49131823285.4成果展示本设计的核心在于借助运动感知实现精准计步与数据呈现。计步器在用户摆动手臂或大腿时依靠内置的ADXL345三轴加速度传感器实时捕捉运动引发的加速度动态变化也就是它内部的质量块发生位移从而改变弹性结构产生模拟型号然后精准判别跑步或走路状态进而完成步数计算。计算结果如5.2计步器运行图所示,屏幕第一行左侧为开机后统计的实时步数而右侧则是累计总步数,同时斜杠分隔设计使信息层次分明、一目了然,第二行左侧的“S”代表运动距离(单位:米),该数值由步数乘以预设步距精确运算得出可以实时反映用户行进路程,右侧的“C”是依据步数与运动强度以距离的十五分之一进行近似计算得来的能量消耗值(单位:卡路里)可以为用户提供运动热量消耗的直观参考。在硬件构成上右下角的ADXL345三轴加速度传感器作为核心元件持续监测运动状态以保障步数计算的准确性,下方一排功能按键支持用户灵活设置步距等个性化参数以满足不同使用场景需求,左下角电源输入开关掌控整机电源通断,蓝白色调节部件可精细调整液晶屏对比度确保在不同光照环境下均能清晰显示,中间的提示灯则在用户达成预设运动任务(达到目标步数)时触发亮起以直观的视觉反馈告知用户可以有效增强交互体验与使用便捷性让计步器不仅是数据记录工具更能助力用户科学运动。图5.2计步器运行图如图5.3步距设置与任务设置展示图(a)所示,当用户长按设备下面的“设置”按键1秒时系统将自动唤醒菜单界面同时白色光标会精准定位至首个选项“步距设置”,该选项以反白高亮显示可以清晰提示当前可操作状态。按下圆形“确认”按键后界面跳转至步距配置页面同时默认显示当前步距值为“60cm”,用户可通过“+“-”按键以5cm为单位递增或递减调整刷新显示当前实时数值同时伴随轻微震动反馈以确保操作的交互体验感。步距指单步落地时两脚脚跟之间的直线距离是影响运动数据精度的核心参数,它的数值会受年龄、性别、体重、身高及运动习惯等多重因素影响,例如身高1.85米的成年男性通常步距约75-80cm而身高1.55米的青少年步距多为50-60cm,因此系统支持用户根据实际身体条件自定义设置并建议用户通过实际测量获取精准值,可选择平坦地面直线行走10步并测量总距离取平均值就能得到个性化步距参数。当用户完成数值调节后短按“确认”键即可保存设置同时系统将自动返回主界面并且步距参数立即生效,后续计算的运动距离(步数×步距)与卡路里消耗(距离/15)将新数据的基础上实时更新。这种人性化的交互设计不仅满足不同用户的个体差异需求还能通过精准的基础数据设置确保计步器在步行和跑步等场景下输出可靠的运动量化结果从而真正实现个性化健康管理体验。如图5.3步距设置与任务设置展示图(b)所示,当用户长按设备下面的“设置”按键1秒后后系统进入菜单模式同时通过短按“设置”键一次白色光标将划过“步距设置”选项并精准定位至第二项“任务设置”,再按下圆形确认键后界面跳转至任务设置页面同时用户可通过“加”“减”按键以100步为单位自由调节。任务提醒作为核心交互功能支持用户自定义单次运动目标(从0步到10万步)。以当前设置为例,当累计步数突破500步阈值时机身右侧的提醒灯是红色常亮状态可以通过视觉与灯光双重反馈强化用户感知,即使将提醒步数设为0步系统仍会在首次检测到运动数据时触发提醒灯亮起作为初始化操作的状态确认。本设计考虑到不同用户的运动能力差异,10万步的上限设置足以覆盖长跑人员的需求。(a)(b)图5.3步距设置与任务设置展示图如图5.4清除步数展示图所示,在计步器的功能设置菜单中第三项为“清除步数”功能,白色光标在用户连续点击三次“设置”按键后会精准跳转至该选项随后按下“确认”按键系统将弹出二次确认界面同时屏幕中央以醒目的字体显示“OK?"用户可以选择按下确认按键清除步数也可以按下复位按键返回主界面这样可以避免用户数据丢失。如果用户再次点击“确认"键后系统将执行数据清除指令并且页面返回主界面,此时主界面上的步数以及根据步数计算出的运动距离及卡路里消耗数值都会瞬间归零,这一操作不仅清除当前统计的步数也会清零相关联的距离(步数×步距)和卡路里消耗(距离/15)数据确保了数据的一致性与准确性方便用户进行多次使用计步器。它这样的功能适用于用户每日运动数据重置和更换设备使用者或进行数据统计周期切换步行、爬楼和下楼梯等运动场景,它为个性化运动数据管理提供了便捷的操作方式,增加计步器的可操作性。如果用户按下复位按键将不会执行清除步数指令而是会直接返回主界面并且记录的信息不会有任何改变。图5.4清除步数展示图如图5.5清除所有数据和掉电保护功能展示图(a)所示,在计步器设置菜单的末端排列着最后一个功能选项“清除所有数据”,当用户连续四次点击“设置”按键时屏幕左侧的白色光标将精准滑动至该选项,随后如果按下“确认”键系统就会马上弹出二次确认界面显示“OK?”,当用户再次点击“确认”键时主界面上的实时步数、累计总步数、运动距离和卡路里消耗数据将会迅速归零。该功能专为用户切换使用周期和设备转赠他人或进行系统性数据重置设计,计步器通过严谨的多重确认流程与可视化反馈机制在保障数据安全的同时提供高效便捷的数据管理体验。如果用户按下复位按键那么将不会执行清除步数指令而是会直接返回主界面同时记录的信息不会有任何改变。如图5.5清除所有数据和掉电保护功能展示图(b)所示,计步器具有掉电保护的创新功能可以有效解决用户运动数据存储的痛点,当用户完成单次计步操作并关闭电源时LCD1602显示屏上的实时步数、运动距离及卡路里消耗数值将即刻清零,但出色的是在多次运动测试中系统内部即使在断电情况下存储的总步数数据仍能完整保留可以确保历史运动数据不丢失。计步器的实时步数、距离及卡路里等数据属于临时计算结果在断电后自动清除以便下次运动重新统计而总步数作为长期累计数据将持续累加。例如用户首次运动记录2000步后关机,再次开机进行第二次运动时实时步数将从0开始计数而总步数会在原有2000步基础上叠加新数据。它的这种精准的数据保护策略既满足用户对单次运动数据清零的需求又完整保留运动历程的长期记录可以显著提升计步器的实用性。(a)(b)图5.5清除所有数据和掉电保护功能展示图5.5本章小结本章围绕计步器系统的硬件和软件调试与功能验证展开进行系统性测试与优化确保了各模块的协同工作与设计目标的实现。设计者在硬件调试时因为焊接难度大所以分区域焊接避免焊接出现问题。其发现电路出现虚焊和短路问题,经过重新焊接将问题解决。计步器的测试数据表明它的统计准确率达90%以上这验证了硬件电路与传感器模块的稳定性。成果展示部分介绍了计步器通过传感器采集和单片机处理并结合显示屏实时显示步数和距离及卡路里消耗和支持包括步距自定义、任务提醒、数据清零及掉电保护功能的设置。设计者通过这些调试实践不仅验证了硬件设计的合理性与算法的有效性还在嵌入式系统调试和人机交互界面优化等方面积累了工程经验并且最终实现的计步器系统具有低功耗运行与灵活的用户配置功能为后续产品化开发提供了可靠的技术验证基础。
6结论本毕业设计的题目是基于单片机的计步器设计为此通过系统的硬件选型、电路设计、算法开发及调试优化成功制作出一款集运动数据采集、处理与显示功能于一体的便携式计步装置并顺利达成预期设计目标。计步器在硬件层面以STC89C52单片机作为控制核心搭配ADXL345三轴加速度传感器与LCD1602显示屏形成完整的硬件架构。在电路设计过程中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年跌倒防护指南
- 2026安徽省社会科学院招聘高层次人才16人备考题库带答案详解(达标题)
- 2026黑龙江黑河市嫩江市乡镇卫生院招聘医学相关专业毕业生2人备考题库及参考答案详解(巩固)
- 2026川投(达州)燃气发电有限公司招聘3人备考题库附参考答案详解(培优a卷)
- 2026河南省烟草专卖局(公司)高校毕业生招聘190人备考题库附答案详解(基础题)
- 2026年宿州九中教育集团(宿马南校区) 教师招聘备考题库带答案详解(培优)
- 2026贵州黔东南州麻江县谷硐镇中心卫生院招聘1人备考题库含答案详解(综合题)
- 2026上半年广东广州市越秀区教育局招聘事业编制教师83人备考题库带答案详解(突破训练)
- 2026四川大学华西医院刘吉峰主任医师课题组专职博士后招聘备考题库含答案详解(研优卷)
- 2026中兴财经暑假实习生招聘备考题库带答案详解(夺分金卷)
- 2025年吉林省综合类事业单位招聘考试公共基础知识真题试卷及参考答案
- 工商业光伏并网验收及调试申请方案
- 2025年国家林业和草原局招聘考试重点知识点梳理
- GB/T 11417.1-2025眼科光学接触镜第1部分:词汇、分类和推荐的标识规范
- 2024年广东省公务员考试申论真题及答案(县级卷)
- (2025年标准)中风公司补偿协议书
- 乡镇避孕药具培训课件
- DB54T 0496-2025 退化高寒草原免耕补播技术规程
- 2025年机电一体化单招校考题库及答案
- 代理记账提成管理办法
- 企业年金政策培训课件
评论
0/150
提交评论