基于单片机的便携式数字气压高度计的设计与实现.doc_第1页
基于单片机的便携式数字气压高度计的设计与实现.doc_第2页
基于单片机的便携式数字气压高度计的设计与实现.doc_第3页
基于单片机的便携式数字气压高度计的设计与实现.doc_第4页
基于单片机的便携式数字气压高度计的设计与实现.doc_第5页
免费预览已结束,剩余28页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计(2014届)题 目基于单片机的便携式数字气压高度计的设计与实现学 院电子信息学院专 业电子信息工程班 级学 号学生姓名指导教师完成日期2014年6月诚 信 承 诺我谨在此承诺:本人所写的毕业论文基于单片机的便携式数字气压高度计的设计与实现均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。 承诺人(签名): 年 月 日杭州电子科技大学本科毕业设计摘 要高度的测量在我们的日常生活中占着举足轻重的位置,与我们的生活是密切相关的。海拔高度的定义是物体到一个标准海平面的垂直距离,也是引导航线的一个重要凭据。对于身处荒郊的人来说,有个必须要关心的问题就是所处地方的海拔高度。虽然目前市面上测量高度的仪器已经不少了,但一般都是较高端的产品才带有此项功能,比如GPS导航仪等。诚然,一些机械式高度仪拥有低廉的价格,但是测量精确度有待提高。所以高精度的测量设备深受人们的喜爱。因此研制一种高精度,低价格的便携式气压高度计是有一定市场需求的。海拔高度的测量,通常有以下这么几种方法。一是通过GPS利用卫星测距;二是利用所处地区压强来间接的测量海拔高度;但是前者开发成本较高且开发难度不低,以本人现阶段的水平无法实现。第二种方法的话,无论从器件的选择,电路的编辑,成本的控制来讲,都优于前者。气压传感器,顾名思义,就是用来测量空气压力的一种传感器。如今市场上能搜寻到的气压传感器琳琅满目。出于多方面的考虑,本次设计使用Bosch公司的BMP085数字式气压传感器采集信号,通过STC89C52单片机的处理,在LCD1602液晶显示屏上实时显示当前的数据。BMP085不仅拥有实时监测气压的左右,还具有温度补偿的作用。同时它使用了IIC总线接口,利于微控制器的访问。还有就是它的使用也很便捷,不需要经过A/D转换就可读取到温度、气压及测量数据。本次设计集单片机与传感器为一体,具有精密度高、总体型小、能耗低、使用简单方便等特点。关键词:STC89C52;BMP085数字传感器;气压高度计;海拔高度ABSTRACTAltitude is an important factor in our daily lives, and it is closed to our life. Altitude is defined as an object with a standard vertical distance of sea level , and it is an important credential to guide navigation . People who is in the wilderness, there must be somewhere he/she will be concerned about the altitude at the place he was. While there were a lot of measuring altitude instruments on the market, but they are typically higher-end products with the function, such as GPS navigators, etc. Admittedly, some mechanical altimeter has a low price, but the measurement accuracy to be improved. So the altitude precision measuring equipment was deeply loved by people. Therefore, the development of a high-precision, low-cost portable barometric altimeter is a certain market demands.There are some normal ways to measuring the altitude we usually used. The first one, through the use of GPS satellite ranging; the next one is using their locations to indirectly measure the pressure altitude; But the former costs a lot and the difficulty of producing it is difficult, may be failed in this design. The second method, then either select from the control device, edit the circuit, in terms of cost, and are better than the former.The so-called pressure sensor is a device for measuring atmospheric pressure. On the market today can find an array of pressure sensors. For various reasons, this design uses Boschs BMP085 digital pressure sensor signal acquisition, through STC89C52 MCU processing, display real-time data on the current LCD1602 LCD screen. BMP085 pressure not only about to have real-time monitoring, but also has the effect of temperature compensation. And it uses the IIC bus interface facilitates access to the microcontroller. It is also very easy to use, does not require A / D conversion can be read to the temperature, barometric pressure and the measured data. The design of both single chip microcomputer and sensor and has high precision, small volume, low power consumption, simple operation, etc.Key words:STC89C52;BMP085;Barometric altimeter;Altitude.目 录1 引言22 概述32.1 气压高度计研究目的及意义32.2国内外发展现状42.3 本次设计方案思路52.4 研发方向和技术关键52.5 主要技术指标53 总体设计63.1 气压传感器的选择63.2 单片机的选择73.3 电源的选择73.4 显示器件的选择83.5 海拔高度换算原理93.6 误差的产生和消除104 硬件设计124.1 单片机模块124.2 传感器模块154.3 显示模块184.4 电源模块194.5 整体系统设计图195 软件设计215.1 总体方案215.2 程序流图215.3 模块说明226 制作与调试266.1 硬件电路的布线与焊接266.2 调试277 结论28致谢29参考文献30附录31附录A 实物图311 引言气压高度计是一种利用气压传感器来采集空气压强信息,再利用空气压强与海拔高度的转换公式进行计算得到所需要的海拔高度值的测量仪器。一般有传统的机械式高度仪、便携式气压高度计和GPS高度仪三种类型。气压高度计在日常的工农业生产和生活中有着非常广泛的应用,比如:登山爱好者在登山时一定会及时关注压强、海拔高度和温度等与他们自身密切相关的信息;飞行器在高空中飞行,执行空中任务也要实时监控所在高度以便及时调整路径;蚕农在养蚕时也要时刻关注蚕室内的压强和温度来保证蚕宝宝的生长。所以说,制作一个能同时显示气压、海拔高度和温度的气压高度计是很有必要和市场需求的。对于传统的机械式高度仪,制作过程复杂,内部结构复杂,体积庞大不方便携带,精度无法保证,基本已经被现代社会所淘汰,不符合本次设计的主题,故本次设计不采用。对于GPS高度仪,首先一点是制作成本比较高,会超过本次毕业设计的预算;其次制作难度比较大,因为他需要与卫星进行通讯,涉及电子、通讯、计算机等多方面的知识且专业性极强,不是现阶段的可以解决的,为了能顺利完成本次毕业设计,所以本次设计也不采用。对于便携式的气压高度计,设计方便,成本不高,精度也有所保障,所以本次设计采用基于单片机的气压高度计进行制作。此次制作的便携式高度计主要使用了STC89C52单片机和BMP085型气压传感器,由电源电路、晶振电路、单片机控制电路、传感器电路和显示电路组成。气压数据和温度数据由BMP085采集获得经由STC89C52处理后显示到液晶显示屏LCD1602上。本次设计的系列参数均基于BMP085的参数,可以测量-500米到9000米的范围,温度范围在-40到85,完全能满足日常生活和工农业生产的需求。2 概述2.1 气压高度计研究目的及意义随着现代科学技术的发展,海拔高度的测量已成为工农业生产和日常生活不可或缺的一个重要组成部分;在化工熔炼方面,原料的融化所需的温度随着海拔高度的变化而产生变动。一般来说,海拔高度越高,熔点越低,反之,海拔高度越低,熔点就越高;海拔高度同时也影响农作物的播种地区和播种类型,海拔低的区域一般地形平阔,温度适宜、氧含量密度大,适应于稻米、麦子、苞谷等作物的生长;海拔高的地方地势一般以山地、丘陵为主,温度低、气压低、空气密度小,不利于一般农作物的生长,可以种植青稞一类的高原作物。在对能源的利用方面,气压高度计也有一定的用处,它能优化能源的使用,做到节约能源。有一个典型的例子就是IBM生产的服务器内部都装有气压高度计。这么做的原因就在于该公司的服务器遍布全球,然而不是所有地方的海拔都是一致的,在不同高度的地方,空气密度都不相同,因此散热时需要的风量大小就有所不同。在高海拔的地方,空气稀疏,散热时就需要发出指令,让散热器加快转速以便产生更大的风量来加速空气流动,增加散热效果,避免由于过热而造成的稳定性问题。反之,在低海拔的区域就可以适当降低旋转速度来节省能量的消耗,同时也能延长散热器的使用时间,这种只能的设计就是IBM的服务器无论出于何种环境都能顺利运行,机器不会过热的重要原因。可见气压高度计在对于能源的控制方面也是有所长的。在日常生活中,我们常能看到像部分登山爱好者到了高原地带,出现头晕、胸闷、想吐等病症(既高原反应),并且症状随着高度的增加而加强的例子。这是因为随着海拔高度的增高大气压就会降低,从而影响到人体内氧气的供应。如果有一款便携式的气压高度计,就可以实时监控海拔高度,从而在达到不适高度时引起警觉。防止下次活动时这些症状的产生。在科学探索方面,一款高精度的气压高度计能更加准确测量各种的山峰的高度,不停更新各方面的数据,对于地理教育或探索有着重大的意义。比如能让我们了解世界最高峰的真正高度,一些我们关系的山峰的高度等等。另一方面还能增加民族自豪感,我们能拥有如此之多的高峰。因此,气压高度计是生活和生产中不可或缺的一部分。然而传统的机械式海拔高度测量系统的各项参数(精度、大小等)都不能达到要求,而GPS海拔高度仪价格又不是一般人能接受的。综上所述,无论是从工、农业和能源的发展在来讲,还是从传统的高度计的不足的角度来讲,研究一种新型的高度计是迫在眉睫的了。2.2 国内外发展现状现在市场上常见的气压高度计有机械式气压高度计、盒式气压高度计和腕带式气压高度计。现在飞行器上所使用的气压高度计本质上是由盒装气压高度计改装而成的。现在常见的机械式气压高度计基本都是液体式气压高度计,像酒精啊,水银啊等等,这几种高度计都已经是很古老的机械式气压高度计了,不但个头大,而且精密度低,随带困难且不够牢固,稍有碰撞就会碎裂,已经完全无法适应当今社会。20世纪以后,地球村的科技整体呈现高速发展的趋势,尤其是现在的21世纪,各行各业不断地涌现出新技术、新材料。高度测量方面也是如此。虽然盒装气压高度计的出现部分地解决了液体气压高度计的一些缺点,比如体积过大、不方便携带、精度不高等问题。在人类社会进入20世纪90年代以后,微电子行业蓬勃发展,各式各样的传感器陆续被发明,并有迅速地被运用到生产和生活当中,为人类的发展和生存带来了巨大的便利。各种先进便捷的数字式气压传感器早已遍布世界,并广泛被运用。便携式气压高度计早已走进千家万户,不高的成本,简单的使用方式,腕带式带来的便捷,使得气压高度计不在是一个专业设备,任何的人都可以实时的监控所在地区的海拔高度、气压、温度等数据。这些年来,在电子技术不断发展的同时,传感器这个行业也进入了告诉发展时期。从地区分布来讲,一些欠发达地区,如亚洲、东欧等逐渐成为了传感器的使用大户,传感器市场在其中不断扩张,大有使用量超越欧美等发达地区的趋势,毕竟这些地区处在发展的高峰期,需要大量使用各种设备。而美日德等老牌的电子强国,也没有落后,依旧是传感器市场分布最大的地区。从使用范围来讲,使用频率最大的行业还是汽车电子行业,每年有大量的各式的传感都被用在上面。对于本次所需要的气压传感器行业,目前国内国外的很多电子器件公司都推出了各式各样的气压传感器,如摩托罗拉公司的MPX4105、 APM公司的TP015P、intersema公司的MS系列气压传感器,当然还有产自Bosch公司,被广泛运用的BMP085数字式气压传感器等。无数的气压传感器的出现使得各种类型的数字式气压测量装置大量出现,且普及率日益增加,精度也越来越高。现在的数字式气压高度计不在只有测量气压和高度这两个单一的功能了,一般都还集成了测量温度、辨别方向、显示时间等功能,有的甚至还能预测未来的天气变化。利用气压传感器和单片机的各类特性,巧妙的将两者结合,就能顺利地开创出无数多的实用产品,可以说是只要能想到的物品,一般都可以通过设计而实现就像超越传统机械式气压高度计和盒式气压高度计的便携式气压高度计一样。得益于日新月异的电子技术和器件,气压高度计已经成功的由以前的只有专业场合专业人士才能使用的测量仪器变成今天的随处可见,方便使用的电子产品,并集成到众多的电子产品中,这都归功于电子行业技术发展和很多有创新精神开发者。2.3 本次设计方案思路本次制作的系统主要由单片机控制部分、传感器部分、液晶显示部分、时钟电路和复位电路等组成,其结构框图如图2-1所示, 各部分作用如下:图2-1 组成图单片机部分:本次系统的最主要的部分之一,它控制着这个系统的运作,包括数据的处理、反馈以及传输。时钟电路:为STC89C52提供信号源。本次采用的晶体振荡器频率是12MHz。显示电路:显示温度、高度值和气压值。传感器电路:实现气压数据和温度数据的采集。电源电路:为整个系统提供能量支持。2.4 研发方向和技术关键在查阅相关文献和联系自身实际后,能研发设计出以下功能:(1)能实时显示当前温度,要解决的关键问题是将温度传感器与单片机的连接问题;(2)能实时显示当前大气压强,要解决的关键问题是温度漂移问题;(3)能实时显示当前海拔高度,要解决的关键问题是找到合适的换算公式同时要尽可能的减小误差。2.5 主要技术指标本次设计主要达成的技术指标如下:(1)压强精度: 0.01kPa(2)温度精度: 0.1(3)高度精度: 0.5米3 总体设计便携式气压高度计就是一种集温度显示和高度显示于一体的,基于单片机的高集成度的有别于传统高度仪的测量海拔高度的仪器。其工作原理是利用气压传感器采集压强信号,通过压强高度换算公式得到高度,同时温度传感器采集温度数据,将这两个数据经由单片机处理后传输到液晶显示屏上,在液晶显示屏上完成温度、高度和压强的显示。便携式气压高度计的原理框图如图3-1所示。本次设计的系统主要由单片机、电源电路部分、液晶显示部分、晶振部分、传感器部分组成。图3-1 组成原理图3.1 气压传感器的选择在此次便携式气压高度计设计中,气压传感器是组成气压高度计的核心器件中之一。在设计初期一直纠结与以下两款主流传感器,APM公司的TP015P传感器和Bosch公式的BMP085传感器。一、TP015P由APM公司生产,是一款传统的模拟气压传感器,一般来讲,该款传感器的可测范围在0100 kPa左右。使用温度可以在-40125之间,精度可以控制在02左右。本款传感器没有温度补偿功能,设计电路时需要增加额外温度补偿电路来增加精度,减小由于温度漂移带来的误差,同时它没有集成温度传感器,还需要增加温度传感器电路模块。这样一来就会增加本次制作的工作量和成本,同时也会降低容错率,影响最终的完成度。二、BMP085Bosch公司的BMP085是一款高精度、超低能耗的数字压力传感器,被广泛运用于移动设备中。该款传感器性能优异,使用方便,最大精度可以控制到0.03hPa,并且耗电极低,只有3uA。该传感器的测量范围为3001100hPa(海拔-500米海拔9000米)。工作电压大概在1.8到3.6V。在低功耗模式下,精度可以达到0.5米。最关键的是本款芯片是数字式的且集成了一块温度传感器在里面,不在需要外部的A/D转换模块和温度传感器模块,它也具有温度补偿功能,不在需要外部的温度补偿电路。综上所述,使用TP015P传感器设计的话会比较复杂,还要加上温度采集模块和A/D转换模块,并且需要加了温度补偿电路才能提高精度;而高集成度的BMP085设计更加方便,因此后者更加符合本次设计的要求且设计方便,所以选择BMP085作为本次设计的传感器。3.2 单片机的选择单片机是一个系统的核心,选择好合适的单片机可以节约成本,减少能耗,同时也能方便设计,减小工作量。本次设计所使用的单片机主要从以下两款单片机中挑选:一、STC89C52具有以下特点:8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;二、AT89C52具有以下特点:8K字节程序存储空间;256字节数据存储空间;没有内带EEPROM存储空间;需要专用的编程器下载。本身两款芯片本身差别不是很大,但是出于烧写程序时的方便考虑,最终还是选择了STC89C52。3.3 电源的选择既然本次设计的是便携式气压高度计,那么电源部分就只能选择电池,稳压源是不可选的,本来还想选择锂电池,但是对于锂电池不是很了解,怕出错,还是放弃了选择他。所以备选的就只剩普通的干电池和纽扣电池了。比较两者的特点,两者都能满足电压需求,虽然说纽扣电池的体积小,但是使用范围没有干电池广,干电池可以在任意商店买到,而纽扣电池在一些小商店无法买到,所以说使用干电池更加符合本次制作的主题。因此,本次设计使用3节干电池作为电源。3.4 显示器件的选择本次设计的便携式气压高度计需要能够同时显示气压、高度和温度值,显示器的选择方案如下:一、数码管显示数码管显示的数据够大够清晰,但是其耗电量比较大,并且无法显示复杂字符,只能显示数字。功能过于单一,无法与此次设计的要求相符合。二、液晶屏显示液晶显示屏具有无辐射,能耗低,发热少,厚度小,质量轻,还能精确还原图像等优点,关键是能显示复杂符号,符合本次设计的要求。方案比较:液晶显示屏功能足够强大,而且能耗不高,完全可以满足本文设计的需求,所以选择液晶屏。 3.4.1 LCD显示器的选择一、LCD12864主要技术参数显示容量:128*64个像素点芯片工作电压:3.35.5V带背光,内置汉字库,能显示简繁汉字,串行和并行接口任选。二、LCD1602主要技术参数显示容量:16*2个字符芯片工作电压:4.55.5V自身带有背景光源,能更清晰地呈现两行字符,每行16个字符,缺点是无法在屏幕上显示汉字,但能显示各种字符,接口无法选择,只有一个并行接口。LCD12864 顾名思义像素是128*64,能显示8*4个汉字,本身自带汉字库,能显示图像效果,功能相对于LCD1602略有强大;LCD1602虽然只能显示字母、数字和符号且只能显示16*2个字符,但它本身的寄存器不止32个,价格比LCD12864便宜,只要6元左右,而LCD12864至少也要40元一片。综上,两片液晶显示屏都可以满足本次制作要求,因此出于成本控制考虑,选择LCD1602显示屏。3.5 海拔高度换算原理3.5.1海拔高度换算原理利用气压值来测量海拔高度的具体原理是:地球上空气体密度基本处处不同,一般来说,越是离地面近的地方空气密度就越大,而高空中大气稀薄,密度当然就比较小。经过长期的大量的实践和实验证明,在海拔高度-100m+4000m的范围中,一般就可以认为气压的下降与海拔高度的提升成反比关系,比例系数一般认为大约在-(12.311.5)Pa/m。通俗的讲,就是海拔高度大约每升高1m,大气压强就会下降约12Pa。而我们要制作的气压高度计,就是基于这个最基本的原理,通过不是很复杂的公式换算得到高度值。当然了,想要明白变换的原理,还需要弄清楚以下几个知识点:1.大气压强P(又称大气压或气压):空气对完全没在其中的物体产生的压力叫大气压强。大气压强的经常使用的单位有:百帕(hPa)、兆帕(mBr)、毫米汞柱(mmHg)等。2.标准大气压:在标准大气下海平面上方的气压,其值为101.325kPa,这是压强的基本单位,记作atm。化学中曾一度将标准压力(STP)定义为101.325kPa(1atm),但1982年起国际纯粹与应用化学联合会将“标准压力”重新定义为100 kPa。3.海拔高度:海拔,也被称为绝对与海平面的绝对高度差,通常的标准计算为平均海平面的垂直距离,是从地面的地方所在海平面。从海拔高度为零或零是一个沿海的平均海水面的水平位置。它是基于地方站的验潮记录年,平均海面是从位置绘制。解放以前,我国的海拔零点很不一致;解放后,从1956年起,统一改用青岛零点,既青岛附近的黄海海面作为各地计算海拔高度的水准零点。所以,本次设计采用国标计算海拔高度。3.5.2海拔高度的一般计算公式大气物理学中对海拔高度和大气压力之间的关系作出了一个明确的规定。国际标准大气是国际上一致认可的一个虚构的大气压强,他规定了-2 000 80 000m高度范围内大气各参数与高度的关系,公式详见1-1。代表着传感器采集到的压力值,H就是与之相对应的海拔高度值。有一个需要特别留意的地方就是温度的高低会影响到海拔高度与气压值之间的关系。 (1-1)其中:大气静压.:标准海平面气压,大小为 . R:气体常数R=287.05287 /k.:标准海平面高度,0毫米汞柱的地方.:自由落体标准加速度.:相应层大气温度,值为288K.H:重力势高度.R:地球半径.H:本次设计想得到的高度h3.5.3基于BMP085的换算公式根据上面得到的知识,我们可以知道大气压在数值上可以定义为所处位置的海拔高度到大气层最上面的空气柱的总质量。在0到3000米内,大概高度每增加10米,大气压强就会减少大概100帕;在精确的话,就是在海拔2000米内,高度没提高12米,大气压强就会减少133帕左右。使用传感器采样得到的大气压强P和海平面标准大气压强Po就可以计算出当地海拔高度(取标准大气压为101.325兆帕)。具体公式见下面的公式1-2, (1-2)该公式是由BMP085的使用手册提供,所以与BMP085传感器收集到的气压值配合能准确地得到当地海拔高度值,其中Altitude是以米为单位的海拔高度值,为标准大气压值,p为当前的大气压值。3.6 误差的产生和消除误差产生的的因素有很多种,其中最为关键的就是温度的影响,还有一些因素就是像周边气体的流动(诸如呼吸,风扇之类)都会影响到空气压力的测量从而影响高度的获得结果。还有一个关键的影响因素就是焊接时的认真程度,相对于其他的元器件,BMP085对于焊接的要求比较高,如果在焊的时后一不小心就会造成器件的一定变形,这就相当于在器件内部产生了一个残余应力,也会对实际测量产生一定的偏差。为了消除这些误差的影响,首先需要对测量结果进行温度补偿。令人省心的是这款传感器中的EEPROM里拥有176位校准数据,这些校准数据会对捕捉到的数据进行温度补偿,只要单片机在处理数据前先读出这些EEPROM中的校准数据就可以直接使用采集到的温度和压力数据了。对于气流运动而引起的误差,个人任务可以人为的搭建一个密闭的环境来进行测量;至于焊接时会产生的影响,可以通过合理的布线和认真仔细,小心翼翼的焊接方式来避免。通过以上的一些方式和方法,应该就能较为准确的消除误差,得到一个比较真实的高度和温度数据。4 硬件设计本次设计的主要是一个基于BMP085数字式传感器的高度测量仪器,它利用了海拔高度与气压之间的相互关系,通过STC89C52读取气压传感器中的压力值、温度值及温度补偿参数,通过程序转化将得到的压力值转换为高度值,最后在LCD1602上显示出气压、温度和高度值。本次制作的硬件系统模块框图如图4-1所示。图4-1 硬件结构图4.1 单片机模块STC89C52单片机是一款与51单片机有所不同的一种功耗低、性能高的CMOS8位微型控制器,它延续了经典的MCS-51内核,同时系统里面又集成了Flash存储器,拥有可编程的功能,其内部Flash为8k字节,RAM为512字节。STC89C52单片机拥有以下功能:32位I/O口线,内部设置4KB EEPROM,看门狗定时器,复位有效电路;另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可以选择点击模。空闲模式下,CPU停止工作,只能允许RAM、定时器/计数器、串口、中断继续工作;掉电保护方式下,RAM内容被保护,振荡器被冻结,单片机的一切工作被停止,直到下一个中断或硬件复位为止,它的最高运作频率为35MHz,6T/12T可选。4.1.1单片机最小系统设计单片机的最小系统就是使单片机能够实现简单运行的最少的原件的组合。一般包含电源电路,复位电路和时钟电路。由于此次设计直接使用3节1.5V干电池供电,所以不涉及电源电路。4.1.2复位电路单片机在RESET端加一个大于20ms正脉冲即可实现复位,必须使RET引脚至少保持两个机器周期(24个振荡周期)的高电平,CPU在第二个机器周期内执行内部复位操作,以后每个机器周期重复一次,直至RST端电平变低,上电复位和按钮组合的复位电路如下图4-2所示。图4-2 复位电路在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RSET电位下降,于是在RSET形成一个正脉冲。只要该脉冲足够宽就可以实现复位,即。一般取,。当通电时,使电容C2通过R2迅速放电,待切断电源后,C2再次充电,实现手动复位,R2一般取。4.1.3晶振电路当使用单片机的内部时钟电路时,单片机的XATL1和XATL2需要用来接石英晶体和微调电容,如图4-3所示。晶体一般在频率1.2MHz-12MHz之间选择,电容一般在50PF-30PF之间选择。本次设计中之所以选择频率为12MHz的晶振,是为了更精确的定时;电容选22pF,辅助晶振起振。XATL1接地,XATL2接外部振荡器。时钟发生器把振荡频率两分频,产生一个两相时钟信号P1和P2供单片机使用。P1在每个状态S的前半部分有效。P2在每个状态的后半部分有效。图4-3晶振电路4.2 传感器模块BMP085传感器是Bosch公司推出新一代集成数字芯片,因其低功耗、低电压的电学特性使它可以广泛的运用于手机、PDA、GPS导航器件以及户外装备上。BMP085在低的高度噪声(merely 0.25)快速转换的情况下,表现非常有益。BMP085 包含电阻式压力传感器、AD 转换器、和控制单元,其中控制单元包括EEPROM 和 IIC 接口。BMP085 可以传送没有经过补偿的温度、压力值。EEPROM 储存了 176位单独的标准数据,这些标准数据用于补偿、温度依赖性和传感器其他的一些参数,不需要太多的操作就可读取到气压及温度测量数据。BMP085采用8脚陶瓷无引线芯片承载超薄封装,它性能卓越,内部的EEPROM中置有校准补偿数据,绝对精度最低可以达到0.03hPa(0.25米)。本次设计一律在低功耗状态进行,但是也能将精度控制在0.5米。气压测量范围从300hPa到1100hPa,换算成高度为海拔9000米到-500米。图4-4是其封装图。 图4-4 BMP085封装外形3.4.1 BMP085的各个引脚功能1脚(VCC)接电源正,2脚(SDA)为IIC的数据端, 3脚(SCL)为IIC的时钟端,(VDDA)为正电源,4脚(XCLR)为主清除信号输入端,低电平有效,用来复位BMP085和初始化寄存器和控制器,在不用的情况下可以空置,(VDDD)为数字正电源,5脚(EOC)为完成转换输出为空,6脚(GND)接电源负,7,8脚为空。3.4.2 BMP085与单片机的连接BMP085的工作电压为5V,与单面机的连接要外加一个5V的电源供电,还要接两个5.1K的上拉电阻,SDA、SCL端口接STC89C52对应的T2EX/P1.0、T2/P1.0端口,XCLR和EOC引脚悬空,GND接地,典型的应用电路如图4-5所示,它与单片机的连接方式是IIC总线方式,使用一根数据线和一根串行时钟线传输数据;在所在线使用上拉电阻完成逻辑与功能。 图4-5 BMP085与STC89C52单片机连接图因为BMP085与单片机是通过IIC总线连接,所以还需要了解一些IIC总线的信息。IIC是PHILIP公司开发的一个总线标准,IIC串行总线一般都有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到IIC总线设备上的串行数据都要接到总线的SDA上,各设备的时钟线都要接到总线的SCL上,一般SDA、SCL都会接上拉电阻以实现电平的转换以及提高驱动能力。 IIC总线协议一般包括:起始信号、停止信号、数据位、应答位;一般一次通信为9个时钟信号:8个数据位为一个应答位。IIC总线的时序关系图如图4-6所示图4-6 IIC总线时序关系图3.4.3 BMP085产品介绍BMP085是一款高精度、超低能耗的压力传感器,被广泛应用在移动设备中。它的性能卓越,绝对精度最低可以达到0.03hPa,并且耗电极低,只有3uA。BMP085采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过IIC总线直接与各种微处理器相连。BMP085的主要特点如下:(1)压力范围:3001100hPa(海拔9000米-500米)(2)电源电压:1.8V3.6V(VDDA)1.62V3.6V(VDDD)(3)LCC8封装:无铅陶瓷载体封装(LCC)(4)尺 寸:5.0mmx5.0*1.2mm(5)低功耗:5A 在标准模式(6)高精度:低功耗模式下,分辨率为0.06hPa(0.5米)高线性模式下,分辨率为0.03hPa(0.25米)(7)反应时间:7.5ms(8)待机电流:0.1mA(9)无需外部时钟电路(10)含温度输出,IC接口,温度补偿,无铅,符合RoHS规范,MSL 13.4.4 典型运用BMP085的典型应用如下所示,当然不止这些,还有很多其他的,这里就不一一列举了。1.GPS精确导航(航位推算,上下桥检测等)2.室内室外导航3.休闲、体育和医疗健康等监测4.天气预报5.垂直速度指示(上升/下沉速度)6.风扇功率控制4.3 显示模块4.3.1 LCD1602介绍1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。LCD1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。LCD1602具有以下的特性:(1)3.3V或5V工作电压,对比度可调;(2)内含复位电路;(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;(4)有80字节显示数据存储器DDRAM;(5)内建有192个5X7点阵的字型的字符发生器CGROM;(6)8个可由用户自定义的5X7的字符发生器CGRAM。由于LCD1602拥有以上特性,因此该液晶显示屏被广泛运用于袖珍式仪表和低功耗应用中。4.3.2 LCD1602管脚说明LCD1602采用标准的16脚接口,管脚图如图4-7所示,图4-7 LCD1602管脚图其中:第1脚:GND为接地管脚第2脚:VCC接5V电源正极第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。4.3.3 LCD1602与单片机的连接本文制作的便携式气压高度计采用的是LCD1602字符液晶。其中D0-D7脚是数据传送口,接单片机P0口,使得数据传至液晶并显示。RS脚接单片机P2.0口是写指令和写数据控制脚。RW脚接地,既让液晶显示屏进行写操作。EN脚接单片机P2.2口是使能端。VL脚接出的一个滑动变阻器用来调节液晶的亮度。具体连接图如图4-8所示。图4-8 1602与单片机连接图4.4 电源模块本次设计直接采用3节1.5V干电池串联供电,所得电压完全符合单片机和传感器的工作电压,因此可以直接供电,无需附加电路。4.5 整体系统设计图本次硬件电路的设计是使用了Protel99SE软件,该软件是应用于Windows操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作。本次设计的整体硬件电路图如图4-9所示图4-9 整体电路图5 软件设计5.1 总体方案本次设计的软件部分使用了分段式设计方式,主要有控制模块程序、传感器初始化模块程序、传感器写入读取模块程序、气压高度转化模块程序、液晶屏初始化模块程序、液晶屏写入读取模块程序和主程序等构成。本次程序设计主要采用了以下的函数库:、 、。 5.2 程序流图整个程序大概流程如下,首先进行系统的初始化,包括了单片机复位,晶振电路初始化,上电以后BMP085传感器进行初始化,接着判断是否有采样数据取得,如果有采样数据取得,那就进行下一步,将得到的数据传输到单片机中,经单片机在读取BMP085的EEPROM中的校准数据后对数据进行校准处理得到较为精确的书,在进行换算处理后一并送入LCD1602液晶显示。其具体流程如图5-1所示。图5-1 主程序流程图5.3 模块说明本次软件部分主要有以下几个模块组成,分别是主程序模块、传感器模块和显示模块。这些模块主要由以下函数构成。1.显示屏初始函数:为第一次显示做准备,一般初始化要做的有显示模式设置,光标设置和清屏等。2.延时函数:会随不同工作环境而改变,本次设计使用一个5微秒延时函数和一个5毫秒延时函数,3.BMP085的启动函数:将SDA端口设置高电平以拉高数据线,将SCL端口设置高电平以拉高时钟线。延时5微秒后将SDA端口置零,以便能产生下降沿。再延时5微秒后将SCL端口置零,拉低时钟线。4.BMP085的停止函数:将SDA端口设置低电平来拉低数据线,将SCL端口设置高电平以拉高时钟线。延时5微秒后将SDA端口置1,以便能产生上升沿。再延时5微秒。让BMP085停止工作。5.向BMP085发送命令的函数(既让BMP085开始采集信号):首先发送启动信号,然后发送模块地址和写入操作信号,接着发送寄存器地址(register address),最后发送寄存器的值(control register data)和停止信号。寄存器的值就给出了BMP085要进行的采样方法。不同的值分别代表,测量温度、低精度压力测量、中精度压力测量、高精度压力测量。本次设计使用低精度压力测量。6.从BMP085读取数据的函数(其中包括读取温度数据和压力数据):先是发送启动信号,待传感器启动后发送模块地址和写入操作信号,然后再发送寄存器地址(register address),接着重新开始IIC传输(Restart),发送模块地址和读取操作信号,通过采集获得了数据,这是再读取测量值的高8位(MSB)和测量值的低8位(LSB),最后发送停止信号。通过这个函数就能得到需要的温度和压力数据了。7.压力-高度转换函数:将采集得到的压力值通过BMP085给出的公式进行转换,得到高度值并传输得到的高度值。8.控制函数:其实单片机的控制函数出去初始函数后可以总结为两个步骤,向特定的寄存器写入特定值,从特定的寄存器读取返回值。然后为了符合IIC总线协议,每次通讯时的模块地址都是固定值。写入数据就是向固定的寄存器(OxF4)写不同的值从而完成温度的测量和气压的测量;读取数据就是从传感器的EEPROM中读取已经校准数据,进行校准后从OxF6读取温度数据和气压数据。9.LCD1602的显示函数:初始化显示屏后,将微处理器的中需要显示的内容写入到LCD显示屏中。传感器部分的流程图如图5-2所示。初始化传感器,发送启动信号,收到信息后传感器开始工作。先进行温度采集,采集成功后将读取到的数据存入寄存器;然后开始进行压力采集,成功后将采集到的数据写入寄存器。从EEPROM中读取校准数据,与采集到的温度和压力数据进行校准,最后将校准后的数据输出,传输到单片机后进行进一步的处理。传感器模块就这养结束。图5-2 BMP085程序流程图显示程序的流程图如图5-3所示。首先对LCD1602进行初始化,然后确认显示的位置,接着从寄存器中读取需要显示的数据写入液晶显示屏中,同时要判断是否已写入完成,如果完成,停止程序。图5-3 显示模块程序流程图6 制作与调试6.1 硬件电路的布线与焊接6.1.1 总体特点本次设计所涉及到的各个电路有如下的特点,总的来说如下所示:(1)电路原理简单,电路设计简洁明了,所用的器件不多且均为常见常用的器件。除去电源,大概共使用了13元器件,分别是5.1k电阻两个、10k电阻一个、10k上拉电阻一个、100电阻一个、可调电阻一个、22pF电容两个、10uF电容一个、12M晶振一个、BMP085传感器一个、STC89C52单片机一个、LCD1602液晶显示屏一个。(2)需要焊接的部分不是很多,但是BMP085传感器对于焊接要求很高,稍有疏忽就会造成器件变形,产生内部应力影响测量精度。因此,在画PCB板是应合理布线,以降低焊接难度,降低出错率,同时防止干扰。在实际焊接时,可以使用排母和芯片插座来防止焊接温度过高而影响主要器件管脚。6.1.2 电路划分本次焊接比较简单,主要分为三大部分,分别是单片机控制部分和LCD1602显示屏部分。单片机控制部分为单片机最小系统,包括晶振电路、复位电路。显示部分主要有上拉电阻和对比度调整电路。其他就是传感器电路部分。6.1.3 焊接焊接前需要先做好以下准备,可以起到事半功倍的效果。1.焊接物料:在焊接前应先留意所需焊接的元器件是否有极性要求,元件脚是否已经氧化或是否有油污等。元器件数量一定要符合清单上面的数量,只能少,不能多,防止焊接失误。在焊接前还需要准备好要使用的工具,摆放在能顺手拿到的地方以提高工作效率。2.腐蚀好的PCB板:检查有没有线路上的短路、断路等情况。3.清单:准备好清单,跟着清单采购,防止元器件缺少。焊接时要准确使用电烙铁,焊接顺序按照先焊好的元器件不会影响后焊的元器件为原则。在焊接时要认真仔细,对着原理图焊接,同时要注意避免虚焊等问题。在实体电路焊完后要及时检查有无虚焊、漏焊、错焊等现象,及时改正。6.2 调试(1)在电路焊接完成后,检查了整个工作电路,检查正负极是否接反,接地是否正确,电解电容的正负极是否接错,传感器和单片机的管脚是否接错,芯片是否插反等。在排查一遍

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论