三轴位置传感器模块设计与实现毕业设计.doc

上传人:文库蛋蛋多 文档编号:3933628 上传时间:2023-03-28 格式:DOC 页数:52 大小:2.86MB
返回 下载 相关 举报
三轴位置传感器模块设计与实现毕业设计.doc_第1页
第1页 / 共52页
三轴位置传感器模块设计与实现毕业设计.doc_第2页
第2页 / 共52页
三轴位置传感器模块设计与实现毕业设计.doc_第3页
第3页 / 共52页
三轴位置传感器模块设计与实现毕业设计.doc_第4页
第4页 / 共52页
三轴位置传感器模块设计与实现毕业设计.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《三轴位置传感器模块设计与实现毕业设计.doc》由会员分享,可在线阅读,更多相关《三轴位置传感器模块设计与实现毕业设计.doc(52页珍藏版)》请在三一办公上搜索。

1、三轴位置传感器模块设计与实现目录摘要IABSTRACTII引言11 绪论21.1 传感器技术21.1.1 什么是传感器21.1.2 传感器的分类31.1.3 传感器的基本特性31.2 三轴加速度传感器41.2.1 加速度传感器的原理41.2.2 加速度传感器的应用52 三轴位置传感器模块设计方案62.1 理论基础62.1.1 坐标分析62.1.2 静止到运动的判断72.1.3 位置的计算72.2 系统框架92.2 本章小结103 三轴位置传感器的硬件设计113.1 系统的硬件架构113.2 硬件设计113.2.1 8051单片机模块113.2.2 三轴加速度传感器133.2.3 单片机外围电路

2、143.3 电路设计153.3.1 I2C总线技术153.3.2 原理图设计173.4 本章小结184 三轴位置传感器的软件设计194.1 单片机常用操作204.1.1 系统的复位及初始化204.1.2 计数器/定时器204.1.3 中断224.2 程序设计234.2.1 加速度采集234.2.2 位置计算244.2.3 显示模块264.3 实验结果274.4 本章小结455 结论与展望46致 谢47参考文献48摘要在电子技术高度发达的今天,加速度传感器扮演的角色也越来越重要。加速度传感器在航天领域,汽车领域,以及人们的日常生活中都有着广泛的应用。三轴加速度传感器是加速度传感器的一种,它可以测

3、量三个坐标轴的加速度,从而准确反映物体的运动状态,确定物体的空间位置。本课题主要的内容是用三轴加速度传感器结合单片机设计出基于人体位置变化的三轴位置传感器模块,并实现该模块。传感器使用的是ADI公司的ADXL345,它小而薄、超低功耗,并且具有多个功能。使用8051单片机作为主控芯片,能够比较容易的实现该模块,完成预期目标。本课题的重点,一方面是对空间上各轴的加速度准确的采集,其次是设计出合理的算法,根据采集到的加速度信息计算出人体运动状态下位置的变化。根据本文提出的方案,设计并实现的模块,能够实时的采集到加速度信息,并且准确计算出人体距离初始状态的位置变化,正确的显示出来。关键词:三轴加速度

4、传感器;ADXL345;8051单片机ABSTRACTIn the electronic technology is highly developed today, the acceleration sensor is playing an increasingly important role. Automobile acceleration sensor in the field of aerospace, areas, and peoples daily life have a wide range of applications.Three axis acceleration tran

5、sducer is a kind of acceleration sensor, it can measure three coordinate axis acceleration, so as to accurately reflect the state of motion object, determine the position of an object in space.The main content is to use three axis accelerometer with MCU design three shaft position sensor module base

6、d on the change of body position, and the realization of the module. The sensor is used ADI companys ADXL345, which is small and thin, and low power consumption, and has a plurality of functions. Using 8051 microcontroller as the main control chip, can the module easier, achieved the expected target

7、.The focus of this topic, on the one hand on the space axis acceleration accurate acquisition, the second is to design a reasonable algorithm, calculate the change of human body motion position according to the acceleration information acquisition to.According to the scheme proposed in this paper, t

