毕业设计论文 基于单片机的计步器设计

更新时间:2024-04-01 18:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

玉林师范学院本科生毕业设计

基于单片机的计步器设计

The Pedometer Design Based on Single Chip Microcomputer

院 系 专 业 学 生 班 级 姓 名 学 号

指导教师单位 指导教师姓名 指导教师职称

电子与通信工程学院

电信工程 2012级1班 胡丽娜 201208401144

电子与通信工程学院

吕集尔 高级实验师

基于单片机的计步器设计

电子信息科学与技术 2012级1班 胡丽娜

指导老师 吕集尔

摘要

简易加速度计步器以竖直方向加速度传感器MMA7260与单片机PIC18F452组成的计步测试系统,能够对人体运动的运动量作出评估。与传统的机械式传感器不同,MMA7260是电容式传感器,由它捕获人体运动时加速度信号,更加准确。信号通过低通滤波器滤波,由单片机内置A/D转换器对信号进行采样、A/D转换。软件采用自适应算法实现计步功能,减少误计数,更加精确。单片机控制5110液晶显示计步状态。整机工作电流只有1-1.5mA,实现超低功耗。

关键字:单片机,电子计步器,加速度传感器

The Pedometer Design Based on Single Chip Microcomputer

Electronic Information Science and Technology 2012-1 Hulina

Supervisor Lvjier

Abstract

Simple acceleration pedometer with triaxial acceleration sensor MMA7260 step meter test system composed of MCU PIC18F452, can exercise an assessment to the human body movement.Different from the traditional mechanical sensor, sensor MMA7260 is capacitive three axis, by acceleration signal when it captures the human body movement, more accurate.Is filtered by low-pass filter, the single chip microcomputer built-in A/D converter for signal sampling, A/D conversion.Software using adaptive algorithm implementation plan step function, reduce the error count, more precise.Single-chip microcomputer control step 5110 liquid crystal display meter.The whole machine working current is only 1-1.5 mA, realize ultra-low power consumption.

Keywords:SCM, electronic pedometer, triaxial acceleration sensor

目录

1 引言 ............................................................................................................................... 1 2系统总体设计 ................................................................................................................ 1

2.1总体框图 .............................................................................................................. 1 2.2传感器选择 .......................................................................................................... 2 2.3 低通滤波器理论分析 ......................................................................................... 2 3 硬件电路设计 ............................................................................................................... 3

3.1 传感器连接及滤波电路模块 ............................................................................. 3 3.2 微处理器模块 ..................................................................................................... 4 3.3显示模块 .............................................................................................................. 5 4 软件设计 ....................................................................................................................... 6 5 制作与调试 ................................................................................................................... 8

5.1 硬件电路单片机部分的连接图 ......................................................................... 8 5.2 调试 ..................................................................................................................... 8 5.3 实测及误差分析 ................................................................................................. 9 6 结论及建议 ................................................................................................................... 9 参考文献 ......................................................................................................................... 11 附录1 实物图 ................................................................................................................ 11 附录2 总原理图 ............................................................................................................ 12 附录3 源程序 ................................................................................................................ 13 附录4 加速度计步器MMA7260简介........................................................................ 18

玉林师范学院本科生毕业设计

1 引言

1.1计步器的发展背景

随着社会的不断进步与发展,人们的物质生活水平不断提高,人们便开始越来越关注自身的健康。运动则是最好的方式,计步器作为一种可以计算行走的步数测量仪器,所以人们可以制定适量的运动方案来健身,并根据运行情况来分析人体的健康状况,因此越发被广泛的应用。电子计步器是一种适应市场需求的设计,使用起来也简单方便。

1.2 计步器的研究目的

计步器是一种十分受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,能够增强体质,并且帮助减肥瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。每当晃动这些装置时,可便以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。

1.3目标

通过设计一个以STC89C52单片机为核心的计步器可以实现计频数,频数累计功能。是一种结构简单、性能稳定、使用方便、价格低廉、智能化的计步器,具有一定的实用价值。

2系统总体设计

2.1总体框图

如图2.1所以,该计步器总共由四个模块构成。低通滤波器、主控MCU、竖直方向加速度传感器、显示模块组成。传感器采集数据经低通滤波器滤波,输入单片机内部A/D、D/A,将数据处理后输出液晶显示,加速度传感器的竖直方向的加速度输出,AN0为单片机一个模拟输入口,数据经单片机处理后由液晶输出。

