基于单片机的数字气压计高度计设计说明书

上传人:仙*** 文档编号:86636254 上传时间:2022-05-08 格式:DOC 页数:48 大小:1.19MB
返回 下载 相关 举报
基于单片机的数字气压计高度计设计说明书_第1页
第1页 / 共48页
基于单片机的数字气压计高度计设计说明书_第2页
第2页 / 共48页
基于单片机的数字气压计高度计设计说明书_第3页
第3页 / 共48页
点击查看更多>>
资源描述
论 文 题 目 基于单片机的数字气压计高度计设计 XX 王建奇 大学机电工程学院毕业设计中图分类号:TH812基于单片机的数字气压计高度计设计专业名称:机械制造与自动化学生:王建奇导师:允岭 职称 教授大学机电工程学院20XX 12 月 中图分类号:TH812 密级:无UDC: 单位代码:11522基于单片机的数字气压计高度计设计Design of digital barometer and altimeter based on microcontroller chip姓 名王 建 奇学制三 年专 业机械制造与自动化研究方向单 片 机导 师 允 岭职称教 授论文提交日期2011-12-20论文答辩日期2011-12-26大学机电工程学院43 / 48基于单片机的数字气压计高度计设计摘 要采用瑞士INTERSEMA公司的 MS5561C数字气压传感器,利用海拔高度与气压和温度的关系,设计并制作了微型气压高度计。通过数字压力传感器和STC公司的STC89LE52RC 单片机进行串行通信,读取传感器中压力、温度值及补偿参数,用软件进行温度补偿和高度计算,并能在LCD液晶屏上显示具体数值。设计的气压高度计样机具有质量小、功耗低、精度高、工作可靠等优点。关键词: 气压高度计; 单片机;MS5561C; 温度补偿Design of digital barometer and altimeter based on microcontroller chipABSTRCTAccording to the relationship among pressure, temperature and altitude, an altimeter system with digital pressure sensor MS5561C of Switzerland INTERSEMA company is designed. Using digital pressure sensor and microcontroller chip STC89LE52RC of STC company to make serial communication,the pressure ,temperature and compensation parameters from the sensor are read out. Compensation of temperature and calculation of height are carried out with the software,thedata which have been processed to the LCD can also be transferred. And the altimeter has many merits such as light weight,low power consumption,high precision and high reliability etc.Key words : barometer altimeter ; microcontroller chip ; MS5561C ; temperature compensation目录1 引言11.1气压计的发展11.2单片机的发展12系统总体设计42.1设计思路分析42.1.1设计方案一42.1.2 设计方案二42.2系统总体设计52.3气压传感器的选择63 硬件电路设计83.1 STC89LE52RC单片机83.2 MS5561C气压传感器103.2.1 MS5561C性能特征113.2.2 MS5561C结构图框113.2.3 MS5561C工作原理123.2.4 软件补偿143.3 LCD液晶显示163.3.1 LCD显示原理163.3.2 LCD1602介绍173.4 Protel99SE的使用193.5 原理图和电路板图204 软件设计214.1C语言开发单片机224.2 计算气压值234.3 计算高度值244.4 程序流程254.5 Keil软件介绍274.6 主要程序274.6.1 程序定义与初始化274.6.2读D1D2字节子程序304.6.3读W1W4字节子程序324.6.4计算高度子程序344.6.5计算子程序354.6.6主程序375 结论39参考文献40致411 引言1.1气压计的发展1643年,托里拆利实验的成功,标志着气压计开始成为了人类研究大气压强的重要工具。从此以后,传统的水银气压计和无液气压计在气压测量领域就扮演了主要角色。但是,随着数字化和微电子制造技术的发展,数字气压计的出现使得气压测量仪器向小型化、无线化、多功能化发展。特别是数字气压计往往显示直观,电路集成化程度高,低功耗,防腐,防潮可靠性强,使得它不仅在传统的气压测量领域得到了广泛应用,而且在许多便携式设备中都能见到它的身影。传统的水银气压计和无液气压计往往体积较大,对气压的大小也无法直观的读出,精度低,容易受环境影响这是传统气压计的一个很难克服的缺点。在信息化数字通信的今天,无法进行远距离数据传输更是传统气压计势必要被数字气压计取代的重要因素。特别是在一些环境恶劣的环境下高温、高压、存在腐蚀性和放射性的环境等,数字气压计出现就成为了必然。所以,对数字气压计的研究和设计对气压测量领域有着非常积极和实际的意义。数字气压计的实现方案主要有两种:一种是使用模拟气压传感器如MPS2000,将传感器输出的模拟信号进行A/D转换,然后将数据交由MCU处理;另一种是使用数字气压传感器,由于这种器件除了气压传感器,还将A/D转换器和温度补偿电路集成到了一块IC上如HP01D、MS5561C。并且,通过接口总线,MCU可以直接读取气压数据。由于这种传感器有集成度高,使用方便等优点,所以是数字气压传感器发展的趋势。下面就具体介绍采用数字气压传感器MS5561C设计实现的无线气压计的具体方案。1.2单片机的发展单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。单片机最早被应用在工业控制领域,单片机由芯片仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备,如功率计,示波器,各种分析仪2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调、彩电、音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,机,小型程控交换机,楼宇自动通信呼叫系统,列车无线通信,再到日常工作中随处可见的移动,集群移动通信,无线电对讲机等。5. 在各种大型电器中的模块化应用某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中,就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中,由微控制器读出,转化为模拟音乐电信号。在大型电路中,这种模块化应用极缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。 6. 单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。7.单片机在汽车设备领域中的应用单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,abs防抱死系统,制动系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 2 系统总体设计2.1设计思路分析2.1.1设计方案一采用单片机主控,通过模拟气压传感器、A/D转换采集数据信息,经过含有单片机的检测系统检测,将结果传送到单片机控制的主控器,数据通过显示器显示。原理框图如图2-1所示:显示器单片机控制的检测系统单片机控制的主控制器A/D转换器气压传感器总线图2-1 方案一原理图2.1.2 设计方案二采用单片机主控,通过数字气压传感器将气压信号送入单片机中,以及在相关模拟分立元件的辅助下进行A/D转换以及其它的数据处理,将处理的结果送显示部分进行显示。原理原理框图如图2-2所示:气压传感器显示器微处理器89LE52图2-2 方案二原理图综上所述,方案一电路虽然与方案二类似,都较方案一调整方便、可兼顾的指标多,但方案一利用PC机平台实现软件操作,在操作运行复杂,并且性价较底,因为耗费较大,所以在实际应用中一般不用,所以我们选择第二种方案。设计51单片机数字气压高度计系统时,需要考虑下面4个方面的容。u 选择合适的气压传感器芯片,这要根据实际需要以及各种气压传感器的性能参数来决定。u 选择合适的单片机芯片,它的作用是将气压传感器输出的数字信号进行处理然后将处理后的数据输出到显示器上显示出来。u 设计显示电路及选择显示器件。u 实现气压信息采集并输出的软件设计。2.2系统总体设计本系统的总体结构框图如图2-3所示图2-3 系统总图由图2-3可知,整个系统的工作流程如下。测量时被测气压由气压传感器转换为模拟的电压信号,此信号不能直接输出到单片机进行处理。因此,需要经过数字气压传感器所置的AD转换模块把气压传感器测的模拟电压信号转换为数字脉冲信号其频率随输入电压呈线性变化。通过单片机接收该脉冲信号,得到单位时间获得的脉冲数,依据电压与频率的线性关系式计算出所对应的实际气压值,然后利用海拔高度与气压和温度的关系,计算出此地的海拔高度值。最后通过LCD显示电路将气压值、温度值、高度值显示给用户。2.3气压传感器的选择气压传感器对于数字气压高度计设计的实现至关重要,需要综合实际的需求和各类气压传感器的性能参数加以选择。u 气压传感器的主要性能参数如下。*测量围即所能测量的大气压力围,单位为mbar。*测量精度测量结果电流或电压的精度。*温度补偿围一般要选用具有温度补偿能力的气压传感器,因为温度补偿特性可以克服半导体压力敏感器件存在的温度漂移问题。*测量的是否是绝对气压值绝对气压值对应的即是实际的气压值,显然要实现数字气压计需要测量绝对气压值的气压传感器。*数字气压计显示的是绝对气压值,同时为了简化电路,提高稳定性和抗干扰能力,要求使用具有温度补偿能力的气压传感器。经过综合考虑,我们选用瑞士INTERSEMA公司的集成压力传感器芯片MS5561C作为气压传感器。u 它具有以下特点:*绝对压力围:10 - 1100 mbar1-110kPa*高精度温度测量*分辨率0.1 mbar和0.01*芯片存储6参数用于软件补偿*压阻式硅微传感器*集成微型压力传感器4.75*4.25*1.6毫米*16位ADC*3线串行接口*1个系统时钟*工作电压2.2 V3.6 V*工作电流 4uA*RoHS兼容& Pb-free*工作温度:-40C +85Cu MS5561C数字气压传感器描述:MS5561C 是SMD混合器件包括高精度压阻式压力传感器和ADC接口IC。块尺寸4.75mm*4.25mm,高1.6mm。它是依靠电压提供了16位的的压力和温度参数,MS5561C是低电压,低功耗的器件,且带自动断电开关。3线接口则可满足与微处理器的各种通讯。3 硬件电路设计3.1 STC89LE52RC单片机89le52单片机89le52单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。如下图3-1所示:图3-1 单片机引脚图89le52单片机引脚功能u 主电源及时钟引脚此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。1Vcc40脚:接+3.3V电源,为单片机芯片提供电能。2Vss20脚接地。3XTAL119脚在单片机部,它是一个反向放大器的输入端,该放大器构成了片的振荡器,可提供单片机的时钟控制信号。4XTAL218脚在单片机部,接至上述振荡器的反向输出端。u 控制引脚此类引脚包括RESET即RSR/VPD、ALE/PROG、PSEN、EA/VPP,可以提供控制信号,有些具有复用功能。1RSR/ VPD9脚:复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位REST。复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源VPD,以保持部RAM中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压围3.30.5V时,VPD就向部RAM提供备用电源。2ALE/PROG30脚:ALE为地址锁存允许信号。当单片机访问外部存储器时,ALE地址锁存允许输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个LSTTL负载。3PSEN29脚:程序存储器允许输出控制端。此输出为单片访问外部程序存储器的读选通信号。在从外部程序存储器取指令或取常数期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。4EA/VPP31脚:EA功能为外程序存储器选择控制端。当EA端保持高电平时,单片机访问部程序存储器,但在PC程序计数器值超过0FFFH时将自动转向执行外部程序存储器的程序。u 输入/输出引脚此类引脚包括P0口、P1口、P2口和P3口。1P0P0.0P0.7是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位及数据总路线分时复用口,可带8个LSTTL负载。2P1P1.0P2.7是一个8位准双向I/O口作为输入时,口锁存器置1,带有部上拉电阻,可带4个LSTTL负载。3P2P2.0P2.7是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。4P3口功能表,如下图3-2所示:P3口各个位的第二功能P3口的位第二功能说明P3.0RXD串行数据接收口P3.1TXD串行数据发射口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写信号P3.7RD外部RAM读信号图3-2 P3口功能表3.2 MS5561C气压传感器MS5561C是是瑞士Intersema公司推出的一款集成有压阻式压力传感器和ADC接口口的SMD混合集成电路。可广泛应用于便携式高度计、气压计、气象控制系统、多模式手表和GPS接收机等设备。其外形如下图3-3。图3-3 MS5561C实物图3.2.1 MS5561C性能特征MS5561C集成了压阻式压力传感器和ADC接口IC,传感器提供了16位的的压力和温度参数输出。另外,模块也包含了6个可读的参数方便实现用软件矫正实现及高的精度。MS5561C是一种低功耗低供电电压的传感器,可自动断开电源。3线接口则可满足与微处理器的各种通讯。传感器提供模块顶上的塑料和金属两种封装形式可选。MS5534的性能特征具体如下:*压力围300mbar1100mbar*16位ADC *芯片存储6参数用于软件补偿*3线串行接口*32768Hz系统时钟*供电电压2.2V3.6V*环境温度-10603.2.2 MS5561C结构图框MS5561C的部功能图框如下图3-4。图3-4 MS5561C部功能框图MS5561C的部原理框图如图3-4所示该器件包含一个压阻传感器和一个接口IC。图中,压力和温度测量使用同一个16位的ADC。测量压力时,ADC转换压力转感器的差分输出电压。测量温度时,ADC则感应和转换传感器电桥的电阻。在两种测量期间,传感器只用很短的切换时间。因而可以减少功耗,电桥偏置和ADC的参考电压均来自电源VDD,数字输出依赖供电电压。器件中的A/D转换器已优化工作在线性围。MS5561C的接口管脚定义如下图3-5。图3-5 接口管脚定义图3.2.3 MS5561C工作原理u MS5561C的复位:MS5561C的复位需要处理器给他发送一个符合一定时序要求的数据串。在处理器对MS5561C进行数据的读取前,为了保证读取数据的准确性,程序上都要对MS5561C进行复位操作。复位时序如下图3-6。图3-6 MS5561C 复位时序MS5561C的复位时序RESET是一个长度为2l位的特殊指令串,由于该模块在任何状态下都可以识别其独特的样式。因此在微处理器和MS5561C失步时,用复位时序就可以重新启动。u MS5561C部数据的读取:MS5561C部PROM存储了4组用于补偿的数据,分别为word1、word2、word3、word4。这四组数据可以转换成6个补偿系数C1到C6用于软件对气压值的补偿,已达到对实时气压现实所要求的精度。4组补偿数据数据位模式如图3-7。图3-7 四组补偿数据位模式图图3-8 MS5561C时序图读D1图3-9 MS5561C时序图读D2图3-10 MS5561C时序图读W1,W3图3-11 MS5561C时序图读W2,W4图3-8至3-11是MS5561C的读取时序图。该器件的通信以给其DIN管脚发一个指令串开始。MS5561C器件不需要片选信号,而是在每次建立串和停止串前用一个开始串。建立串可用来选择压力、温度、标定数据读数。在读取压力或温度值时模块在停止串的最后一位通过对DOUT管脚从低到高的电平转换来确认。但确认信号后,要求SCLK有两个额外的时钟。随后由微处理器将其保持在低电平,直到在DOUT上出现由高到低的电平变化以指示转换结束。这个信号也可以用来在微处理器中产生一个中断。此时微处理器通过在SCLK管脚给出另外17个时钟来读出l6位字,但保持SCLK信号时,可能中断数据读出串。3.2.4 软件补偿读取压力、温度和软件补偿的具体流程如图18。操作时,首先通过串口读出Word1-Word4,当微处理器对MS5561C的接口复位后,可以进行一次这种操作。其次,采用位方式进行逻辑和移位操作来提取C1-C6的补偿参数。为了测量压力,微处理器必须通过串口循环来读取16位压力和温度值,然后按图18中所示的算法,用D1、D2和C1-C6计算出补偿后的压力。所有计算均可以用16位有符号变量,这样,乘法结果可能升为32位有符号数。按图18的流程,每步乘法运算之后都有一次除运算除法可以通过二进制移位操作来完成,它可确保除法的结果小于65536图3-12 软件算法及补偿3.3 LCD液晶显示3.3.1 LCD显示原理字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD。液晶显示器各种图形的显示原理:u 线段的显示:点阵图形式液晶由M*N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1个字节的8位,即每行有16个字节,共16*8=128个点组成,屏上64*16个显示单元与显示RAM区1024字节相对应,每一字节的容和显示屏上相应位的暗亮对应。例如屏第一行的暗亮由RAM区的000H00FH的16个字节的容决定,当000H=FFH时,则屏幕的左上角先是一条短亮线,长度为8个点;当3FFH=FFH时,则屏幕的右下角显示一条短亮线;当000H=FFH,=00H,=00H,=00H, =00H时,则屏幕的顶部显示一条由8段亮线和8条暗线所组成的虚线。这就是LCD的基本显示原理。u 字符的显示 有LCD显示一个字符时比较复杂,因为一个字符有6*8或8*8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每个字节的不同位为1,其它的为0,为1的点亮,为0的不亮。这样一来就组成某个字符。但由于带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。u 汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取到要显示的汉字的点阵码一般用汉字模提取软件,每个汉字战32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位子加1,送第二字节,换行按列对齐,送第三字节直到32B显示完就可以在LCD上得到一个完整汉字。3.3.2 LCD1602介绍u LCD1602实物目前常用的液晶显示模块有1601、1602、2002、4002行等。根据设计要求和价格因素,此次设计选泽的显示模块为LCD1602。1602型字符型液晶显示模块实物图如下图3-13。图3-13 LCD1602实物u LCD1602的外形基本参数LCD1602分为带背光和不带背光两种,及控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。LCD1602尺寸如下图3-14。图3-14 LCD1602尺寸图u LCD1602主要技术参数 显示容量:16*2个字符芯片工作电压:2.2-3.3V工作电流:2.0mA模块最佳工作电压:3.0V字符尺寸:2.95*4.35W*Hmmu LCD1602引脚功能说明LCD1602采用标准的14引脚无背光或16引脚带背光接口,各引脚接口说明如图3-15。图3-15 引脚说明图LCD160216脚接口说明:*第1脚:VSS为地电源*第2脚:VDD接3V正电源*第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生鬼影,使用时可以通过一个10K的电位器调整对比度*第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。*第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。*第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。*第714脚:D0D7为8位双向数据线。*第15脚:背光源正极。*第16脚:背光源负极。u LCD1602在原理图中的连接LCD1602与单片机连接如下图3-16。图3-16 LCD1602接线图3.4 Protel99SE的使用经过前面的努力,数字气压计硬件电路的设计在已经完成, PROTEL99SE是一个全32位的电路板设计软件,使用该软件可以容易地设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真。在这里主要用它来绘制电路原理图和生成印制电路板。下面简要说明一下我们上面用PROTEL画好的电路原理图的设计步骤如下:1设置原理图设计环境。其中,工作环境设置是使用Design/Options和Tool和Preferences菜单进行的,画原理图环境的设置主要包括图纸大小、捕捉栅格、电气栅格、模板设置等。2放置元件,将电气和电子元件放置在图纸上。3原理图布线。元件一旦放置在原理图上,不需要用导线将元件连接起来,连接时一定要符合电气规则。4编辑和调整。编辑元件的属性。包括元件名、参数、封装图等。调整元件和导线的位置等操作。5检查原理图。使用电气规则功能检查原理图的连接是否合理和正确。给出检查报告,若有错误则要根据错误进行改正。6生成网络表。所谓网络表就是元件名、封装、参数及元件之间的连接表,通过该表可以确认各个元件和它们之间的关系。7打印原理图。对电路板的设计主要分为以下几个步骤;1使用原理图编辑器设计原理图,进行电气检查并生成原理图的网络表。2进入电路板环境,使用电路向导确定电路板的层数、尺寸等电路板参数。3使用Design/Netlist菜单,调入网络表。4布置元件,就是将元件合理地分布在电路板上。自动布置元件或人工布置元件,多次布置直到自己满意为止。5完成修饰等工作,完成整个电路板的设计。3.5 原理图和电路板图图3-17 原理图图3-18 PCB图图3-19 3D图4 软件设计4.1C语言开发单片机C语言是一种编译型的结构化程序设计语言,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统11。其优势如下:1可以大幅度加快开发进度,程序量越大,用C语言就越有优势。2无需精通单片机指令集和具体的硬件,也能够编出符合硬件实际专业水平的程序。3可以实现软件的结构化编程,使得软件的逻辑结构变得清晰、有条理、便于开发小组计划任务、分工合作。源程序的可读性和可维护性都很好。4省去了人工分配单片机资源的工作,在汇编语言中要为每一个子程序分配单片机的资源。在使用C语言后,只要在代码中申明一下变量的类型,编译器就会自动分配相关资源,根本不需要人工干预,从而有效地避免了人工分配单片机资源的差错。5汇编语言的可移植性很差,而C语言只要将一些与硬件相关的代码作适当的修改,就可以方便地移植到其它种类的单片机上。6C语言提供auto、static、flash等存储类型,针对单片机的程序存储空间、数据存储空间及EEPROM空间自动为变量合理地分配空间,而且C语言提供复杂的数据类型,极增强了程序处理能力和灵活性。C编译器能够自动实现中断服务程序的现场保护和恢复,并且提供常用的标准函数库,供用户使用。并且C编译器能自动生成一些硬件的初始化代码。7对于一些复杂系统的开发,可以通过移植的实时操作系统来实现。正由于C语言在系统开发中的优势,这次设计的所有程序设计都将采用C语言编写。4.2 计算气压值根据从MS5561C中读取的D1、D2、W1W4计算出温度和气压值。先将W1W4转换为C1C6,转换关系如图4-1所示。图4-1 W1W4和C1C6转换关系C1C6含义如下:C1:压力灵敏度。C2:压力偏移量。C3:压力灵敏度的温度系数。C4:压力偏移量的温度系数。C5:参考温度。C6:参考系数。D1:压力传感器ADC输出值。D2:温度传感器ADC输出值。计算过程如下:、 计算参考温度值。 UT1=8*C5+20224 计算实际温度和参考温度的差值进行压力补偿。DT=D2-UT1 计算实际温度。 TEMP=200+DT*/210 计算实际温度偏移量。 OFF=C2*4+*DT/212 实际温度灵敏度。 SENS=C1+/210+24576 X=SENS*/214-OFF 压力值的温度补偿。 P=X*10/25+250*104.3 计算高度值气象学研究表明,在垂直方向上气压随高度增加而降低。例如在低层,每上升100m气压变降低10mb;在56Km的高空,高度每增加100m,气压便会降低7mb;而高度近曾一步时,即到910Km的高空之后,高度每增加100m,气压便会降低5hPa。同样,若空气中有下降气流时,气压会增加;若空气中有上升气流时,作用于空气柱底部的气压就会减小。一般把作用于单位面积上空气柱的重量称为大气压力。由于地球引力的影响,大气密度随高度逐渐减小,大气压力也随高度减小,如图4-2所示。图4-2 大气压力和高度关系根据大气气体分子分布和理想气体的等温过程,可以得到如下关系:*海平面气压P0=101325Pa*海平面温度T0=288.15K*对流层温度梯度Tgradiemt=6.5/1000K/m*平流层温度-56.46*气体常数 R=R*/M0R=287.052J/*100Pa=1mbar有气压高度关系式的气压高度转换表如下图4-3所示:图4-3 气压高度转换表4.4 程序流程程序主要流程如图4-4所示:*由中断产生主时钟信号,使传感器正常工作;*读取压力值D1和温度值D2;*读取参数字节W1W4;得到参数C1C6;*计算温度值;*计算温度补偿值,得到实际气压值;*根据气压计算高度值。开始传感器初始化读D1、D2读W1、W2、W3、W4W3计算C1C6计算温度、气压图4-4 流程图4.5 Keil软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存储器中。Keil u Vision2 ADE是Keil software公司的产品,它集项目管理、编译工具、代码编写工具、代码调试以及完全仿真于一体,适合个人开发或人数少、对开发过程的管理还不成熟的开发团体。u Vision2本身自带项目管理器,其开发流程步骤如下:u 开启u Vision2,建立工程文件并且从器件数据库里挑选出项目实际使用的器件。u 建立一个新的源文件,并且把这个源文件添加到工程中去。u 为单片机添加并且设置启动代码。u 设置硬件相关的选项。u 编译整个工程并且生成下载到存储器用的HEX文件。4.6 主要程序4.6.1 程序定义与初始化/*气压计高度计程序*/#include #include #include #include #include #include #include #include #include #define TIMER0H 0xFF;/定义串口速率#define TIMER0L 0xE9;sbit MCLK=P14;sbit SCLK=P15;sbit DI=P16;sbit DOUT=P17;#define CLKDELAY 5#define RDINTERVAL 100#define FILTERPARA 0.125/SPI接口DI线读不同容时的输出数据const unsigned char SPI_RET21=1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0;const unsigned char SPI_D112=1,1,1,1,0,1,0,0,0,0,0,0;const unsigned char SPI_D212=1,1,1,1,0,0,1,0,0,0,0,0;const unsigned char SPI_W112=1,1,1,0,1,0,1,0,1,0,0,0;const unsigned char SPI_W212=1,1,1,0,1,0,1,1,0,0,0,0;const unsigned char SPI_W312=1,1,1,0,1,1,0,0,1,0,0,0;const unsigned char SPI_W412=1,1,1,0,1,1,0,1,0,0,0,0;/气压高度转换const unsigned char SPI_HT234= 1000,1130,12256,16212,1130,1300,10758,15434,1300,1500,9329,145141,1500,1730,8085,13630,1730,2000,7001,12722,2000,2300,6069,11799,2300,2650,5360,10910,2650,3000,4816,9994,3000,3350,4371,9171,3350,3700,4020,8424,3700,4100,3702,7737,4100,4500,3420,7014,4500,5000,3420,7014,5000,5500,2908,5575,5500,6000,2699,4865,6000,6500,2523,4206,6500,7100,2359,3590,7100,7800,2188,2899,7800,8500,2033,2151,8500,9200,1905,1456,9200,9700,1802,805,9700,10300,1720,365,10300,11000,1638,-139,;unsigned int D1,D2,W1,W2,W3,W4;/SPI口CLK延时宽度子程序void spi_dly int i; fori=0;i i=1; /SPI接口复位void spi_reset int 1; spi_dly;fori=0;i DI=SPI_RETi; spi_dly; SCLK=1; spi_dly; SCLK=0; spi_dly; spi_dly; 4.6.2读D1D2字节子程序unsigned int spi_rdd unsigned int retval; int i; unsigned char rdbit; spi_dly fori=0;i if DI=SPI_D1i; else if DI=SPI_D2i;else retval=0; return 0;spi_dly;SCLK=1;spi_dly;SCLK=0; spi_dly;/wait adc conversion rdbit=DOUT; while rdbit=DOUT; retval=0; fori=0;i SCK=1; spi_dly; rdbidt=DOUT; SCLK=0; spi_dly; if retval=retval+0; else retval=retval+1; ifi retval=retval1; 4.6.3读W1W4字节子程序unsigned int spi_rdw unsigned int retval; int i; unsigned char rdbit; spi_dly; fori=0;i if DI=SPI_W1i; else if DI=SPI_W2i; else if DI=SPI_W3i; else if DI=SPI_W4i; else retval=0; return 0; spi_dly; SCLK=1; spi_dly; SCLK=0; spi_dly; SCLK=1; spi_dly; SCLK=0; fori=0;i SCLK=1; spi_dly; rdbit=DOUT; SCLK=0; spi_dly; if retval=retval+0; else retval=retval+1; ifi retval=retval1; return retval; 4.6.4计算高度子程序float spi_h int i,pos,flag; float h; flag=0; fori=0;i if=SPI_HTi0&p pos=i; flag=1; break; if ifp pos=0; else ifSPI_HT221 pos=22; else pos=0; h=SPI_HTpos3-*SPI_HTpos2/2048; return h; 4.6.5计算子程序void spi_proc unsigned int c1,c2,c3,c4,c5,c6,d1,d2,w1,w2,w3,w4; long utmp; float dt,temp,off,sens,x,p,h; float temp2,p2;/printf D1=%x D2=%x W1=%x W2=%x W3=%x W4=%xrn
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!