版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的计步器设计及实现摘要: 计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。计步器功能可以根据计算人的运动情况来分析人体的健康状况。而人的运动情况可以通过很多特性来进行分析。与传统的机械式传感器不同,ADXL345是电容式三轴传感器,由它捕获人体运动时加速度信号,更加准确。信号通过低通滤波器滤波,由单片机内置AD转换器对信号进行采样、AD转换。软件采用自适应算法实现计步功能,减少误计数,更加精确。单片机STC89C5
2、1控制液晶显示计步状态。整机工作电流只有1-1.5mA,实现超低功耗。关键字:计步器;加速度传感器;ADXL345;低功耗Design and realization of pedometer-based microcontrollersAbstract:Pedometer is a popular daily exercise progress monitor, can motivate people to challenge themselves, enhance physical fitness, to help lose weight. Early designs used a wei
3、ghted mechanical switch detects the pace, and with a simple counter. When shaking the device, you can hear a metal ball to slide back and forth, left and right, or a pendulum swinging percussion stopper. Pedometer function can calculate the movement of people to analyze the situation of human health
4、. And the movement of people can be analyzed by many features. With the traditional mechanical sensors differ, ADXL345 three-axis sensor is a capacitive acceleration signal by its human motion capture, and more accurate. Signal through a low pass filter, the microcontroller built-in A / D converter
5、for signal sampling, A / D conversion. Software uses an adaptive algorithm pedometer function, reduce error count is more accurate. STC89C51 SCM control LCD pedometer state. Machine operating current of only 1-1.5mA, ultra-low power consumption.Key Words: pedometer; Acceleration sensor; ADXL345; low
6、 power consumption目 录1绪论11.1论文研究的背景、目的及意义11.2国内外研究现状11.3本文研究的内容22方案设计及选择22.1设计要求22.2传感器的选择22.3 MCU微处理器的选择42.4系统的总体设计43系统的硬件设计53.1微处理器电路模块53.2计步器传感器采集模块63.3显示模块94软件设计114.1软件流程图114.2计步器算法的实现115测试及分析165.1系统调试及功能165.2系统的测试166总 结18参考文献19附录120附录220总结361绪论1.1论文研究的背景、目的及意义随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康
7、。计步器作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。手持式的电子计步器是适应市场需求的设计,使用起来简单方便。计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。电子计步器主要组成部分是振动传感器和电子计数器。步行的时候人的重心会上下移动。以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。所谓的振动传感器其实就是一个平衡锤在上下振
8、动时平衡被破坏使一个触点能出现通/断动作,由电子计数器完成了主要的记录与显示功能,其他的属于热量消耗,路程换算均由电路完成。计步器中一般采用一种加速度计来感受外界的震动。常用的加速度计原理如下:在一段塑料管中密封着一小块磁铁,管外缠绕着线圈,当塑料管运动时,磁铁由于惯性在管中反向运动,切割线圈,由于电磁感应,线圈中产生电流,人体运动时,上下起伏的加速度近似为正弦过程,线圈的输出电流也是正弦波,测量正弦波的频率就可以得出运动的步数,再计算的出速度,距离,和消耗卡路里。1.2国内外研究现状计步器最早是由意大利的伦纳德达芬奇酝酿的,但现存的最早的计步器是在达芬奇之后150年,即德国1667年制作的。
9、 日本最早的计步器是由GcnnaiHiraga在1755年制作的。在中世纪和近代,计步器并未被广泛使用,因为人们并不清楚它的用途。这说明机器的发明(硬件)不及找到它对人类的用途(软件)重要。 在日本,计步器已经使用了40多年,主要用于体育运动和分析记录行走步调。1965年,计步器正式进入日本商用市场,并被命名为manpo-meter(manpo的日语含义是10000步)。这是的计步器通常利用摆钟原理作为记步技术,利用加重的机械开关检测步伐,并带有一个简单的计数器。如果晃动这些装置,就可以听到有一个金属球来回滑动,或者一个摆钟左右摆动敲响当块。 这种机械式的计步器早已淡出历史,取而代之的是电子式
10、的计步器。1.3本文研究的内容 本文是一个基于STC89C51低速单片机,结合ADXL345倾角传感器来实现计步功能。第二章根据设计的要求选择了基于三轴加速度ADXL345功能计步器设计方案,第三章对硬件中微处理器电路模块、传感器数据采集模块以及LED1602显示模块进行介绍,第四章中对软件流程图以及记步检测算法进行介绍。紧接着第五章对实物进行了调试和功能验证。2方案设计及选择 2.1设计要求(1)能够有效的检测人体步行动作。(2)能够显示并且记录单位时间内的步数。(3)使用单片机技术处理数据。2.2传感器的选择 方案一:是选择机械式振动传感器方案二:选择加速度传感器三轴加速度传感器分为压阻式
11、,压电式和电容式。加速度的变化能够改变电阻、电压或者电容的变化,从而获得空间位置三个垂直方向的加速度分量。佩戴者在跑步过程中,身体上下起伏,计步器内部的微控制器读取三轴加速度传感器的三组模拟量,通过计步算法分析,获取运动信息。三轴加速度传感器具有精度高、反应速度快、通讯协议简单可靠等特点,广泛使用于汽车、数码产品、航天设备等领域。方案三:选择压力传感器为选择一款最适合本课题的计步传感器将三种传感器对比如图:表1 类型机械式振动传感器加速度传感器压力传感器工作电流5mA30-工作精度0.1g0.002g-目前内置于鞋底的压力传感器属于柔性传感器。在2008年北京奥运会上曾将它用于检测运动员的蹬地
12、力、蹬地时间、足底接触形状、运动速度、离心力等信息,以便指导运动员取得更好的成绩。这种传感器价格昂贵,设计难度较大,不适合本设计。机械设振动传感器应用于早期的计步器,测量精度低,误判、漏判严重,不符合本课题高精度的设计原则。随着加速度传感器的工艺逐渐成熟,测量精度也逐渐提高,功耗已达到微安级别,随着市场的大量使用,价格也降了下来,非常符合本课题的设计理念。表2列出了不同型号的三轴加速度传感器的特性。表2 加速度传感器特性对比表加速度计代表型号LSM303DLHMPU-6050ADXL345工作电流0.83Ma500150精度0.0003g0.0003g0.008g结合价格、功耗和精度等多方面考
13、虑,本课题选择的三轴加速度传感器ADXL345作为计步传感器。2.3 MCU微处理器的选择 方案一:采用8位微控制器8位微控制器的典型代表是8051微控制器。8051微控制器是一款入门级微控制器,它内核简易,应用广泛,资料齐全,非常适合入门学习。同时它的价格低廉,是一款适用于追求低成本,不追求实时性的电子产品。在我国很长一段时间内,8051微控制器占据了小型家电市场,其中的原因正是超低的成本.方案二:采用16位微控制器MSP430微控制器是一款以低功耗闻名的16位微控制器,有许多低功耗的工作模式,采用了精简指令集(RISC)结构,具有丰富的寻址方式,高效率的查表处理指令。这些特点都保证了用它可
14、以编写出高效率的源程序。方案三:采用32位微控制器Cortex-M0+内核基于ARMv6架构,支持Thumb/Thumb-2子集ISA,单核心,采用低成本的90nmLP工艺制造,核心面积仅0.04mm2,每MHz单位频率消耗的电流、功耗分别有9A、11W,是现今其它8/16位微控制器的大约三分之一,而性能上又比它们高出很多。飞思卡尔的Kinetis L系列微控制器基于ARM Cortex-M0+内核,是目前市场上能效极高的32位微控制器,每微安数据吞吐量居业内领先水平;超低功耗模式多种灵活的功率模式,适合不同的应用情形,可最大限度延长电池寿命;多种技术优化功耗,包括90nm薄膜存储(TFS)技
15、术、时钟和电源门控技术,以及带有位处理引擎、外围交叉桥和零等待闪存控制器的高效平台等;深度睡眠模式下,可在不唤醒内核的情况下进行智能决策并处理数据。 综合上述几种单片机优缺点并且根据实验要求,就地取材选择了由STC公司生产的一种价格便宜、低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。2.4系统的总体设计该计步器是有ADXL345加速度传感器、STC89C51单片机以及LED1602显示屏等组成。传感器采集数据,经内部A/D转换后,输入单片机内部,将数据处理后输出液晶显示。 VISIO LCD1602数据显示微处理器STC89C51单片机 ADXL345传感器采集器
16、图1总体方框图3系统的硬件设计3.1微处理器电路模块 STC89C51是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C51使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向
17、量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。STC89C51RC单片机参数8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;3.2计步器传感器采集模块ADXL345的内部功能结构如图2所示,X、Y、Z三个相互正交的的方向上的加速度
18、由 G-Cell传感器感知,经过容压变换器、增益放大、滤波器和温度补偿后以电压信号输出。 图2 ADXL345内部结构功能框图所谓的G-Cell传感器是由半导体材料(多晶硅)经半导体工艺加工得到,其结构可简化为三块电容极板,如图3。两端的极板圈定,中间的极板在加速度的作用下,偏离无加速度的位置,这样它到两端极板的距离发生变化,造成电容值的变化这个变化值经容压变换、增益放大,滤波等后体现在最后的电压输出值上,从而完成对加速度的测量。 图3 G-Cell传感器的物理模型ADXL345的三个相互正交的测量方向如图4,固定在人体上后,这三个方向上的数据意义也就随之确定了。 图4 ADXL345的三测量
19、轴向引脚配置(顶视图): 图5引脚功能图ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0的倾斜角度变化。 如图10所示,为传感器底座,接口电路连接:1234P111234P120.1uFC7X outY outZ outVCC1357911246101281314ADXL345SDOSDASCLVDDGND
20、GNDRESERESEINT2GNDNCVSCSINT1X outZ outS1Y out图6 传感器连接模块此模块电路主要功能就用于做ADXL345加速度传感器的一个转接口,而且利用ADXL345该加速度传感器产生相应的变化值。相当于整个系统的信号产生模块。 3.3显示模块液晶显示器(LCD)为平面超薄的显示设备,液晶显示器功耗很低,适用于使用电池的电子设备.它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。LCD特点:机身薄,节省空间。与比较笨重的CRT显示器相比,液晶显示器只要前者三分之一的空间。 省电,不产生
21、高温。它属于低耗电产品,可以做到完全不发热(主要耗电和发热部分存在于背光灯管或LED),而CRT显示器,因显像技术不可避免产生高温。 低辐射,益健康。液晶显示器的辐射远低于CRT显示器(仅仅是低,并不是完全没有辐射,电子产品多多少少都有辐射)。 画面柔和不伤眼,不同于CRT技术,液晶显示器画面不会闪烁,可以减少显示器对眼睛的伤害,眼睛不容易疲劳。图7 LCD采用标准的16脚接口第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS
22、为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。第15脚背光正极.第16脚背光负极。特性3.3V或5V工作电压,对比度可调4软件设计4.1软件流程图解释(1)主程序流程初始化预采样显示步数自适应阀值开始按键按下判断阀值是否有效算法计算Y显示输出步数计数 YCount%50=0清零按键按下N结束继续计数图8 流程图(2)4.2计步器算法的实现在可
23、用于分析跑步或步行的特征当中,我们选择“加速度”作为相关参数。个体(及其相关轴)的运动包括三个分量,分别是前向(“滚动”)、竖向(“偏航”)和侧向(“俯仰”),如图9所示。ADXL345检测其三个轴x、y和z上的加速度。计步器处于未知方向,因此测量精度不应严重依赖于运动轴与加速度计测量轴之间的关系。图9 跑步时的三个分量让我们考虑步行的特性。一个步伐,我们将其定义为单位步行周期,步行周期各阶段与竖向和前向加速度变化之间有一定的关系。要实现检测步数首先要对人走路的姿态有一定了解。行走时,脚、腿、腰部,手臂都在运动,它们的运动都会产生相应的加速度,并且会在某点有一个峰值。从脚的加速度来检测步数是最
24、准确的,但是考虑到携带的方便,我们选择利用腰部的运动来检测步数。图10显示了与一名跑步者的竖向、前向和侧向加速度相对应的x、y和z轴测量结果的典型图样。无论如何穿戴计步器,总有至少一个轴具有相对较大的周期性加速度变化,因此峰值检测和针对所有三个轴上的加速度的动态阈值决策算法对于检测单位步行或跑步周期至关重要。 图10从一名跑步者测得的x、y和z轴加速度的典型图样(1)步伐参数数字滤波器:首先,为使信号波形变得平滑,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如图11所示。当然,可以使用更多寄存器以使加速度数据更加平滑,但响应时间会变慢。图11 数字滤波器图12显示了来自一名步行者所戴
25、计步器的最活跃轴的滤波数据。对于跑步者,峰峰值会更高。 图12最活跃轴的滤波数据动态阈值和动态精度:系统持续更新三轴加速度的最大值和最小值,每采样50次更新一次。平均值(Max + Min)/2称为“动态阈值”。接下来的50次采样利用此阈值判断个体是否迈出步伐。由于此阈值每50次采样更新一次,因此它是动态的。这种选择具有自适应性,并且足够快。除动态阈值外,还利用动态精度来执行进一步滤波。步伐迈出的条件定义为:当加速度曲线跨过动态阈值下方时,加速度曲线的斜率为负值(sample_new sample_old)。峰值检测:步伐计数器根据x、y、z三轴中加速度变化最大的一个轴计算步数。如果加速度变化
26、太小,步伐计数器将忽略。步伐计数器利用此算法可以很好地工作,但有时显得太敏感。当计步器因为步行或跑步之外的原因而非常迅速或非常缓慢地振动时,步伐计数器也会认为它是步伐。为了找到真正的有节奏的步伐,必须排除这种无效振动。利用“时间窗口”和“计数规则”可以解决这个问题。“时间窗口”用于排除无效振动。假设人们最快的跑步速度为每秒5步,最慢的步行速度为每2秒1步。这样,两个有效步伐的时间间隔在时间窗口0.2 s - 2.0 s之内,时间间隔超出该时间窗口的所有步伐都应被排除。ADXL345的用户可选输出数据速率特性有助于实现时间窗口。表5.1列出了TA = 25C、VS = 2.5 V、VDD I/O
27、 = 1.8 V时的可配置数据速率(以及功耗)。表3数据速率和功耗输出数据速率(Hz)带宽(Hz)速率代码IDD (A)32001600111114616008001110100800400110114540020011001452001001011145100501010145502510011002512.510006512.56.250111556.253.125011040此算法使用50 Hz数据速率(20 ms)。采用interval的寄存器记录两步之间的数据更新次数。如果间隔值在10与100之间,则说明两步之间的时间在有效窗口之内;否则,时间间隔在时间窗口之外,步伐无效。“计数规则
28、”用于确定步伐是否是一个节奏模式的一部分。步伐计数器有两个工作状态:搜索规则和确认规则。步伐计数器以搜索规则模式开始工作。假设经过四个连续有效步伐之后,发现存在某种规则(in regulation),那么步伐计数器就会刷新和显示结果,并进入“确认规则”工作模式。在这种模式下工作时,每经过一个有效步伐,步伐计数器就会更新一次。但是,如果发现哪怕一个无效步伐,步伐计数器就会返回搜索规则模式,重新搜索四个连续有效步伐。5测试及分析5.1系统调试及功能Adxl34传感器 1602显示步数和总步数单片机复位总步数复位步数复位图13系统实物图设计的实物用于记录单位时间的人行走的步数,以及一段时间的总步数,
29、以达到督促人们锻炼的目的。5.2系统的测试 如表2为在实际步数中显示步数以及总步数不复位情况下记录。下图表3为在实际步数中显示步数每5步复位一次总步数不复位情况下记录。由图可得到实物对步数统计准确率在90%以上。表4实际步数51015202530显示步数5914182227总步数5914182227表5实际步数51015202530显示步数454555总步数49131823286总 结在本次计步器的制作过程中,体会到不少。而在解决问题的时候也是对自身的专业素质的一种提高。在焊接过程中元件必须清洁和镀锡焊接前用小刀挂掉氧化膜,然后再进行焊接时应使用电骡铁的温度高于焊锡的温度以烙铁头接触松香刚刚冒
30、烟为好。焊接点的上锡数量焊接点上的焊锡数量不能太少,焊少了焊接不牢固,机械强度也太差。同时让我也更加的了解了ADXL345是一款出色的加速度计,非常适合计步器应用。它具有小巧纤薄的特点,采用3 mm 5 mm 0.95 mm塑封封装,利用它开发的计步器已经出现在医疗仪器和高档消费电子设备中。它在测量模式下的功耗仅40 A,待机模式下为0.1 A,堪称电池供电产品的理想之选。嵌入式FIFO极大地减轻了主处理器的负荷,使功耗显著降低。此外,可以利用可选的输出数据速率进行定时,从而取代处理器中的定时器。13位分辨率可以检测非常小的峰峰值变化,为开发高精度计步器创造了条件。最后,它具有三轴输出功能,结
31、合上述算法,用户可以将计步器戴在身上几乎任何部位。参考文献1 曹赟 周宇 徐寅林. 加速度传感器在步态信号采集系统中的应用J. 信息化研究, 2009,35(9).2 钱朋安,葛运建,唐毅等.加速度计在人体运动检测中的应用J.计算机技术与应用进展,2004:632636.3 陈义华.基于加速度传感器的定位系统研究D.福建:厦门大学,2006. 4 孟维国三轴加速度计ADXL345的特点及其应用J电子设计工程,2007(2):47-50 5 贾朱红,张晓冬基于IC总线的单主多从单片机之问的通信J微计算机信息,2009,25(3-2):101 6 高吉祥模拟电子线路设计M北京:北京电子工业出版社,
32、 2007 7 陈尔绍电子控制电路实例M北京: 电子工业出版社,2004 8 王彦朋大学生电子设计与应用M北京:中国电力出版社,2007 9 屈翠香,李刚.具有数字信号输出的三轴加速度传感器ADXL345J.国外电子元器件,1999(8):812. 10 彭勃,何晓平,苏伟.微机械静电伺服加速度计J.中国惯性技术学报,2000,8(1):6366. 11 刘宗林,李圣怡,吴学忠.新型三轴加速度计J.传感器技术学报,2004,17(3):488492. 附录1图17 系统设计原理图附录2#include #includeeeprom.h#include #include #include #in
33、clude #define uchar unsigned char#define uint unsigned intsbit SCL=P16; sbit SDA=P17; #defineSlaveAddress 0xA6 sbit beep=P20; #define JudgeP_M 0x8000 #define Left_cmp 0x006e #define Right_cmp 0x006e#define Go_cmp 0x006e#define Back_cmp 0x006eByte BUF8; uchar a=0,b=0;Byte Sbuf8; Word Wbuf2; int dis_d
34、ata,num=0; void delay(unsigned int k);void Init_ADXL345(void); void WriteDataLCM(Byte dataW);void WriteCommandLCM(Byte CMD,Byte Attribc);void DisplayOneChar(Byte X,Byte Y,Byte DData);void conversion(Word temp_data);void Single_Write_ADXL345(Byte REG_Address,Byte REG_data); Byte Single_Read_ADXL345(B
35、yte REG_Address); void Multiple_Read_ADXL345(); void Delay5us();void Delay5ms();void Delay20ms();void ADXL345_Start();void ADXL345_Stop();void ADXL345_SendACK(bit ack);bit ADXL345_RecvACK();void ADXL345_SendByte(Byte dat);Byte ADXL345_RecvByte();void ADXL345_ReadPage();void ADXL345_WritePage();void
36、Data_Convert();void Data_Process();/*1602液晶显示部分子程序*/sbit rs=P10;sbit en=P11;uchar code table= bushu: ;uchar code table1=zong bushu: ;int zongbushu=0,bs=0;sbit k1=P31;sbit k2=P32;sbit k3=P33;void delay(uint x) uint i,j; for(i=x;i0;i-) for(j=110;j0;j-);void write_com(uchar com)rs=0;P0=com;delay(5);en=
37、1;delay(5);en=0;void write_date(uchar date)rs=1;P0=date;delay(5);en=1;delay(5);en=0;void init1602()write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num16;num+)write_date(tablenum);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table1num);void bushu_disp
38、lay(uchar date)uchar qian,bai,shi,ge;qian=date/1000%10;bai=date/100%10;shi=date/10%10;ge=date%10;write_com(0x80+6);write_date(0x30+qian);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);void zongbushu_display(uchar date)uchar wan,qian,bai,shi,ge;wan=date/10000%10;qian=date/1000%10;bai=d
39、ate/100%10;shi=date/10%10;ge=date%10;SectorErase(0x2000); byte_write(0x2000,zongbushu);write_com(0x80+0x40+11);write_date(0x30+wan);write_date(0x30+qian);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);/*按键扫描*/void keyscan() if(k1=0)delay(10);if(k1=0)while(!k1);bs=0;if(k2=0)delay(10);i
40、f(k2=0)while(!k2);zongbushu=0;byte_write(0x2000,zongbushu);write_com(0x80+0x40+11);if(k3=0)delay(10);if(k3=0)while(!k3);bs=0;zongbushu=0;byte_write(0x2000,zongbushu);write_com(0x80+0x40+11);/*主程序*void main() zongbushu=byte_read(0x2000); init1602();Delay20ms(); Init_ADXL345(); while(1) keyscan();Mult
41、iple_Read_ADXL345(); Data_Convert(); Data_Process();Delay20ms(); bushu_display(bs);zongbushu_display(zongbushu); /*/void Delay20ms()unsigned char i, j, k;_nop_();_nop_();i = 1;j = 216;k = 35;dodowhile (-k); while (-j); while (-i);/*/*延时5微秒(STC90C52RC12M)*/void Delay5us() _nop_();_nop_();_nop_();_nop
42、_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*延时5毫秒(STC90C52RC12M)*/void Delay5ms() Word n = 560; while (n-);/*起始信号*/void ADXL345_Start() SDA = 1; SCL = 1; Delay5us(); SDA = 0; Delay5us(); SCL = 0; /*停止信号*/void ADXL345_Stop() SDA = 0; SCL = 1; Delay5us(); SDA = 1; Delay5us()
43、; /*发送应答信号入口参数:ack (0:ACK 1:NAK)*/void ADXL345_SendACK(bit ack) SDA = ack; SCL = 1; Delay5us(); SCL = 0; Delay5us(); /*接收应答信号*/bit ADXL345_RecvACK() SCL = 1; Delay5us(); CY = SDA; SCL = 0; Delay5us(); return CY;/*向IIC总线发送一个字节数据*/void ADXL345_SendByte(Byte dat) Byte i; for (i=0; i8; i+) dat = 1; SDA = CY;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 短租商铺合同模板
- 2024年度室外消防设施建设协议范本版
- 高铁征地合同模板
- 2024年保健品销售协议规范文本版
- 彩钢围挡安装承包合同模板
- 2024年期货居间服务补充合同:佣金调整与责任界定一
- 尾矿销售合同模板
- 比亚迪退定金合同模板
- 数字营销学 11第十一章 试题及答案
- 信息平台建设合同模板
- 室内照明设计课件PPT
- 工业硅计算公式
- 社会主义核心价值观—文明”主题班会教案
- 【MBA教学案例】瑞科公司的收入确认——“背靠背条款”引发的风波
- 第一次月考考试分析反思报告
- 朗文国际英语教程第二册-unit-10PPT课件
- 中国、日本、韩国历年总和生育率统计比较
- 八年级上册地理填图复习空白(共5页)
- 100以内退位减法经典实用
- 校本课程开发方案家乡景区文化避暑山庄
- 投标函及投标函附录范本(完整版)
评论
0/150
提交评论