8、he design and implementation of the module, real-time acquisition to the acceleration information, and accurately calculate the position changes of the human body from the initial state, displayed correctly.Keywords:Three axis acceleration sensor;ADXL345; 8051 single chip microcomputer 引言当今时代由于电子技术,

9、计算机技术的快速发展,传感器在日常生活中的应用也越来越多。本课题所使用的三轴加速度传感器具有体积小,重量轻的特点,可以测量空间加速度,能够完全准确反映物体的运动性质,在控制,仪器仪表等领域,以及其他的电子设备,例如智能手机,笔记本电脑,数码相机等方面都有着最广泛的应用。本课题设计的三轴位置传感器主要是对人体位置变化的测量,要完成该传感器模块,首先得掌握ADXL345传感器以及8051单片机的工作原理,它们的性能。其次用protel软件设计出整个模块的原理图,并制作出相应的PCB板。最后调试电路,根据电路的连接,在单片机上使用Keil Software公司开发的Keil uvision软件,编写

10、程序采集出各轴的加速度,并设计出合理的算法,计算出人体在空间上的位置变化 。本论文详细论述了基于人体位置状态变化的三轴加速度传感器模块的设计。第一章介绍了传感器技术,并对三轴加速度传感器的性能予以分析,以及传感器今后的发展。第二章根据实际需求设计出解决方案,在实现解决方案的过程之中会碰到哪些关键的技术点。第三章根据第二章提出的解决方案,对三轴位置传感器进行了详细的硬件设计,包括电路原理图的绘制,根据需求选择元器件,在原理图的基础上对实际电路连接、调试。第四章是根据实际的电路连接情况,对本课题的传感器模块软件设计,使用I2C总线技术读取加速度信息,并根据实际情况对加速度信息予以校正,最后设计出适

11、当的算法,计算出人体运动状态下位置的变化。第五章是对整个设计方案的优点和不足之处予以总结,并对课题的实际意义予以展望。1 绪论1.1 传感器技术1.1.1 什么是传感器传感器的英文翻译为Transducer 和Sensor 。Transduce的定义为它是一种装置,可以将能量从一个域变换到另一个域。而Sensor定义为这种装置用来感知被检测系统的参数,他能把特定的被检测信息按一定规律转换成某种便于处理、易于传输的信息。所以传感器可定义为:能感受或响应规定的被测量对象并按照一定规律转换成可用信号输出的器件或装置。传感器通常由直接响应被测量的敏感元件和产生可用信号输出的转换元件以及相应的电子线路组

12、成,如图1-1所示。图1-1 传感器的组成传感器技术设计多学科与技术,包括物理学科中的各个门类以及各个学科门类。由于现代技术发展迅速,敏感元件与传感器产品的更新换代周期越来越短,使得一些新型传感器具有原理新颖、机理复杂、技术综合等鲜明的特点,因此,需要不断的更新生产技术,配备相关的生成设备,同时需要配备多方面的高技术人才协同攻关。传感器要求具有高的稳定性、高的可靠性、高的重复性、低的迟滞和快的响应,做到准确可靠、经久耐用,对于处于工业现场和自然环境下的传感器,还要求具有良好的环境适应能力,能够耐高温,耐低温,抗干扰,耐腐蚀,安全防爆,便于安装,调试和维修。传感器的应用领域十分广泛。无论是农业、

13、工业和交通运输业,还有能源、气象、环保和建材业;无论是高新技术领域,还是传统产业;无论是大型成套设备,还是日常生活用品和家用电器,都需要采用大量的敏感元件和传感器。例如,一座大型钢铁厂需要20 000台套传感器和检测仪表;大型石油化工厂需要6 000台套传感器和检测仪表;大型发电机组需要3 000台套传感器和检测仪表等。相对于信息技术领域的其他技术(特别是信息处理技术),传感器技术发展缓慢,;但一旦成熟,其生命力强,不会轻易的退出竞争舞台,可长期应用,维持发展的能非常强。像应变式传感器技术已有70多年的历史,硅压阻式传感器也有40多年的历史目前仍然在传感器技术领域占有重要的地位。1.1.2 传

