《基于单片机控制的数字气压计设计与实现(有用).doc》由会员分享,可在线阅读,更多相关《基于单片机控制的数字气压计设计与实现(有用).doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录目录11 概述31.1课题背景31.2 技术概况与发展趋势31.3数字胎压计系统设计的意义41.4 国外相关技术42 系统总体设计62.1 设计思路分析62.1.1 设计方案一:62.1.2 设计方案二:62.2 系统总体结构72.3系统各功能模块的设计思想72.3.1 A/D转换模块72.3.2 数据处理模块72.3.3 显示模块72.4气压传感器的选择82.5 A/D转换器件的选择92.6 三端稳压器92.7 数码管显示92.7.1 数码管静态显示92.7.2数码管动态显示92.8 系统配置103 硬件电路设计113.1单片机电路部分113.1.1 主要芯片介绍113.2 气压传感和
2、V/F转换电路部分133.3 胎压计电源与单片机电路部分163.4 pcb制作184 软件电路设计204.1用C语言开发单片机的优势204.2 如何由频率计算出气压值204.3程序流程图215 系统调试与仿真225.1 Keil软件介绍225.2 PROTEUS软件介绍225.3 单片机调试仿真235.4原理图检查调试245.5 器件连接调试245.6 PCB检查255.7程序调试仿真27总结28致29参考文献30附录131概述1.1课题背景如今,随着高速公路网的蓬勃兴起,交通的日趋发达,车辆行驶速度的不断攀升,交通隐患的防问题迫在眉睫,如因车胎漏气和爆炸等原因造成的交通事故,很多是由轮胎的工
3、作温度过高或者不合理胎压引起的。研究汽车轮胎胎压计,就对现代汽车行驶时的经济性、安全性和操纵稳定性具有尤为重要的现实意义。在汽车的高速行驶过程中,轮胎故障是所有驾驶者最为担心和最难预防的,也是突发性交通事故发生的重要原因。据相关统计资料数据表明,目前我国在高速公路上发生的交通事故有70%80%是由于轮胎问题引起的,其中将近50%为爆胎事故。怎样防止爆胎已成为安全驾驶的一个重要课题。据专家分析,保持标准的车胎气压行驶和与时发现车胎漏气是防止爆胎的关键。为此,基于解决此类问题的各种胎压监测系统(TPMS)产品胎压计应运而生。轮胎气压计属于“事前主动”型安全保护装置,在轮胎出现危险征兆时与时报警,提
4、醒驾驶员采取措施,将事故消灭在萌芽状态,确保汽车在行驶过程中始终处于安全状态。同时,利用胎压计获得轮胎信息,可以减少油耗,延长轮胎的使用寿命,也可以为底盘综合控制系统提供相关的信息和数据。我们的设计的是一种基于单片机的数字气压计的设计,主要针对的是汽车轮胎胎压计的设计。汽车轮胎胎压计是通过气压传感器获得与汽车轮胎胎压相对应模拟电压值,并经过VF变换输入到单片机进行处理,从而实时显示相应气压值。由于使用胎压计有一定的参数要求,设计数字气压计时要1仔细了解这些参数以防止使用不当而损坏胎压计。汽车轮胎胎压计采用高性能绝对压力传感器,屏幕显示出高准确度的汽车轮胎胎压,实现了对轮胎压力的实时监测。当汽车
5、轮胎压力处于非正常状态运行时,通过报警来通知驾驶员,控制轮胎爆胎发生,以达到安全驾驶的目的。1.2 技术概况与发展趋势TPMS (Tire Pressure Monitoring System) 轮胎压力监视系统,主要用于在汽车行驶时实时的对轮胎气压进行自动监测。目前各国研制的轮胎气压报警系统主要分为两种类型:一种是间接式,它通过汽车ABS(防抱制动系统)的轮速传感器与轮胎的力学模型,间接求出轮胎气压,以达到监视轮胎气压的目地;另一种是直接式,它利用安装在每一个轮胎里的以锂离子电池为电源的压力传感器来直接测量轮胎的气压,并通过无线调制发射到安装在驾驶台的监视器上,而监视器随时显示各种轮胎气压,
6、驾驶者可以直观地了解各个轮胎的气压状况,当轮胎气压太低或有渗漏时,系统就会自动报警,确保行车安全。市场研究机构Strategy Analytics的预测表明,直接系统技术将成为主流技术,2008年后所占份额将超过95%。因为如果要使用间接式胎压监测系统,前提是车辆必须有ABS系统。加上会影响轮胎转速的因素,除了胎压异常所导致外,行驶的路面也是主要原因,如行驶于雪地或湿滑路面时,空转会使某一轮胎的旋转次数大幅提高。或者是当车子高速转弯时,车胎的抓地力已经无法克服过弯时的离心力,外侧轮胎与侧轮胎的转动次数便有明显差异,这些情况便会出现错误警告信息。另外,当四条轮胎的胎压同时下降,系统便失去判定的准
7、则,警告信息自然就不会出现。而且侦测功能仅在车辆行驶中才能发挥作用,对备胎或当车辆停滞时,便无法判断,还会出现误报现象。汽车高速行驶中,由于轮胎的压力不正常而造成爆胎是驾驶员难以预防的,也是突发性和恶性交通事故发生的重要原因。引起轮胎漏气和爆胎的原因主要有:(1)轮胎工作温度过高;(2)轮胎气压过大;(3)轮胎使用时间过长;(4)轮胎负荷过大;(5)汽车行驶速度过快。为使汽车能够处于安全的驾驶状态,驾驶者必须在行车过程中实时了解轮胎的超压、欠压、温度等工作状态,我们设计的基于单片机的汽车轮胎胎压计具有以下的功能:(1)实时监测轮胎的压力情况;(2)当某个轮胎处于欠压状态时,相应的欠压报警指示灯
8、亮。当汽车轮胎压力处于非正常状态运行时,通过报警来通知驾驶员,控制轮胎爆胎发生,以达到安全驾驶的目的。1.3数字胎压计系统设计的意义由于汽车的迅速普与,人们对驾驶安全性与舒适性的追求越来越高,随车携带数字气压计可以保证人们安全驾驶,有效地降低由于爆胎导致的交通事故发生地概率。而服务商需要的是一种物美价廉的数字气压计,以满足有车一族的需要。本课题设计充分利用了MPX4105芯片的功能,它满足数字气压计采集、控制和数据处理的需要,可提高系统稳定性和抗干扰能力。同时,由于大量的工作由单片机软件来实现,简化了设计电路,且调整方便、可兼顾的指标多,从而大大降低了成本。另外,作为一种功能强大的平台,该数字
9、气压计具有很好的功能扩展性,具有精度高、稳定性好、功能易于扩展等优点,为仪器与电子产品设计后续技术升级,以进一步满足市场的需要提供了条件。1.4国外相关技术对轮胎爆胎进行预警是保障汽车安全行驶的关键所在,已成为汽车行业研究的热点问题。在轮胎爆胎预警系统与相关技术的研究发面,美国、日本、德国、法国、英国在近几年都取得了突破性的进展,形成了性能和功能完善5的轮胎压力监测系统产品。从近年发布的世界新车资料来看,林肯大陆、奔驰、宝马、标志、道奇等中高档车均安装了轮胎压力监测装置,用于监测汽车行驶过程中轮胎气压,车主控机板显示模块实时显示轮胎气压状态。据中国汽车工业协会相关市场调查表明,国轮胎爆胎预警系
10、统的相关产品有推出,但都是技术性能不甚完善简易系统产品,存在以下缺点:系统工作寿命极短;系统在低温或高温环境下失效;工作可靠性较差。而性能可靠、功能完善、技术成熟的产品均是一些国外知名公司的品牌产品,但价格较为昂贵。因此,研制性能可靠、功能完善并且价格能为当前多数国消费者所接受的轮胎爆胎预警技术产品很有必要。国汽车行业正迫切需求成熟的轮胎爆胎预警系统与产品的投放市场以解决因轮胎爆胎而引起的行驶安全性问题。33 / 332 系统总体设计2.1 设计思路分析2.1.1 设计方案一:采用单片机主控,通过压力传感器、A/D转换采集数据信息,经过含有单片机的检测系统检测,将结果传送到单片机控制的主控器,
11、数据通过显示器显示。原理框图如下:显示器单片机控制的检测系统单片机控制的主控制器A/D转换器压力传感器总线图2-1 方案一原理图2.1.2 设计方案二:采用集成的单片机主控,通过压力传感器将气压信号送入带A/D转换的单片机中,以与在相关模拟分立元件的辅助下进行A/D转换以与其它的数据处理,将处理的结果送显示部分进行显示。原理原理框图如下:气压传感器显示器微处理器89C52图2-2 方案二原理图综上所述,方案一电路虽然与方案二类似,都较方案一调整方便、可兼顾的指标多,但方案一利用PC机平台实现软件操作,在操作运行复杂,并且性价较底,因为耗费较大,所以在实际应用中一般不用,所以我们选择第二种方案。
12、设计51单片机数字气压计系统时,需要考虑下面4个方面的容。选择合适的气压传感器芯片,这要根据实际需要以与各种气压传感器的性能参数来决定。选择合适的A/D转换器件,它的作用是将气压传感器输出的模拟电流或电压信号转换为数字信号。设计单片机和A/D转换器件的接口电路。实现气压信息采集并输出的软件设计。2.2 系统总体结构本系统的总体结构框图如图2-1所示。基于单片机的数字气压计设计初始化模块A/D转换模块数据处理模块显示模块图2-3 单片机数字气压计系统结构框图测量时被测气压由气压传感器转换为模拟的电压输出,此输出信号不能直接交由单片机处理。因此,需要经过V/F转换模块把气压传感器输出的模拟电压信号
13、转换为数字脉冲(其频率随输入电压呈线性变化)。通过单片机接收该脉冲信号,得到单位时间获得的脉冲数,依据电压与频率的线性关系式计算出所对应的实际气压值,最后通过数码管显示电路显示给用户。2.3系统各功能模块的设计思想通过对单片机各个端口的设置,以与定时器工作方式和串行口工作方式的选择,并对定时器和串行口进行初始化用以实现对单片机和各个功能模块芯片之间通讯联络的设定。在主程序模块中我们关键是使单片机初始化,以与分配地址空间交代程序中各个变量等。其中最为关键的是连接子程序的各个功能模块。2.3.1 A/D转换模块单片机接受传感器的电压值为模拟信号,它要和A/D转换模块的锯齿波发生装置发送过来的标准模
14、拟信号相比较,即通过P1.0和P1.1引脚进行比较,同时开发定时器0,当待测模拟信号超过标准模拟信号时,P3.6引脚信号将会发生变化,此时的定时器0的值通过量纲转化就得到了相应的数字信号。2.3.2 数据处理模块数据处理模块主要是对A/D转换模块的数据进行多次采集,并且对采集的数据进行处理,此处理过程主要是对采集的数据进行初值定义以与相应的移位处理,并且把处理好的数据送入相应的缓冲区,为后面的显示模块作好准备。2.3.3 显示模块用单片机芯片AT89C52的P0.0/AD0P0.7/AD7端口接数码管的ah端,8位数码管的S1S5通过AT89C52的P2.0P2.4端口来控制选通每个数码管的位
15、选端。在数据的显示模块中,我们采用的是LED动态显示的方式。其具体的实现过程在上述设计思想中详细说明。7段数码管选用共阳连接方式,通过端口输出编码后的段码,对应笔画为“高电平“时点亮。2.4气压传感器的选择气压传感器对于数字气压计设计的实现至关重要,需要综合实际的需求和各类气压传感器的性能参数加以选择。气压传感器的主要性能参数如下。测量围即所能测量的大气压力围,单位为kPa。测量精度测量结果(电流或电压)的精度。温度补偿围一般要选用具有温度补偿能力的气压传感器,因为温度补偿特性可以克服半导体压力敏感器件存在的温度漂移问题。测量的是否是绝对气压值绝对气压值对应的即是实际的气压值,显然要实现数字气
16、压计需要测量绝对气压值的气压传感器。数字气压计显示的是绝对气压值,同时为了简化电路,提高稳定性和抗干扰能力,要求使用具有温度补偿能力的气压传感器7。经过综合考虑,我们选用美国摩托罗拉公司的集成压力传感器芯片MPX4105作为气压传感器。MPX4105可以产生于所加气压呈线性关系的高精度模拟输出电压,它具有以下特点:供电围:4.855.35V,典型值为5.1V。测量围:15105kPa。工作温度围:085。温度补偿围:-40+125。测量精度为1.7%VFSS。最低气压对应的输出电压VOFF为0.1840.428V,典型值为0.306V;最高气压对应的输出电压VOFF为4.8044.988V,典
17、型值为4.896V;满刻度输出电压间距VFSS的典型值为4.590V。理想的微处理器接口。2.5 A/D转换器件的选择气压传感器MPX4105输出的是模拟电压,因此,必须进行A/D转换才能交由单片机处理。关于A/D转换,其模块的特点是:转换分辨率为10位,最多含8个输入通道和一个部温度传感器。我采用一种电压/频率(V/F)转换电路来实现模拟电压的数字化处理。V/F转换电路由V/F器件实现。V/F器件的作用是将输入电压的幅值转换成频率与输入电压幅值成正比的脉冲序列,虽然V/F器件本身还不能算做量化器,但加上定时器与计数器以后也可以实现A/D转换。V/F器件的突出特点就是它能够把模拟电压转换成抗干
18、扰能力强、可远距离传送并能直接输入单片机接口的脉冲序列。通过测试V/F的输出频率。可以实现A/D转换功能。针对电路的实际需要,并考虑到外围电路实现的难易程度和相应的性能指标,我选用国家半导体公司的芯片LM331来实现A/D转换。LM331是一款高精度电压/频率转换芯片,它具有以下特点:最大非线性误差为0.01%。可单、双电源供电,电压围为540V。脉冲输出可兼容任何逻辑形式。部具有温度补偿能隙基准电路,因而具有极佳的温度稳定性,最大温漂为50ppm/。宽的满量程频率围:1Hz100KHz。2.6 三端稳压器本设计中的LM331工作电源采用+15V,但是单片机、MPX4105等其他芯片需要+5V
19、供电,因此还需要设计专门的供电电路以满足整个系统的电源需求。选用摩托罗拉公司的三端低电流线性稳压芯片MC78L05作为电源电路。其输入电压围:2.624V,输出+5V 固定电压;具有部短路电路限制和热过载保护功能,无需外部元器件。2.7 数码管显示2.7.1 数码管静态显示当显示器显示某一个字符时,相应的发光二极管恒定的导通或截止,这种显示方式每一位都需要一个8位输出口控制。静态显示时,较小的电流能得到较高的亮度且字符不闪烁,当显示器位数较少时,采用静态显示的方法是合适的。2.7.2数码管动态显示一位一位地轮流点亮显示器各个位,对于显示器的某一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能
20、可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。若显示器的位数不大于8,则控制显示器公共极电位只需一个I/O口,控制显示器的各位所显示的字型也只需一个8位口。单个LED是由段发光二极管构成的显示单元。有10个引脚,对应于个段、1个小数点和2个公共端9。本设计中需要用5个LED组成显示单元,共阴极接法,所以我们采用数码管动态显示。2.8 系统配置我们以AT89C52单片机为整个系统的核心,通过气压传感器对气压信号的采集、控制、放大等处理完成气压参数的自动获取,以与进行数字显示等等。在此过程中需要利用AT89C52单片机部的
21、定时器对其进行度量,再使用软件模块对其进行处理,即得到了A/D转换的结果。进行多次A/D转换后,我们就可以采集到一脉冲序列的数据,对这些数据进行适当的处理,最后通过数码管显示电路显示给用户,进而达到了我们对整个系统设计的基本要求。3 硬件电路设计经过之前的分析,单片机系统中的数码管显示电路,它通常由译码器、驱动器和显示器等部分组成,是将采集到得气压值通过数码管显示的电路。硬件电路离不开功能性器件,因此首先来看看本数字胎压计所采用的主要器件。3.1单片机电路部分3.1.1 主要芯片介绍89C52单片机89C52单片机的40条引脚按功能来分,可以分为3部分,电源与时钟引脚、控制引脚和输入/输出引脚
22、。如下图3-1所示:图3-1 单片机引脚图89C52单片机引脚功能主电源与时钟引脚此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。(1)Vcc(40脚):接+5V电源,为单片机芯片提供电能。(2)Vss(20脚)接地。(3)XTAL1(19脚)在单片机部,它是一个反向放大器的输入端,该放大器构成了片的振荡器,可提供单片机的时钟控制信号。(4)XTAL2(18脚)在单片机部,接至上述振荡器的反向输出端。控制引脚此类引脚包括RESET(即RSR/VPD)、ALE/PROG、PSEN、EA/VPP,可以提供控制信号,有些具有复用功能。(1)RSR/ VPD(9脚):复位信号输入端
23、,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位(REST)。复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源(VPD),以保持部RAM中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压围(50.5V)时,VPD就向部RAM提供备用电源。(2)ALE/PROG(30脚):ALE为地址锁存允许信号。当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两
24、个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个LSTTL负载。(3)PSEN(29脚):程序存储器允许输出控制端。此输出为单片访问外部程序存储器的读选通信号。在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。(4)EA/VPP(31脚):EA功能为外程序存储器选择控制端。当EA端保持高电平时,单片机访问部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器的程序。输入/输出引脚此类引脚包括P0口、P1口、
25、P2口和P3口。(1)P0(P0.0P0.7)是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位与数据总路线分时复用口,可带8个LSTTL负载。(2)P1(P1.0P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有部上拉电阻,可带4个LSTTL负载。(3)P2(P2.0P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。(4)P3口功能表,如下表1.1所示表1.1 P3口功能表P3口各个位的第二功能P3口的位第二功能说明P3.0RXD串行数据接收口
26、P3.1TXD串行数据发射口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写信号P3.7RD外部RAM读信号3.2 气压传感和V/F转换电路部分MPX4105压力传感芯片气压传感器选用摩托罗拉公司生产地集成压力传感芯片MPX4105,其引脚分布如图3-2所示。 MPX4100123456VOUT GND VCC NC NC NC图3-2 MPX4105引脚分布图各引脚功能说明如下:VOUT(1脚):电压输出脚。GND(2脚):接地端。NC(4、5、6脚):空引脚,用于芯片部连接,悬空不适用。LM331电
27、压/频率转换器电压/频率转换器选用国家半导体公司的高精度V/F转换芯片LM331,其引脚分布如图3-3所示。LM33112347665CO RefCFOGNDVCCCmpInThreR/C图3-3 LM331引脚分布图各引脚功能说明如下:CO(1脚):电流输出脚。RefC(2脚):基准电流脚。此引脚可接一固定电阻串联一个可变电阻器的组合,用于调整转换增益。FO(3脚):脉冲序列输出脚。该序列的频率值对应于输入电压的脉冲序列。GND(4脚):接地端。R/C(5脚):组容网络引脚。Thre(6脚):阈值电压脚。芯片部的电压比较器会对此引脚上的电压和7脚CmpIn上的电压作比较。CmpIn(7脚):
28、比较器电压输入脚。需要进行V/F转换的电压经过低通滤波后由此引脚输入。VCC(8脚):电源脚。可采用单、双电源供电,输入电压540V。MC78L05电源电路由于数字胎压计采用的是+15V电源供电,LM331工作于+15V,但是单片机、MPX4105等其他芯片需要+5V供电,因此还需要设计专门的供电电路以满足整个系统的电源需求。电源电路选用摩托罗拉公司的三端低电流线性稳压芯片MC78L05。MC78L05具有以下特点:输入电压围:2.624V,输出+5V固定电压;具有部短路电路限制和热过载保护功能;无须外部器件。其引脚分布如图3-3所示。各引脚功能说明如下:Vout(1脚):+5V固定电压输出脚
29、。GND(2脚):接地端。Vin(3脚):电压输入脚,可输入的电压围为2.624V。 MC78L05123Vout GND Vin图3-4 MC78L05引脚分布图数字胎压计的硬件电路可分为4个部分:气压传感器、V/F转换电路、单片机电路和电源电路。气压传感和V/F转换电路的原理图如图3-5图3-5气压传感和V/F转换电路的原理图基于MPX4105的数字胎压计系统气压传感与V/F转换电路原理图图3-5中,U3为气压传感芯片MPX4105,它工作于+5V电压,将被测电压转换为输出电压(对应图中网络标号为Vin),送至V/F转换电路。电阻R5和电容C7构成典型的去耦合滤波电路。U2为V/F转换芯片
30、LM331,它工作于+15V电压,此电路的设计可参考LM331的芯片资料。在此电路中,电压Vin和输出脉冲FO的频率fo的转换关系满足公式(1)。Fo=Kvin (1)其中,K=, Rs=R2+R3 (2)电路中,Rt、Ct和RL的典型值分别为6.8k、0.01pf和100k,Rs由一个定值电阻R2和一个可变电路R3串联组成,其中,R2为22k,R3的最大阻值为12k,通过可变电阻R3调节Rs的阻值可以实现对电路转换增益的调整。气压的变化引起Vin的变化,而Vin在满刻度输出电压间距V变化,V典型值为4.590V,所以Vin变化围很小,那么根据fo=KVin的关系式,必须增大K值,才能提高测量
31、的精度。fo通过单片机的定时/计数器1的计数测得,该计数器的计数围为065536,500ms计数频率1次。因此,K值的选取还要考虑到计数器的计数围。综合考虑之后,将K值设为2000,这样代入式(2)计算,可知R3的阻值应调节到6.424k。图3-5中,Cin和Rin构成低通滤波器,滤除输入电压信号中的干扰脉冲。其中,Cin取0.1,Rin取100k,C的取容值为1的漏极电流小的电容。3.3 胎压计电源与单片机电路部分数字胎压计的设计的电源与单片机电路原理图如图图3-6所示图3-6 基于MPX4105的数字胎压计系统设计与单片机电路原理图图3-6中,U4为电源转换芯片MC78L05,它将+15V
32、电压转换为+5V电压,提供单片机和气压传感芯片使用。U1为单片机芯片AT89C52,工作于11.592MHz时钟,它的P3.5脚(定时/计数器1外部脉冲输入端)和FO相连,对脉冲序列计数,以获取频率信息,从而转换为气压值。U1的P0口和P2口是和数码管显示电路的接口,其中,P0口味8位段码,P2口提供5位位码(5位7段数码管显示),数字显示电路是许多数字设备不可缺少的部分。数字显示电路通常由译码器、驱动器和显示器等部分组成 图3-7 数字显示电路组成方块图数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显
33、示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。最后给出该课题设计的完整原理图,如下图3-8所示:图3-8 电路完整原理图3.4 pcb制作经过前面的努力,数字气压计硬件电路的设计在已经完成, PROTEL99SE是一个全32位的电路板设计软件,使用该软件可以容易地设计电路原理图、画元件图、设计电路板图、画元件封装图和电路仿真。在这里主要用它来绘制电路原理图和生成印制电路板。下面简要说明一下我们上面用PROTEL画好的电路原理图的设计步骤如下:(1)设置原理图设计环境。其中,工作环境设置是使
34、用Design/Options和Tool和Preferences菜单进行的,画原理图环境的设置主要包括图纸大小、捕捉栅格、电气栅格、模板设置等。(2)放置元件,将电气和电子元件放置在图纸上。(3)原理图布线。元件一旦放置在原理图上,不需要用导线将元件连接起来,连接时一定要符合电气规则。(4)编辑和调整。编辑元件的属性。包括元件名、参数、封装图等。调整元件和导线的位置等操作。(5)检查原理图。使用电气规则功能(ERC)检查原理图的连接是否合理和正确。给出检查报告,若有错误则要根据错误进行改正。(6)生成网络表。所谓网络表就是元件名、封装、参数与元件之间的连接表,通过该表可以确认各个元件和它们之间
35、的关系。(7)打印原理图。对电路板的设计主要分为以下几个步骤;(1)使用原理图编辑器设计原理图,进行电气检查(ERC)并生成原理图的网络表。(2)进入电路板(PCB)环境,使用电路向导确定电路板的层数、尺寸等电路板参数。(3)使用Design/Netlist菜单,调入网络表。(4)布置元件,就是将元件合理地分布在电路板上。自动布置元件或人工布置元件,多次布置直到自己满意为止。(5)完成修饰等工作,完成整个电路板的设计。4 软件设计就该设计的单片机而言,它的输入信号是具有一定频率的脉冲序列,通过单片机部的计数器可以获得此脉冲序列的频率,此频率对应于某个气压值,如何将频率换算成该气压值是软件设计首
36、先需要考虑的问题。4.1用C语言开发单片机的优势C语言是一种编译型的结构化程序设计语言,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统11。其优势如下:(1)可以大幅度加快开发进度,程序量越大,用C语言就越有优势。(2)无需精通单片机指令集和具体的硬件,也能够编出符合硬件实际专业水平的程序。(3)可以实现软件的结构化编程,使得软件的逻辑结构变得清晰、有条理、便于开发小组计划任务、分工合作。源程
37、序的可读性和可维护性都很好。(4)省去了人工分配单片机资源的工作,在汇编语言中要为每一个子程序分配单片机的资源。在使用C语言后,只要在代码中申明一下变量的类型,编译器就会自动分配相关资源,根本不需要人工干预,从而有效地避免了人工分配单片机资源的差错。(5)汇编语言的可移植性很差,而C语言只要将一些与硬件相关的代码作适当的修改,就可以方便地移植到其它种类的单片机上。(6)C语言提供auto、static、flash等存储类型,针对单片机的程序存储空间、数据存储空间与EEPROM空间自动为变量合理地分配空间,而且C语言提供复杂的数据类型,极增强了程序处理能力和灵活性。C编译器能够自动实现中断服务程
38、序的现场保护和恢复,并且提供常用的标准函数库,供用户使用。并且C编译器能自动生成一些硬件的初始化代码。(7)对于一些复杂系统的开发,可以通过移植(或C编译器提供)的实时操作系统来实现。正由于C语言在系统开发中的优势,这次设计的所有程序设计都将采用C语言编写。4.2 如何由频率计算出气压值信号每一步的变换过程如下:第一步,被测气压经过气压传感器MPX4105转换成电压输出,根据MPX4105的芯片资料可知,输出电压VOUT和大气压P的关系如下VOUT=VCC(0.01P-0.09) (3)这里VCC为+5V,因此可得:VOUT=5(0.01P-0.09) (4)第二步,MPX4105的输出电压V
39、OUT作为输入电压Vin,经过V/F转换电路转变为具有对应频率fo的脉冲序列FO。Vin和FO的这种对应关系如上一节的式(1)所示。综合式(1)和式(4),根据VOUT=Vin,可得:P=+9 (5)式(5)中,fo的单位为Hz,P的单位为kPa,K为V/F转换增益,设计中K值为2000。在软件中,根据式(5)编程计算得到气压值P。程序设定如下:T0为定时器,基本的定时时基50ms。T1为计数器运用部中断0可保证T0定时满500ms后就读取此时计数器的值以计算气压值,使T0、T1均工作于方式1并在P0口送字型码,同时可用P2.0P2.4提供片选码。4.3程序流程图单片机实现数字气压计的程序流程
40、如图4-1所示。开 始设置计时器0设置计数器1While(1);50ms定时器0服务子程序ET0=0;count+;Count=10?ET0=1;TR1=1;调用显示函数计算气压值TR1=0;count=0;图4-1 单片机实现数字气压计的程序流程图5 系统调试与仿真本次设计由我和黄欢欢同学共同完成,本人主要负责硬件方面的工作,而黄欢欢同学主要负责本次设计的软件部分。我们这个设计的仿真软件主要讲述的是Keil软件与Proteus软件的结合与应用。5.1 Keil软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结
41、构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51与A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存储器中。Keil
42、 u Vision2 ADE是Keil software公司的产品,它集项目管理、编译工具、代码编写工具、代码调试以与完全仿真于一体,适合个人开发或人数少、对开发过程的管理还不成熟的开发团体。u Vision2本身自带项目管理器,其开发流程步骤如下:开启u Vision2,建立工程文件并且从器件数据库里挑选出项目实际使用的器件。建立一个新的源文件,并且把这个源文件添加到工程中去。为单片机添加并且设置启动代码。设置硬件相关的选项。编译整个工程并且生成下载到存储器用的HEX文件。5.2PROTEUS软件介绍Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片
43、机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。 对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的
44、pause animation菜单项或pause键暂停系统的运行;或用debug菜单下的stop animation菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。对于软件的分步调试,应先执行debug菜单下的start/restart debugging菜单项命令,此时可以选择stepover、step into和step out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start / restart debuging命令后,在debug菜单的下面要出现仿真中所涉
45、与到的软件列表和单片机的系统资源等,可供调试时分析和查看。运行proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Definecode generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/removesource files命令下,加入单片机硬件电路的对应程序;通过deb
46、ug菜单的相应命令仿真程序和电路的运行情况。5.3 单片机调试仿真这里我们采用proteus的系统总体执行效果调试方法,调试单片机的供应电源和复位电路部分。这里单片机时钟工作在11.0592MHZ,电源电路、晶振电路和复位电路是整个系统正常工作的基础,应首先保证它们的正常工作。如下图5-1所示:图5-1单片机调试仿5.4原理图检查调试应用Protel软件使用电气规则功能(ERC)检查原理图的连接是否合理和正确。给出检查报告,若有错误则要根据错误进行改正。如下图5-2所示:图5-2 原理图检查5.5 器件连接调试电路中各器件的元件名、封装、参数与元件之间的连接通过网络表进行检查,通过该表可以确认各个元件和它们之间的关系。如下图