1

附录2 总原理图

胡丽娜 基于单片机的计步器设计

12

玉林师范学院本科生毕业设计

附录3 源程序

void main() {

unsigned int i = 0,FirCouFlag = 1;

unsigned int dynThreh = 600, dynThrel = 450; //三轴方向不同的动态中间阈值 unsigned int dynthreTemph = 0, dynthreTempl = 0; //动态中间阈值临时值 int diff=0;

//采样值与阈值的差值

//三轴合成特征值数组峰峰值

unsigned char Diff = 0;

unsigned long tempvx = 0,tempvy = 0,tempvz = 0; //三轴合成特征值运算中间

变量

CloseInterKey(); TRIS_KEY0 = 1; ad_init(); N5110Init(); init_24xx(); LCD_clear();

// step_length();

WelcomeFace();

Drawnum(0,2,0,1); Drawnum(1,2,0,1); Drawnum(2,2,0,1); Drawnum(3,2,0,1); DrawStr(5,2,20,24); //stop

13

胡丽娜 基于单片机的计步器设计

while(1) {

if (BUTTON_IO0 == 0) {

delay(20);

if (BUTTON_IO0 == 0) { } while(1) {

for(i = 0; i < 300; i++) {

ADCON0 = 0x01; tempx = get_ad(); ADCON0 = 0x09; tempy = get_ad(); ADCON0 = 0x11; tempz = get_ad();

//==============计算阈值================== tempvx=(unsigned long)tempx*(unsigned long)tempx;

//选择AN2

//选择AN1

//选择AN0

tmrCounter = 0; //计时清零 delay(1200); //秒长延时 SLEEP = 1;

//唤醒MMA7260

//进入测试

DrawStr(5,2,15,19); //Count

tempvy=(unsigned long)tempy*(unsigned long)tempy; tempvz=(unsigned long)tempz*(unsigned long)tempz; array[i] = sqrt(tempvx+tempvy+tempvz);

// delay(5);

14

玉林师范学院本科生毕业设计

//

}

DoMinMaxMid(array,minmax,300); Diff = minmax[1]-minmax[0]; dynThreh = minmax[0] + 0.7 * Diff; dynThrel = minmax[0] + 0.4 * Diff; TimerInit(); InterKeyInit(); tmrCounter = 0;

//计时清零

if(Diff >= WalkThreL) { while(1) {

for(i=0; i < 10;i++) { ADCON0 = 0x01;

//选择AN0

tempx = get_ad(); ADCON0 = 0x09;

//选择AN1

tempy = get_ad(); ADCON0 = 0x11;

//选择AN2

tempz = get_ad();

//delay(20);

tempvx = (unsigned long)tempx*(unsigned long)tempx;

tempvy = (unsigned long)tempy*(unsigned long)tempy; tempvz = (unsigned long)tempz*(unsigned long)tempz; diff = sqrt(tempvx+tempvy+tempvz); while(diff<=dynThreh) { ADCON0 = 0x01; //选择AN0

tempx = get_ad();

15

胡丽娜 基于单片机的计步器设计

ADCON0 = 0x09; tempy = get_ad();

ADCON0 = 0x11; tempz = get_ad();

//选择AN1

//选择AN2

tempvx=(unsignedlong)tempx*(unsignedlong)tempx;

tempvy=(unsigned long)tempy*(unsigned long)tempy; tempvz=(unsigned long)tempz*(unsigned long)tempz; diff=sqrt(tempvx+tempvy+tempvz); // delay(10);

}

while(diff>=dynThrel) {

ADCON0 = 0x01; tempx = get_ad(); ADCON0 = 0x09; tempy = get_ad(); ADCON0 = 0x11; tempz = get_ad();

tempvx=(unsigned long)tempx*(unsigned long)tempx;

//选择AN2

//选择AN1

//选择AN0

tempvy=(unsigned long)tempy*(unsigned long)tempy; tempvz=(unsigned long)tempz*(unsigned long)tempz; diff=sqrt(tempvx+tempvy+tempvz); // delay(10);

}

if (FirCouFlag == 1) { }

counter = 7; FirCouFlag = 0;

16

玉林师范学院本科生毕业设计

else { }

counter++;

Drawnum(0,2,(counter/1000),1); Drawnum(1,2,(counter00/100),1); Drawnum(2,2,(counter0/10),1); Drawnum(3,2,(counter),1);

}//end for

//==================重新计算阈值============== for(i=0;i<75;i++)

{

ADCON0 = 0x01;

tempx = get_ad(); ADCON0 = 0x09; tempy = get_ad(); ADCON0 = 0x11; tempz = get_ad();

//选择AN2

//选择AN1

//选择AN0

tempvx=(unsigned long)tempx*(unsigned long)tempx;

tempvy=(unsigned long)tempy*(unsigned long)tempy; tempvz=(unsigned long)tempz*(unsigned long)tempz; array[i]=sqrt(tempvx+tempvy+tempvz); // delay(10); }

DoMinMaxMid(array,minmax,75); Diff = minmax[1]-minmax[0];

dynthreTemph = minmax[0] + 0.7 * Diff; dynthreTempl = minmax[0] + 0.4 * Diff;

17

胡丽娜 基于单片机的计步器设计

// adTemp = DoArrayDiffAver(array);

if (Diff >= WalkThreL && Diff <= WalkThreH)

//判断

是否进行阈值替代

{

counter++;

Drawnum(0,2,(counter/1000),1); Drawnum(1,2,(counter00/100),1); Drawnum(2,2,(counter0/10),1); Drawnum(3,2,(counter),1); dynThreh= dynthreTemph; dynThrel= dynthreTempl;

} //end of if tmrCounter = 0;

//计时清零

//

}//end of while

} //end of if

}//end of while

}//end of if

}//end of while

}//end of main

附录4 加速度计步器MMA7260简介

MMA7260是美国Freescale公司最新推出的一款低成本单芯片三轴加速度传感器.该微型电容式加速传感器融合了信号调理、单极低通滤波器和温度补偿技术,并提供了四种加速度测量范围,分别为:±1.5 g、±2 g、±4 g。和±6 g。MMA7260还具有很高的灵敏度,当选择±1.5 g。的测量范围时,灵敏度达到800 mV/g。.它采用6 mm×6 mm×1.45 mm QFN的封装,体积超小,只需很小的板卡空间.而且,MMA7260提供休眠模式,是电池充电的手持设备产品的理想之选.它具有三轴向检测功能,使便携式设备能够智能地回应位置、方位和移动的变化.MMA7260的

18

玉林师范学院本科生毕业设计

其主要特性如下.

(1)X Y Z:具有三轴向的感应功能;

(2)可选的加速度范围:±1.5 g、±2 g、±4 g和±6 g; (3)低电流消耗:500uA; (4)休眠模式:3uA; (5)低电压运行:2.2~3.6 V; (6)快速启动时间:1 ms;

(7)低噪音:达到更高的分辨率、更高的精确度; (8)超小体积:6mm×6mm×1.45 mm QFN封装; (9)高灵敏度:800 mV/g@1.5 g。

MMA7260的内部功能结构如图6.1所示,X、Y、Z三个相互正交的的方向上的加速度由G-Cell传感器感知,经过容压变换器、增益放大、滤波器和温度补偿后以电压信号输出。

图6.1 MMA7260内部结构功能框图

Fig.6.1 MMA7260 internal structure function block diagram 所谓的G-Cell传感器是由半导体材料(多晶硅)经半导体工艺加工得到,其结构可简化为三块电容极板,如图3。两端的极板圈定,中间的极板在加速度的作用下,偏离无加速度的位置,这样它到两端极板的距离发生变化,造成电容值的变化.这个变化值经容压变换、增益放大,滤波等后体现在最后的电压输出值上,从而完成对加速度的测量。

19

胡丽娜 基于单片机的计步器设计

图6.2 G-Cell传感器的物理模型 Fig.6.2 G - physical model of the Cell sensor

MMA7260的三个相互正交的测量方向如图4,固定在人体上后,这三个方向上的数据意义也就随之确定了。

图6.3 MMA7260的三测量轴向 Fig.6.3 Three measuring axial MMA7260

20

本文来源:https://www.bwwdw.com/article/t0ir.html

Top