14、感器的分类传感器种类繁多,功能各异。 由于同一被测量可用不同转换原理实现探测,利用同一种物理法则、化学反应或生物效应可设计制作出检测不同被测量的传感器,而功能大同小异的同一类传感器可用于不同的技术领域,故传感器有不同的分类法。图1-2对传感器进行了分类.图1-2传感器的分类1.1.3 传感器的基本特性传感器的基本特性可以分为静态特性和动态特性。传感器静态特性传感器静态特性是输入信号不随时间变化时,描述传感器的输入量与输出量之间关系的函数,而静态特性的主要参数有:线性度,灵敏度,分辨率,迟滞,重复性,漂移。1、线性度:传感器的输入量与输出量之间的实际关系曲线偏离直线的程度,又称为非线性误差。2、

15、灵敏度:传感器在稳态信号作用下输出量变化对输入量变化的比值。3、分辨率:分辨率是指传感器能够感知或检测到的最小输入信号增量。分辨率可以用绝对值或与满量程的百分比来表示。4、迟滞:在相同测量条件下,对应于同一大小的输入信号,传感器正、反行程的输出信号大小不相等的现象5、重复性:传感器在输入量按同一方向作全量程多次测试时所得输入输出特性曲线一致的程度。6、漂移:传感器在输入量不变的情况下,输出量随时间变化的现象。传感器动态特性传感器动态特性是指传感器对动态激励(输入)的响应(输出)特性,即其输出对随时间变化的输入量的响应特性。研究动态特性可以从时域和频域两个方面采用瞬态响应法和频率响应法来分析。经

16、常采用的输入信号为单位阶跃输入量和正弦输入量。1.2 三轴加速度传感器加速度传感是基于加速度的基本原理去实现工作的,加速度是个空间矢量,一方面,要准确了解物体的运动状态,必须得到三个坐标轴上的分量;另一方面,在预先不知道物体运动方向的场合下,只有应用三轴加速度传感器来测量加速度信号。1.2.1 加速度传感器的原理大多数加速度传感器是根据压电效应的原理来工作完成的。所谓的压电效应就是对于不存在对称中心的异极晶体加在晶体上的外力除了使晶体发生形变以外,还将改变晶体的极化状态,在晶体内部建立电场,这种由于机械力作用使介质发生极化的现象,加速度传感器就是利用了其内部的由于加速度造成的晶体变形这个特性,

17、晶体变形就会产生电压,只要计算出产生电压和所施加的加速度之间的关系,就可以将加速度转化成电压输出。而三轴加速度传感器是加速度传感器的一种,因此它也是基于这个原理设计的。1.2.2 加速度传感器的应用加快度传感器可以应用于车辆运动姿态的测量,车辆在行驶中,由于路面的不平整,会产生跌宕,对驾驶的舒适度产生影响,而如果配备了三轴加速度传感器,那么它就可以采集出车辆行驶过程中的三个轴向的加速度值,计算出车与路面的倾角,并分析这三个加速度的形成原因,从而可以调整驾驶的位置,使得驾驶的舒适性大大的提高。加快度传感器还可以应用于机械设备的振动检测,机械设备在工作时,会产生一定的振动,而这种振动对机械是无益的

18、,它可能使得机械零部件的失效,甚至带来一定的安全隐患。如果安装了加速度传感器,那么在机械工作的时候,它就可以计算出振动的频率,以及幅值等参量,并且由系统予以统计,以至于可以早期查找出安全隐患。并且如果机械是有悬臂的,它根据测量出的加速度的值,可以计算出悬臂的偏角,以及所处的位置,有助于操作人员及时的修正。加速度传感器还可以应用于各种电子产品,比如现在越来越多的人使用智能手机,在阅读文章,玩游戏的时候,使用加速度传感器可以模拟出人体对手机位置的操作,从而方便了人们的一些操作,使人们的日常生活更加的方便,更加的科学化,人性化。加速度传感器在人体方面的应用也越来越多,比如在人体跌倒方面的应用,人体跌

19、倒时,加速度的值会有很大的变化,并且发生时间短,可以根据这些,检测出人体是否发生跌倒,特别对于老人的监护,这种应用显得尤为重要。还有计步器方面的应用,在人体运动时,采集出加速度的值,从而计算出走了多少路程,并且可以根据实际的需要计算出消耗的热量,这样对于经常锻炼的人群,显得更加人性化。2 三轴位置传感器模块设计方案2.1 理论基础因为我们所设计的三轴位置传感器模块主要应用于人体运动状态下的位置变换,并且可以从ADXL345三轴加速度传感器中采集到三个轴的加速度信息,因此把加速度作为自变量,将人体的位置信息作为变量。很显然,加速度对时间的二次积分就是位移,从而再经过处理,就可以得到最终的位置信息

20、。2.1.1 坐标分析通常分析一个物体所处的位置状态,所用的是笛卡儿坐标系和球面坐标系,因为从ADXL345中采集到的加速度信息是基于笛卡尔坐标系的,也就是通常所说的直角坐标系,因此在本论文的研究是在直角坐标系中介绍的。如图2-1,是常用的空间直角坐标系。图2-1 空间直角坐标系三个坐标轴分别为X轴,Y轴,Z轴,如图2-1任意一点P可以表示为(x0,y0,z0)。假设X,Y,Z三个坐标轴的单位向量为:,那么P点的向量表示为: (2-1)在人体运动时,传感器模块也跟着做出相应的运动,因此我们可以建立一个关于人体的空间直角坐标系,从而反映出模块的位置变化。令X轴方向为正向,Y轴方向为侧向,Z轴方向

21、为垂直方向,如图2-2所示图2-2 人体坐标系2.1.2 静止到运动的判断为了能够准确的测量出人体位置状态的改变,因此当人体从静止状态变为运动状态时的判断很重要。并且对于加速度模块,即使静止的放在一个位置,它采集到的加速度信息还是有波动的,因此必须确定一个阈值,当采集到的各轴加速度变化,小于这个阈值时,认为它是静止的,大于这个阈值时则认为它开始运动了。人体在静止状态下,加速度变化介于0.15g0.15g之间,因此可以将0.15作为判断的一个阈值。假设加速度采样时间为t,前一时刻和当前时刻的加速度值分别为a_old和a_new。则运动状态发生变化时有|a_newa_old|0.15,若满足该式,

22、则进行加速度的二次累加计算出相应的位移,若不满足,则跳过累加。这样就确保了位移计算的准确性2.1.3 位置的计算获得位置信息,是最终的目的,因此对位置的准确计算很重要。理论上计算位置根据以下过程。设,为 x,y,z方向的单位向量,表示各坐标轴随着时间的变化时各轴的方向向量。 ,是采集到的三个加速度 ,是各空间方向的加速度 则空间加速度为: (2-2)在上式中: (2-3) (2-4) (2-5) 于是速度和位移分别为式(2-6)、(2-7) (2-6) (2-7)实际采集到的加速度是离散的点,因此需要做数值积分,但是思路却是基于上边的方法。因为对向量的计算在具体的程序实现是比较困难的,所以本论

23、文设计了一种比较容易实现的方法来求位移。以标准的空间坐标系为基准,在运动的过程中,通过加速度传感器采集到的加速度数据都会和标准的x,y,z轴有一定的夹角。因此可以先计算出夹角,然后各个坐标轴单独求加速度分量。设为标准空间坐标系x轴与加速度模块x轴,为标准空间坐标系y轴与加速度模块y轴,为标准空间坐标系z轴负方向与加速度模块z轴夹角。如图2-3图2-3 倾斜角度图由数学知识可以计算出,的值为: (2-8) (2-9) (2-10)从而只需要在采集的各轴加速度上乘以对应角度的余弦值就可以求出对应的标准空间坐标系下各轴的加速度,再进行数值积分,就能求出位置。2.2 系统框架由于本课题所设计的三轴位置

24、传感器模块需要对数据进行采集,处理,并且显示出处理后的数据。因此可以分为以下几个子模块,主控模块,加速度采集模块,显示模块,电源。图2-4是系统的整体框架主控模块显示模块加 模 速 块 度 采 集 电 源图2-4 系统整体框架其中主控模块是8051单片机,负责对采集到的加速度信息进行分析处理,加速度采集模块为ADXL345三轴加速度传感器,显示模块为1602液晶显示屏,对计算出的位置予以显示,电源负责给整个传感器模块供电。2.2 本章小结本章根据三轴位置传感器模块在对人体运动状态下的位置的变化测量需求,首先介绍了传统的空间直接坐标,建立了人体的坐标系。判断人体从静止状态到运动状态很重要,因为加

25、速度计有个波动范围,因此需要有一个阈值能够判断出状态的变化。接着分析了传统的位置计算方法,提出了改进后的位置计算方法,很明显传统的思路虽然简单,可实际应用时却要进行向量运算,而改进后的方法只需要求出传感器各轴偏转的角度,就可以确定出标准空间坐标系上各轴的加速度值,从而只需要进行简单的数值积分就能得到位置信息。最后设计了三轴位置传感器的整体框架。在下面的章节,会做出更详细的设计。3 三轴位置传感器的硬件设计3.1 系统的硬件架构根据上一章系统框架的设计,具体实现的硬件构架如图3-1所示。该框架由四个子模块构成:8051单片机微处理器模块,ADXL345加速度传感器模块,1602液晶显示模块,以及

26、电平转换模块。STC89C52单片机1602液晶显示SN74LVC4245电平转换ADXL345加速度传感器I2C总线SDA数据线SCL时钟线 图3-1 硬件构架如图3-1,加速度传感器模块和8051单片机之间采用I2C总线进行通信,因为ADXL345采用的是3.3V供电,而单片机系统采用的是5.5V因此必须进行电平转换。这里使用SN74LVC4245芯片作为电平转换模块,加速度计采集到的信息是基于3.3V的电信号,通过该模块,将其转换为基于5.5的电信号,再通过I2C总线送给单片机。同样,单片机发送指令时,通过I2C总线,将基于5.5V的电信号送给电平转换模块,该模块将其转换为基于3.3V的

27、电信号,再送给ADXL345模块。只有这样才能够采集到正确的加速度信息。3.2 硬件设计3.2.1 8051单片机模块单片机是整个系统的核心,实现了对各模块的控制,根据本课题所设计的传感器的基本要求,单片机低功耗是必须的,还有就是能够高速的处理数据,以满足实时性的要求。8031单片机片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373。8051是一种8位元的单芯片单芯片微控制器,并且内部有4K ROM。本课题选用的是STC89C52单片机,是一种增强型8051单片机。对于传统的8051单片机有1个8为的CPU,时钟电路可以提供6 时钟机器周期和12 时钟机器周期,内部有4K

28、B的ROM来存储程序,最大可以扩展到64KB,而且它的数据存储器为128B,这样就方便了数据的存储,同ROM一样,它也可以扩展到64KB。8051单片机提供了两个16位的定时器有时候也叫计数器,它们可以在中断以及定时计数时使用。总线的扩展电路为64KB。8051单片机的功耗极低,并且拥有很高的性能,是一个8位的微控制。图3-2给出了STC89C52的芯片管脚图图3-2 STC89C52管脚图该芯片有以下特点:1工作电压范围从5.5V到3.3V变化,这样就方便了外设电路的集成,而不需要进行电平的转换2它从4KB的程序存储器ROM扩展到了8KB,从而可以编写更多代码的程序,以满足更多的需要。3在芯

29、片上集成的RAM为512B,而传统的只有128B。4它具有EEPROM 功能,这样方便了数据的存储,不受系统掉电的影像。5外部中断有4 路,都是下降沿中断方式或者使用低电平触发电路6可以使用异步串口模式UART,对于程序的调试帮助很大很明显可以看出STC89C52芯片,可以充分的完成本课题的需求,低功耗,高速处理数据,电路简单,操作方便。3.2.2 三轴加速度传感器在三轴加速度传感器的选择上,选用的是ADI公司的ADXL345加速度传感,ADXL345的体积小,尺寸大小为3 mm 5 mm 1 mm,拥有极低的功耗,并且拥有高度13位的分辨率,最高的测量范围可以从-16g到达+16g,数字输出

30、的格式为16位的二进制补码,通信方式可以采用SPI或I2C串行通信,这样就方便了与单片机外围电路的设计。ADXL345在移动设备的应用上十分的广泛。它可以测量出人体位置变化时的静态重力加速度和动态加速度。因为它很灵敏,因此可以精确的测量出不到1.0的角度变化。ADXL345传感器在三个轴向上加速的测量是十分强大,它提供了多个测量范围,有-2g+2g,-4 g+4g,-8g+8 g的测量范围,并且最大可以达到-16g+16g 的测量。ADXL345的功能框图如图3-3:图3-3 ADXL345功能框图从ADXL345的功能框图可以看出,它提供了两个中断,并且它的中断很灵活,使用时可以映射到任意的

31、一个中断引脚,方便了我们了操作,并且它的内部已经集成了模数转换,因此我们采集到的直接就是16位的数字量。为了后期程序的编写,这里给出了ADXL345的寄存器映射,如图3-4所示。图3-4 寄存器映射3.2.3 单片机外围电路1.1602液晶显示屏液晶显示器也称之为LCD。这里我们选用的是字符型液晶显示器LCD1602,它可以用于显示字母、数字以及符号。图3-4为1602液晶显示屏的电路图。图3-4 1602液晶显示屏电路图从图3-4可以看出,1602采用的是16脚带背光的标准脚。RW为读写操作脚,当该脚为低电平的时候进行写,高时候进行读操作。RS为寄存器的选择操作脚,如果是低电平时它用的是指令

32、寄存器,高电平的时候用的是数据寄存器。E为使能端,由高电平变为低电平时候,液晶屏执行显示命令,D0D7为双向数据线,进行数据的传输。2.电平转换在三轴位置传感器模块的设计中,ADIXL345由3.3V的电压进行供电,但是单片机却是以5v电压运行供电,所以需要加入电平转换芯片,在这里我们选用的是SN74LVC4245,SN74LVC4245是一种3.3v电平和5v电平转换芯片,它有三态输出,是一种8bit总线收发器。其引脚图如图3-5所示。图3-5 SN74LVC4245引脚图3.3 电路设计3.3.1 I2C总线技术I2C总线是由PHLIPS公司开发的一种简单的双向的二进制串行总线,I2C总线

33、由数据线SDA和时钟线SCL构成,可以发送和接收数据。在CPU和被控制的模块之间以及模块与模块之间进行双向的传输,最大传输速度可以达到100Kbps。在被控制电路均并联在这条总线上,如图3-6所示。图3-6 I2C串行总线连接在I2C串行总线中,要求每个模块都有唯一确定的地址,在数据的传输中,I2C总线上并接的每一个模块既是主控器又是发送设备,CPU发送的信息分为地址和控制信息,其中地址信息用来选择被控制的器件电路,确定控制电路的种类。控制信息决定该模块的需要调整的信息量。I2C总线在接正电源时需要使用上拉电阻。当I2C总线不工作时,数据线和时钟线均被拉高,同时如果总线上的电路器件的输出为低电

34、平,都会使I2C总线的信号变为低电平,也就是SDA及SCL在器件上表现为线与关系,如图3-7所示。图3-7 I2C总线在传送数据之前,主控器先发送起始信号,通知接收器件做好接收的准备,在通信结束时,主控器发送停止信息,通知接收器件停止接收。起始信号和停止信号是启动和关闭I2C总线器件的关键信号,如图3-8所示。图3-8起始信号:SCL为高电平时,SDA由高电平向低电平的跳变,开始传送数据。停止信号:SCL为低电平时,SDA由高电平向低电平的跳变,结束传送数据。应答信号:接收数据的接收器件在收到8位的数据之后,向发送数据的主控器件发出特定的低电平脉冲,表示已经接收到了数据。如果未收到应答信号,则

35、判断为是受控器件发生了故障在时钟信号SCL为高期间,数据线SDA上的数据必须处于稳定状态,只有在SCL上的信号为低期间,SDA上的电平状态才允许变化。并且SDA先上传送的数据必须为8的整数倍,每传送一个字节,必须有一个确认信号。如图3-9所示。图3-93.3.2 原理图设计前面主要介绍了各子模块的作用以及工作原理,本节中主要给出了该模块的原理图,如图3-10,图3-11是对原理图中引脚的补充说明。图3-10 电路原理图图3-10 原理图说明3.4 本章小结本章先介绍了三轴位置传感器的硬件构架,然后把整个构架拆分为多个模块,详细介绍了各模块的器件的选择,以及器件的特性。因为这里设计的电路是基于I

36、2C串行总线通信的,因此本章还介绍了I2C总线的工作原理,最后设计出了电路的原理图。即使电路搭建了起来,它也是不能够工作的,还必须进行详细的软件设计,下一章将详细分析让电路工作起来,并采集加速度信息,计算位置状态信息的软件设计。4 三轴位置传感器的软件设计 本课题是要采集出空间坐标系下各轴的加速度信息,并计算出人体的位置变化,并显示在液晶屏上。根据这个需求,软件设计部分的流程图如图4-1所示。开 始上电延时各模块初始化采集加速度阈值判断计算位置显示数据结束小于阈值大于 阈值图4-1 程序设计流程图本程序的设计是在keil uVision 环境下进行了。Keil uVision是美国Keil S

37、oftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。并且Keil uVision生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil uVision 软件提供丰富的库函数和功能强大的集成开发调试工具。4.1 单片机常用操作4.1.1 系统的复位及初始化8051单片机复位的目的在于使得CPU和系统中的其他功能器件都处于一个确定一个确定的初始状态,并且从这个初始状态,8051单片机复位的条件是必须使RST段加上两个周期的高电平图4-2给出了一种

38、复位电路。这种复位电路的工作原理是通电时,电容两端等同于短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程序,即为低电平,单片机开始正常工作。图4-2 单片机的一个复位电路所谓初始化,是单片机上电,或要做一件事之前的准备工作,比如键盘扫描,先定义变量,定义哪些变量.给变量赋什么初值.选定哪些口输出输入等. 一般的情况下是在上电的时候初始化,还有就是程序跑飞和出现异常时也要初始化,初始化的目的就是把所有用到的标志位、变量回到你的初始值,以及引脚的分配,配置寄存器写入需要的值,像时钟的选择(内部、外部)一般在上电时就做好,以后不是特殊需要是不改动的,引脚功

39、能的分配也是一上来就设置好。而本课题研究的三轴位置传感器,在单片机系统上电复位之后,首先要进行的就是对ADXL345模块以及1602液晶模块进行初始化,只有这样系统才能够正常的采集数据,并且准确的显示出计算的数据4.1.2 计数器/定时器8051单片机片内有两个十六位定时器计数器:定时器0(T0)和定时器1(T1)。16为的定时器/计数器的实质就是一个加1的计数器,可实现定时和计数两种功能,其功能通常又程序进行设置。当定时器/计数器设置为定时方式时,计数器的加1信号由振荡器的12分频信号产生,也就是每过一个机器周期,计数器加上1,直到计数器达到最大值溢出。当定时器处于计数工作方式时,计数器对来

40、自外部输入引脚T0和T1的信号进行计数,外部脉冲的下降沿将触发计数。在每个机器周期的器件,采样外部引脚输入电平,若前一个机器周期采样值为1,后一个机器周期的采样值为0,那么计数器的值加1。TMOD是定时器/计数器方式寄存器用于控制T0和T1的操作模式,各位的定义模式如图4-3。图4-3 TMOD各位的模式定义TCON是定时器/计数器的控制寄存器,其格式如图4-4所示。图4-4控制寄存器TCON(88H)只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源。那么提供组定时器的

41、是计数源是什么呢?其实就是由单片机的晶振经过12分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计数脉冲的时间间隔也很准。一个12M的晶振,它提供给计数器的脉冲,就是12M/12等于1M,也就是1个微秒。也就是说计数脉冲的间隔与晶振有关,12M的晶振,计数脉冲的间隔是1微秒。定时器/计数器的定时/计数范围:工作方式0:13位定时/计数方式,因此,最多可以计到2的13次方,也就是8192次。工作方式1:16位定时/计数方式,因此,最多可以计到2的16次方,也就是65536次。工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多可以计到2的8次方,也说是256次。预置值计算:用最大计数

42、量减去需要的计数次数即可。4.1.3 中断中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。 MCS - 51单片机有 5个(8052有 6个)中断源, 为了使每个中断源都能独立地被允许或禁止, 以便用户能灵活使用, CPU内部在每个中断信号的通道中设置了一个中断允许触发器, 它控制CPU能否响应中断。只有对应的中断允许触发器被使能(置“1”),相应的中断才能得到相应。通常情况下中断操作是和定时操作结合起来使用的,下面介绍下中断允许控制寄存器IE和中断优先级控制寄

43、存器IP。中断允许控制寄存器IE (0A8H)图4-5中断允许控制寄存器EX0:外部中断0允许位ET0:定时器/计数器0中断允许位EX1:外部中断1允许位ET1:定时器/计数器1中断允许位ES : 串行口中断允许位EA :中断总允许位中断优先级控制寄存器IP(0B8H) 图4-6中断优先级控制寄存器PX0:外部中断0允许位PT0:定时器/计数器0中断允许位PX1:外部中断1允许位PT1:定时器/计数器1中断允许位PS : 串行口中断允许位4.2 程序设计在本节将对加速度采集模块,显示模块,以及最终的位置计算进行详细的算法设计。4.2.1 加速度采集该模块实现了对加速度数据的准确采集,图3-4已

44、经ADXL345的寄存器映射表,根据I2C的通信规则,可以进行如图4-7的器件寻址,并根据图4-8的I2C的时序图进行代码的编写。图4-7 I2C寻址图4-8 I2C时序图在具体加速度采集时,可以按照如下步骤进行:让ADXL345开始工作,首先产生下降沿,并且时钟线要拉低。即就是SDA和SCL都要从高电平变为低电平。然后进行应答信号的接收与发送。不管接收还是发送,时钟线都是由高电平变为低电平。然后根据图3-4的寄存器映射,对ADXL初始化,选择读取速度,校正x,y,z三轴加速度的偏移量。因为我们要获得三个轴的加速度信息,因此要在0x320x37地址范围内连续读出ADXL345内部加速度数据,首

45、先发送设备地址和要写入的信号通过总线写入ADXL345,再从0x32发送存储单元地址,然后发送设备地址加上要读信号,使用循环连续读取6个地址数据,存储在全局变量BUF中。4.2.2 位置计算从ADXL345采集到的是二进制数,因此必须把二进制数转换为10进制数,也就是合成数据,根据加速度传感器的数据手册,乘上系数3.9再除以1000这样变为以g为单位的加速度信息,有助于后期数据的处理。根据等式(2-8)、(2-9)、(2-10)计算出采集到的加速度和建立的标准空间坐标系各轴的夹角,也就是归于一个方向进行计算。因为可能会有正负的变化,计算角度时,经过反正切运算之后,它的取值范围是-90度到90度,因此即使是负角,它的余弦值也是正值,所以这里的加速度信息,不能让它进行绝对值处理,否则就会一直的累加,造成错误。这里以x轴位置的计算的算法为例,y,z轴的计算与之完全相同。步骤如下:(1)先从ADXL345读取X轴的加速度信息,并处理成以g为单位的数据。令此时的加速度ax_old,再读取一个数据令它为ax_new。 (2)计算三个轴的加速度变化是否都超过了阈值,如果都超过了,平台的倾斜角度也会发生变化,此时重新计算倾斜角

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号