版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文(设计)轮胎压力监测系统的设计(部)信息工程系测控技术与仪器学生姓名指导教师刘秀敏提交日期I摘要随着汽车工业的发展和道路交通网络的不断扩展,随之引起的交通事故在不断增多,轮胎内部的压力异常已经成为汽车能否安全行驶的重要因素之一,汽车的行驶安全问题也越来越受到大众的关注。经过大量的实验研究表明,当汽车行驶在正常的轮胎充气压力和温度下,可以最大限度的防止爆胎的发生。现阶段,TPMS的研究方法有两种:间接式TPMS和直接式TPMS。本设计是基于STC89C52单片机的直接式轮胎压力监测系统,通过压力传感器BMP085来采集压力、温度信号,然后采用无线通信发射接收模块nRF24L01进行数据传输,数据经过STC89C52处理后,显示在LCD12864液晶屏上,实现气压、温度的无线测量与显示,并且当压力值高于或低于允许正常范围值时发出报警。对于设计本身而言具有使用方便,数据准确,便于维修等特点。而且设计还具有二度开发的潜在性。关键词:STC89C52,轮胎压力,无线通信,监测Withthecontinuousexpansionofthedevelopmentoftheautomotiveindustryandroadtransportnetwork,trafficaccidentsconsequentontherise,abnormaltirepressurehasbecomeanimportantfactorinwhetheramotorvehiclesafety,securityissuesaremoreandmorecarspublicconcern.Afteranumberofexperimentalstudieshaveshownthatwhencarswithtiresinflatedatnormalpressureandtemperature,cangreatlyreducetheincidenceofpuncture.Stage,TPMSsolutionsintwoways:IndirectandDirectTPMSTPMS.ThedesignisbasedmicrocontrollerSTC89C52directtirepressuremonitoringsystem,throughthepressuresensorBMP085tocollectpressure,temperaturesignalandthentransmittingandreceivingmodulenRF24L01wirelesscommunicationsfordatatransmission,dataprocessingafterSTC89C52,LCD12864displayedontheLCDscreen,achievepressure,wirelesstemperaturemeasurementanddisplay,andanalarmwhenthepressureisaboveorbelowthenormalrangeallowed.Forthedesignitselfiseasytouse,accuratedataforeasymaintenance.Andthedesignalsohasthepotentialtodevelopasecondtime.Keywords:STC89C52tirepressurewirelesscommunicationsmonitoring1 21.1选题目的和意义 1.2本选题在国内外的研究状况及发展趋势 2第2章系统功能介绍 42.1系统功能设计 42.2系统总体设计方案 4第3章硬件电路设计 53.1主控模块 3.1.1STC89C52介绍 3.1.2STC89C52单片机最小系统 6 3.3气压、温度检测模块 73.4无线发射接收模块 8 83.4.2nRF24L01工作原理 93.4.3无线发射接收电路图 93.5显示模块 3.6按键模块 3.7报警模块 3.8串口通讯模块 第4章系统软件设计 4.1主程序流程图 4.2子程序流程图 4.2.1气压及温度模块子程序 4.2.2无线通信发送接收模块子程序 4.2.3显示子程序 参考文献 中原工学院信息商务学院毕业论文(设计)2第1章引言汽车时代的到来,改变的不仅仅是人们的代步方式,更有人们的生活方式乃至整个社会的文化。同样,一个时代的典型核心技术产品也带动着整个产业的技术发展趋势。随着家用汽车对现代家庭日常生活的冲击,汽车的行驶安全,不仅仅体现了汽车的性能,更代表着未来汽车工程技术与相关科技的发展方向。智能化系统在我们日常生活中的应用越来越广泛,为社会的文明进步、经济的繁荣发展保驾护航,同时也被大量地应用到汽车等相关产品上口。把现代电子科学技术的发展成果应用到汽车电子技术当中,必将大大增加汽车行驶的稳定性和安全性。1.1选题目的和意义轮胎是汽车重要的组成部分之一,有实验表明,行驶在道路上的车辆,影响轮胎性能的主要因素来自于是汽车轮胎内部的充气压力。轮胎内部的充气压力偏高或者偏低,都会使轮胎的整体性能和使用寿命带来很大的影响。轮胎内部的气压过高时,轮胎与地面接触面积变小,轮胎外表面的中部区域承受的压力增高,磨损加剧,轮胎的底部花纹开裂。此时轮胎的刚度增大,起不到应有的缓冲作用,汽车的稳定性降低,轮胎的回正力矩变小,从而促使汽车的可操作性能降低。在行驶途中如果遇到障碍物,容易致使轮胎发生破裂,导致轮胎的整体性能下降和使用寿命缩短。而轮胎与行驶路面之间动载荷增大,表明轮胎与路面之间的最小正压力减小,从而降低车轮本身的地面附着力,影响汽车的行驶安全性。气压不足同样对轮胎有很大的影响,有资料表明,约有85%有缺陷的轮胎始于慢渗气(自然渗透),有25%的轮胎损坏是由于慢渗气造成的。因此由轮胎气压引起的交通事故比例较高,也是突发性交通事故发生的重要原因。怎样防止爆胎已成为安全驾驶的一个重要课题。使得人们对轮胎内部的充气压力关注日益密切。轮胎压力监测技术是一种能切实有效的防止和减少由于轮胎引起交通事故的方法。通过在汽车行驶过程中时实时的对轮胎气压进行监测,对轮胎内部的低气压值进行显示报警,从而达到保持标准的车胎内部气压和及时发现车胎漏气的目的。进而才能保障行车安全,保障司机、乘客的生命安全。1.2本选题在国内外的研究状况及发展趋势据有关专家的分析,防止爆胎的关键在于应该实时保持在正常的轮胎气压下行驶。据美国汽车相关调查机构调查,在美国由于轮胎内部的气压低或漏气所引发的交通事故每年大约有26万起,所以美国政府要加大了对汽车相关制造商的支持力3度,加速发展了TPMS系统,以便挽回巨大的经济损失和重大的人员伤亡国外许多国家(像美国、日本等)已先后立法,要求在今后几年内实现汽车全部安装TPMS,美国TPMS装备已经非常普及。目前,已经有了相关传感器模块将所要测试的各个数据的传感器与微控制单元合二为一的智能传感器模块,如GENPX,以便满足TPMS对IC高可靠性和高整合度的要求2TPMS的研究在中国刚刚起步。目前大部分厂家都处在研究开发阶段,出货量不高。全国开展TPMS研究的厂家接近200家,专业的TPMS厂家大约为30家。TPMS零组件主要靠进口,缺乏自主知识产权的产品。目前国外带电池的TPMS系统相对己经比较成熟,主要在进行无源TPMS系统的研究,如利用SAW这类无源器件频率的变化来监测轮胎压力变化。上海交通大学也开始基于声表面波技术的TPMS开发研究,这种能同时测量轮胎内压力、温度和发射数据的SAW传感器,不仅可实现智能轮胎信息的无源测量和无线发送,并且将拥有中国人自主的知识产权。随着高新技术的发展和现代汽车不断趋向高性能化,汽车用的轮胎也从长期的性能时代,开始进入功能化的新时期。当然,现代汽车的安全配置也在不断得到完善,如安全带、安全气囊、防撞杆等被广泛运用,不过这些都是属于交通事故发生后,才能对人、车起到保护作用的被动安全装置。然而轮胎爆胎预警系统,则不同于上述的装置,它在轮胎一出现危险征兆时就能够及时发现并同时报警,最大限度地将事故消灭在萌芽状态,从而极大地提升了车辆高速行驶的安全性,这一优势在高速公路上表现更为明显3]。中原工学院信息商务学院毕业论文(设计)4第2章系统功能介绍(1)采用压力、温度传感器来监测汽车轮胎内的压力和温度;(2)显示当前轮胎的压力及温度值;(3)通过无线发射模块将测量值发射出去,用接收模块接收压力温度信息,并通过液晶屏显示;(4)当压力值高于或低于允许正常范围值时发出报警;(5)控制最大探测压强:0.99MPa该系统设计以STC89C52为主控芯片实现压力采集及其压力控制,压力、温度信号采集使用BMP085压力传感器,信号发送采用NRF24L01无线发送接收芯片,利用LCD12864进行液晶显示。当轮胎漏气和低气压情况时,蜂鸣器报警,LED指示灯点亮。按键设计采用复位按键进行对压力上下限的调节。轮胎压力无线监测系统包括无线发射部分和无线接收部分。无线发射部分包括压力传感器模块、单片机主控制模块。无线接收部分包括无线接收模块、单片机主控制模块。系统整体设计框图如图2-1所示。按键电路调节压力上下限按键电路调节压力上下限BMP085采集压力温度数据LCD12864显示温度压力报警电路线通信数据发送线通信数据接收STC89C52STC89C5图2-1系统框图中原工学院信息商务学院毕业论文(设计)5第3章硬件电路设计3.1主控模块STC89C52是STC公司生产的一种具有低功耗、高性能的CMOS8位微控制器。STC89C52使用和MCS-51一样的内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。STC89C52在很多嵌入式控制系统中提供了高灵活、高效率的解决方案。其具有的标准功能:8k字节的Flash,512字节的RAM,32位I/O口线,内置4KBEEPROM,看门狗定时器,MAX810复位电路,3个16位定时器/计数器,全双工串行口。4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断的结构)。本设计电路中STC89C52单片机的电路图如图3-1所示。PLC(T2)P11T2E)P11P13P+SMOSJP3:2/INTOP3.5T1)EAVPPXTAEIESIB7D59P0058P0133P0434P0535P0s2290721_P20?2224?2525~P2425P25 11P¹IXD(AD0)P0.0(AD1)PD.1(AD2)P02(AD5)PU3(AD4)P04(AD5)P05(AD6)P0.6(AD7^P0.7(AS)P20(A1)P2svcCRXD)P3.0TXDP31AEERGPSENP10TPTPPPP2P32vccXTAL!2361了6Ⅱ1在设计过程当中,单片机的PO口用于LCD12864显示,P1.0-P1.4无线发射模接气压监测模块,P2.0连接蜂鸣报警器,XTAL1和XTAL2是晶振模块等。工作过程:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,之所以它可用作对外部输出的脉冲或用于定时目的,因为此频率为振荡器频率的1/6⁵]。中原工学院信息商务学院毕业论文(设计)6晶振电路晶振电路STC89C52单片机在整个电路板的连接中起主导控制作用,STC89C52是一种高性价比的CMOS8位微控制器,具有8K可编程FLASH存储器。512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构全双工串行口。最小系统由复位电路以及晶振电路组成。当单片机复位端口有高电平信号并且超过2个机器周期的时单片机复位。复位电路如图3-2所示。晶振电路常采用12M晶振作为系统的时钟。晶振电路如图3-3所示。XTALI图3-3晶振电路中原工学院信息商务学院毕业论文(设计)7本次设计需要采用5V电源为单片机、传感器、蜂鸣报警器等一系列元件供电。但无线接收发送模块需要以3.3V电源供电,故需要用型号为AMS1117的3.3V稳压芯片将5V电源转换成3.3V电源供无线接收发送模块使用。AMS1117系列稳压器在我们日常应用中有可调版式与其他多种固定电压版式,本次设计工程中用AMS1117用于提供工作压差可低至1V且为1A的输出电流。在输出最大电流时,AMS器件的电压差最大不能超过1.3V,并且跟随负载电流的减小而减小0。本设计采用的AMS固定电压版式。在AMS1117固定电压版式3.3V的片上把基准电压进行微调整,直到误差控制到1.5%以内,以便尽量降低因电源电路超载和稳压器而带来的负荷。AMS1117器件的引脚上兼容其他三端SCSI稳压器,提供使用贴片安装的SOT-223,8引脚SOIC,和TO-252(DPAK)塑料封装。AMS1117内部集成过热保护和限流电路,是电池供电和便携式计算机的最佳选择。有以下特点:1、固定输出电压为1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V和可调版本,2、具有1%的精度。4、低漏失电压:1A输出电流时仅为1.2V本次电源模块选用ASM1117,其三端可调或固定电压3.3V输出电流为1A,工作结温范围:-40-125°C。电源模块如图3-4所示。图3-4电源模块3.3气压、温度检测模块本次压力、温度监测模块采用BMPO85数字气压传感器,可以直接通过编程读中原工学院信息商务学院毕业论文(设计)8VDDDVDDDXCLR取气压温度数据,并且是一款高精度、超低能耗的压力传感器,在移动设备中都有应用。它的性能优越,绝对精度最低可以达到0.03hPa,极低的功耗,只有3uA。BMPO85采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过IIC总线直接与多种微处理器进行相连。BMPO85气压、温度传感器是利用电压电阻技术对EMC的稳定性,线性度,高准确度和长期稳定性。BMPO85应用程序被广泛在、航位推测、GPS导航的增强、内外部导航、健康监测、天气预测、风机功率控XCLRXCLR气压温度检测模块7VDDA寸KK652NO气压温度检测模块如图3-5所示。图3-5气压温度检测模块3.4无线发射接收模块无线发射接收模块是连接数据采集发射部分和数据接收控制部分的重要元件,也是单片机之间传送数据的重要组成。本设计中为方便使用,成本低而且使用方便。故设计中无线发送接收模块采用nRF24L01,它是一款无线通信发送接收芯片,工作频率为2.4~2.5GHz。是通过SPI接口设置输出功率、频道选择以及协议。nRF24L01在发射模式下的发射功率为-6dBm时电流的消耗仅为为9mA,在接收模式时电流的消耗为12.3mA。在待机模式和掉电模式时电流消耗更低。2、具有自动应答和自动再发射功能;中原工学院信息商务学院毕业论文(设计)93、数据传输率为1Mb/s或2Mb/s;4、SPI速率为0Mb/s~10Mb/s;(2)nRF24L01引脚简介如表3-1所示。表3-1nRF24L01引脚功能使能端发射或接收CSNSPI引脚端,微处理器可通过此引脚配置nRF24L01中断标志位VDD电源输入端VSS电源地晶体振荡器引脚VDDPA晶体振荡器引脚为功率放大器供电,输出为1.8V参考电流输入在发射经过单片机处理后的数据时,先将nRF24L01设置为发射模式,然后把接收节点的地址TXADDR和有效数据TXPLD按照时序由SPI口写入nRF24L01缓存区,TXPLD必须在CSN为低时连续写入,TXADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;如果自动应答开启,那么nRF24L01在发射数据后直接进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TXADDR一致)。如果收到应答,则认为此次通信成射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高10]。无线发射接收模块如图3-6所示。图3-6无线发射接收模块3.5显示模块显示电路部分采用LCD12864。选用LCD12864的主要原因是LCD12864自带汉字库可以直接显示汉字,并且屏幕较大。LCD12864是一种具有4位和8位并行、2线或3线串行的多种接口方式,含有国标一级、二级简体中文字库的点阵图形的液晶显示模块。其显示的分辨率为128×64,内置8192个16*16点汉字,和128个16*8的点ASCⅡ字符集。利用该模块灵活的接口方式和方便的操作指令,可构成全中文人机交互图形界面,可以显示8×4行16×16的点阵汉字,也可完成图形显示。低电压低功耗是其又一显著特点,由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。显示模块LCD12864实现电路图如图3-7所示。中原工学院信息商务学院毕业论文(设计)图3-7显示模块按键设计采用的是复位按键,用来调节压力上下限。单片机上电后所有I/0口均为高电平,故当检测到低电平的时候单片机就会相应的做出动作。由于软件设计使用的是外部中断1作为按键程序的入口,所以按键公共端口为地端。按键电路如图3-8所示2]。KEY?KEY?XEY]n按键电路图3-8按键模块报警电路采用的无源蜂鸣器,无源蜂鸣器是流控器件,低电平触发。在额定范围内蜂鸣器的响度随着电流的增大而增大。通过编程控制来固定频率。设计采用的S8550PNP型三极管,理论放大值为128倍容易实现深度饱和。采用1K电阻作为限流电阻防止三极管烧毁。报警电路如图3-9所示。中原工学院信息商务学院毕业论文(设计)报警电路R15P20WP20Res1PNP图3-9报警模块3.8串口通讯模块串口通信,是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。设计当中串口通讯电路采用MAX232,该芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。利用串口可以实现与PC机的通讯,对于系统的二度开发有一定的意义。串口通讯电路如图3-10所示[3]。图3-10串口通讯电路中原工学院信息商务学院毕业论文(设计)第4章系统软件设计先由数字气压传感器BMP085读取当前气压值和温度值,并且使用IC数据传输协议将气压和温度的数字信号传输到单片机中。STC89C52单片机经过运算处理之后将所得到的二进制数字信号转换成十进制数据,随后单片机控制无线收发模块nRF24L01将数据发送至另一块无线收发模块,由另一块nRF24L01模块进行数据接收,然后将接收到的数据传入单片机由单片机进行数据解析,并且在LCD12864液晶显示屏上进行显示。单片机可以根据所接受到的数据与程序设定的温度和压力范围进行比较,如果超出温度和压力的范围则单片机会控制蜂鸣器报警,直到接收到的数据正常为止。主程序流程图如图41所示。LLCD128G设置NRF24L01为发射模C号设置NRF24LO1据角军析采集压力、温据YLO1居NRF24LO1图4-1主程序流程图中原工学院信息商务学院毕业论文(设计)4.2子程序流程图气压、温度模块子程序流程图如下图4-2所示。图4-2气压、温度模块子程序流程图BMP085使用的是IC通讯协议,该通讯协议使用广泛,格式固定。所以对于该部分的程序设计也会相对容易一些,但是由于IC协议对于时序的要求较高所以在程序设计方面更加注重延时程序的设计,以保证程序可以顺利运行。IC协议从START信号开始,STOP信号结束,通过SCL和SDA来控制数据的传输,开始时SCL拉高,SDA拉低,延时一段时间后从器件将会发送地址到主控器件,在7位地址之后就可以进行控制读写位的操作,如果从器件接收到信号则会回发一个相应的应答信号,第九个时钟信号结束SDA拉低,SCL保持高电平。中原工学院信息商务学院毕业论文(设计)则这次数据传输结束15。时序图如图43所示。condton图4-3IIC读写时序图conaiton参考程序如下:{{//移出数据的最高位从IC总线接收一个字节数据BYTEBMP085_RecvByte)BYTEi;中原工学院信息商务学院毕业论文(设计)for(i=0;i<8;i++)Delay5us();//拉低时钟线Delay5us();4.2.2无线通信发送接收模块子程序无线通信发送接收模块子程序流程图如下图4-4所示。开始设置发射数据格式设置发射地址发送数NRF24发送数据设置接收地址接收数NRF24接收数据数据解析图4-4无线通信发送接收模块子程序流程图中原工学院信息商务学院毕业论文(设计)无线通讯模块nRF24L01使用的是SPI方式进行输出的传输,由于无线传输的干扰性在一定情况下较强,所以就需要在程序设计方面进行一些控制,实现数据的校验以及数据发射数据接收后的能够及时的相应或者发射成功的信号,这样可以保证程序的稳定性,SPI读时序如图4-5所示。NNMKMC*|包口四四口回应口根据SPI读时序图可知,控制SPI总线的四个端口即可是实现对数据的写入,这样程序只要在开始读取时序时将CSN由高拉低CSN,并且拉低时钟线SCK,然后通过产生时钟信号就可以实现对MISO口的数据读取,每个时钟信号就可以读出一位数据,八个时钟周期即可完成对一个字节数据的读取,然后延时一段时间后就可以实现对第二个字节数据的读取,读出数据结束后需要将,SCN拉高,这样就可以完成一个完整的数据读取。参考程序如下:ucharSPI_Read_Buf(ucharreg,uchar*pBuf,ucharbytes)for(i=0;i<bytes;i++)pBuf[i]=SPI_RW(0);return(status);SPI写时序图如图4-6所示。//CSN置低,开始传输数据//选择寄存器,同时返回状态字//逐个字节从nRF24L01读出//CSN拉高,结束数据传输//返回状态寄存器sckUUUUUUULLUUUUuMSO—口口国回回Uuuuu中原工学院信息商务学院毕业论文(设计)同读取数据类似,也许开始时将CSN拉低,并且产生固定的时钟信号,这样就可以在每个时钟信号的上升沿将一位数据从MOSI口写入,重复发次时钟信号就可以完成对一个字节数据的写入。同样写入完成后需要将CSN口拉高,完成本次ucharSPI_Write_Buf(ucharreg,uchar*pBuf,ucharbytes)ucharstatus,i;status=SPI_RW(reg);for(i=0;i<bytes;i++)SPI_RW(pBuf[])CSN=1;return(status);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//逐个字节写入nRF24L01//CSN拉高,结束数据传输//返回状态寄存器显示模块使用LCD12864液晶显示,支持串行数据传输及并行数据传输。显示子程序使用的是LCD12864并行数据传输方式。根据LCD12864读写时序图即可完成对LCD12864的控制。显示子程序流程图如下图4-7所示。开始开始图4-7显示模块子程序流程图中原工学院信息商务学院毕业论文(设计)由于对于程序并没有用到对LCD12864的写入操作,不在过多叙述,但是对于LCD12864的数据写入及其显示是该程序设计部分的重点。LCD12864写入时序图LCD12864写时序图如图4-8所示。口由低电平拉高。并且经过一段延时后将数据写入在并行接口上。数据写入后经过一段时间将RS拉高,R/W拉高,E端口拉低。完成一个字节的数据写同时写入程序分为写入命令和写入所显示数据,写入命令是直接更改LCD12864内部寄存器的参数,而写入所显示数据则写入的数据相应的ASCLL码或者汉字库里自带的汉字。参考程序如下:while(lcd_busy0);/************************************************/voidlcd_wemd(ucharcmd)中原工学院信息商务学院毕业论文(设计)while(lcd_busyO);LCD_RS=0;LCDRW=0;LCDEN=0;LCDEN=1;delayNOP();LCDEN=0;中原工学院信息商务学院毕业论文(设计)结论工作总结本次毕业设计是以汽车轮胎为应用对象,是以提高在行驶过程中的汽车的安全性和稳定性。设计中介绍了TPMS的应用种类以及它们各自的优缺点,对各项影响轮胎安全性能的原因做出了分析,从而设计出汽车轮胎压力监测系统。该系统以该系统设计以STC89C52为主控芯片实现压力采集及其压力控制,压力、温度信号的采集使用BMP085数字气压传感器,信号发送采用NRF24L01无线发送接收芯片,利用LCD12864进行液晶显示。当轮胎漏气和低气压情况时,蜂鸣器报警,LED指示灯点亮。该系统达到了毕业设计任务书当中所要求的性能指标。本次所做的主要工作有:查阅了大量的文献和资料之后,深入了解了国内外相关技术和应用,以及未来的发展趋势。通过了解当前轮胎压力监测系统的分类和技术特点,分析了一些轮胎压力检测系统的工作原理,由于轮胎压力异常对汽车行驶安全的影响,对轮胎的监测机理和工作性能进行了分析,确定了要从监测轮胎压力和温度入手。给出了自己的设计方案。硬件电路设计当中,首先介绍了设计的核心组成部分单片机STC89C52的的基本构成和原理,简要的说明了单片机的最小系统,各引脚的功能介绍。然后介绍了气压监测模块BMP085,无线通信收发模块NRF24L01,给出了主要模块电路的结构。简要介绍了按键电路,报警电路,以及串口通讯电路,为下面的软件电路的设计做准备。系统软件设计部分,给出了主程序以及各个子程序的软件流程图,以便更好最终程序调试正常,焊接成品,硬件运行正常,满足了初步设计要求,达到了对轮胎压力监测的目的。但是在实际应用中保证准确收集压力温度信号,并进行准确无误的无线数据传输,还是存在一些干扰。由于研究时间和条件的限制,仍有许多问题需要深入研究。中原工学院信息商务学院毕业论文(设计)参考文献[1]陈法国,陈伟,周鹏等。无线接口电路设计及其在TPMS中的应用[J].单片机与嵌入式系统应用,2005[2]雷旖旎,卢益民。轮胎压力直接监测系统的设计[J].计算机与数字工程,2005[3]刘桂飘,罗玉涛。轮胎气压对汽车性能影响的研究[J].广东公安科技,003[4]颜重光。汽车胎压监视系统的设计方案思考[J].理论与研究,2005[5]秦晰,王景成。胎压监测系统的实现[J].微型电脑应用,2005[6]闫利文。基于MEMS技术的胎压监测系统的实现[J].微计算机信息,2006[7]周航慈。单片机应用程序设计技术[M].北京:北京航天航空大学出版社,1992(2):80-128[8]韩建保,陈厉兵。汽车轮胎气压电子实时监测系统[J].汽车技术,2002[9]胡汉才。单片机原理及其接口技术[M].北京:清华大学出版社,2003[10]孙雨耕,张静,孙永进,房朝晖。无线自组传感器网络[J].传感技术学报,2004,(02)[11]吕惠民,田敬民。压力传感器的研究现状与发展趋势[J].半导体技术,1998,(02)[12]汪卓飞。一种高精度角度传感器的研究[D].浙江工业大学,2009[13]RTPMPressureSensorNPX-CO1780,GENovaSensor,2006[14]MC33594/DPLLtunedUHFReceiverforDataTransferApplications,Motorola,Rev1.1[15]CURTSCHURGERS,TirePressureMonitoringSystemUser'sGuide[EB].MicrochipTechnologyInc.,2006[16]KOWALEWSKI,MARCIN.Moniroringandmanagingtirpressure[J].IEEEPotentials,2005,3:8-10中原工学院信息商务学院毕业论文(设计)致谢此次为期四个月的毕业设计已顺利完成。首先要感谢我的指导老师-刘秀敏老师,··在老师的悉心指导下,我才得以顺利按时完成毕业设计。老师严谨的教学态度,丰富的阅历,都给我留下了深刻的印象。当然,在毕业设计的过程当中,有实验室里的很多同学给予了我很大的帮助。毕业设计刚开始的时候,我的第一感觉是茫然,根本不知道从哪里下手,甚至怀疑自己的能力,是否能顺利完成任务。我为我拥有一位出色而且非常敬业的指导老师而感到幸运。在毕业设计过程当中,刘老师给我提供了很大的帮助,老师不厌其烦的为我们讲解了毕业设计当中可能出现的任何问题。从毕业设计开始时的毕业实习报告、开题报告、外文翻译、一直到最后论文多次的修改,刘老师总是以专业的标准来严格要求我们,为我们出色的完成毕业设计任务打下了坚实的基础,在很大程度上提升我的专业能力。通过此次毕业设计,使我深刻认识到学习好专业知识的重要性,也深深体会到了理论与实践相结合的含义。同时,此次毕业设计也检验了我大学四年的学习成果,对于此次设计当中对于专业知识的运用不够熟练,我将在以后的学习和实践当中,继续努力和不断完善。四个月的设计过程是对过去所学知识的系统的提高和扩展的过程,也是对自己实践能力的一次考验。虽然经历了很多困难,但最终还是顺利完成。在发现问题,解决问题的过程当中令我获益匪浅,为日后的发展提供了有利条件。毕业临近,回首这四个月,感慨万千,最后由衷的感谢在毕业设计当中给予我莫大帮助的老师和同学们。牛牛附录I原理图甲甲留TimF蒸maug林C1U卷u城复AAsiWea¥P高nW算SmtK.Wovt#u上2址taTia中原工学院信息商务学院毕业论文(设计)附录ⅡPCB图0曾R5uJ属生验亲属州工出说并半2中原工学院信息商务学院毕业论文(设计)中原工学院信息商务学院毕业论文(设计)附录Ⅲ程序发射#include<reg52.h>#include<api.h>#include<math.h>//Keillibrary#include<stdlib.h>//Keillibrary#include<stdio.h>//Keillibrary#include<INTRINS.H>//Keillibrary#defineucharunsignedchar#defineuintunsignedint#defineTX_ADR_WIDTH5//5字节宽度的发送/接收地址#defineTXPLOADWIDTH4//数据通道有效数据宽度ucharcodeTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//定义一个静态发送地址ucharRX_BUF[TX_PLOAD_WIDTH];ucharTX_BUF[TX_PLOAD_WIDTH];sbitSCL=P2^4;//IIC时钟引脚定义sbitSDA=P2^3;//IIC数据引脚定义sbitbee=P2^0;ucharbdatasta;sbitMAXRT=sta^4;#defineBMP085SlaveAddress0xee//定义器件在IC总线中的从地址#defineOSS0//OversamplingSetting(note:codeisnotsetuptouseotherOSSvalues)typedefunsignedcharBYTE;typedefunsignedshortWORD;ucharge,shi,bai,qian,wan,shiwan;//显示变量中原工学院信息商务学院毕业论文(设计)unsignedshortac4;unsignedshortac5;unsignedshortac6;shortb1;shortb2;shortmb;shortmc;shortmd;初始化IOvoidinitio(void)CSN=1;IRQ=1;3//待机//SPI禁止//SPI时钟置低//中断复位//关闭指示灯延迟x毫秒voiddelay_ms(ucharx)uchari,j;中原工学院信息商务学院毕业论文(设计)for(i=0;i<x;i++)while(--j);while(--j);while(ms--)for(i=0;i<150;i++)_nop_();_nop_();_nop_();根据SPI协议,写一字节数据到nRF24L01,同时从nRF24L01读出一字节ucharSPI_RW(ucharbyte)uchari;for(i=0;i<8;i++){//循环8次MOSI=(byte&0x80);//byte最高位输出到MOSIbyte<<=1;//低一位移位到最高位//拉高SCK,nRF24L01从MOSI读入1中原工学院信息商务学院毕业论文(设计)位数据,同时从MISO输出1位数据//SCK置低return(byte);//返回读出的一字节写数据value到reg寄存器ucharSPI_RW_Reg(ucharreg,ucharvalue)ucharstatus;CSN=0;status=SPI_RW(reg);SPIRW(value);return(status);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//然后写数据到该寄存器//CSN拉高,结束数据传输//返回状态寄存器从reg寄存器读一字节ucharSPI_Read(ucharreg)ucharreg_val;CSN=0;reg_val=SPI_RW(0);CSN=1;return(reg_val);//CSN置低,开始传输数据//选择寄存器//然后从该寄存器读数据//CSN拉高,结束数据传输//返回寄存器数据从reg寄存器读出bytes个字节,通常用来读取接收通道ucharSPI_Read_Buf(ucharreg,uchar*pBuf,ucharbytes)ucharstatus,i;status=SPI_RW(reg);for(i=0;i<bytes;it+)pBuf[i]=SPI_RW(0);return(status);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//逐个字节从nRF24L01读出//CSN拉高,结束数据传输//返回状态寄存器把pBuf缓存中的数据写入到nRF24L01,通常用来写入发ucharSPI_Write_Buf(ucharreg,uchar*pBuf,ucharbytes)ucharstatus,i;status=SPI_RW(reg);for(i=0;i<bytes;i++)SPI_RW(pBuf[i]);return(status);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//CSN拉高,结束数据传输//返回状态寄存器这个函数设置nRF24L01为接收模式,等待接收发送设备的数据包voidRXMode(void)SPIWriteBuf(WRITEREG+TX_ADR_WIDTH);//接收设备接收通道0使用和发送设备相同的发送地址SPI_RW_Reg(WRITE_REG+EN_AA,0x01);通道0自动应答SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);通道0SPI_RW_Reg(WRITE_REG+RF_CH,40);通道0x40SPI_RW_Reg(WRITE_REG+RX_PW_P0,TX_PLOAD_WIDTH);通道0选择和发送通道相同有效数据宽度SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);率1Mbps,发射功率0dBm,低噪声放大器增益SPI_RW_Reg(WRITE_REG+CONFIG,Ox0f);16位CRC校验,上电,接收模式接收设备//使能接收//使能接收//选择射频//数据传输/1拉高CE启动}这个函数设置nRF24L01为发送模式,(CE=1持续至少10us),130us后启动发射,数据发送结束后,发送模块自动转入接收voidTX_Mode(uchar*BUF){SPI_Write_Buf(WRITE_REG+TX_ADDR,TXADDRESS,TXADRWIDTH);//写入发送地址SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TXADRWIDTH);//为了应答接收设备,接收通道0地址和发送地址相同中原工学院信息商务学院毕业论文(设计)SPIWriteBuf(WRTXPLOAD,BUF,//写数据包到TXFIFOSPI_RW_Reg(WRITE_REG+EN_AA,Ox01);应答SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);SPI_RW_Reg(WRITE_REG+SETUP_RETR,OxOa);//250us+86us,自动重发10次SPI_RW_Reg(WRITE_REG+RF_CH,40);SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);发射功率0dBm,低噪声放大器增益SPI_RW_Reg(WRITE_REG+CONFIGOx0e);校验,上电TXPLOADWIDTH);//使能接收通道0自动//使能接收通道0自动重发延时等待//选择射频通道0x40//数据传输率1Mbps:检查接收设备有无接收到数据包,设定没有收到应答信号是否重发ucharCheck_ACK(bitclear)while(IRQ);sta=SPIRW(NOP);//返回状态寄存器if(clear)//是否清除TXFIFO,没有清除在复位MAXRT中断标志后重发SPIRW(FLUSHTX);SPI_RW_Reg(WRITE_REG+STATUS,sta);//清除TX_DS或MAX_RT中断标志IRQ=1;return(0x00);中原工学院信息商务学院毕业论文(设计)/******************BMP085*********voidconversion(longtemp_data)shiwan=temp_data/100000+0x30;temp_data=temp_data%100000;wan=temp_data/10000+0x30;temp_data=temp_data%10000;qian-temp_data/1000+0x30;temp_data=temp_data%1000;bai=temp_data/100+0x30temp_data=temp_data%100;shi=temp_data/10+0x30temp_data=temp_data%10;ge=temp_data+0x30;延时5微秒(STC90C52RC@12M)voidDelay5us()nop_();_nop_();_nop_();_nop_();nop_();_nop_();_nop_();_nop_();延时5毫秒(STC90C52RC@12M)中原工学院信息商务学院毕业论文(设计)voidDelay5ms()WORDn=560;while(n--);起始信号voidBMP085Start()SDA=1;Delay5us();SDA=0;Delay5us();//拉高数据线停止信号voidBMP085_StopOSDA=0;Delay5us();SDA=1;Delay5us();〈发送应答信号voidBMP085_SendACK(bitack){SDA=ack;Delay5us();//拉低数据线Delay5us();}接收应答信号bitBMP085RecvACK)Delay5us();Delay5us();}向IC总线发送一个字节数据{for(i=0;i<8;i++)1/8位计数器Delay5us();Delay5us();BMP085RecvACK();}从IC总线接收一个字节数据BYTEBMP085_RecvByte)中原工学院信息商务学院毕业论文(设计)BYTEi;BYTEdat=0;SDA=1;for(i=0;i<8;i++)dat<<=1;Delay5us();Delay5us()voidSingle_Write(ucharSlaveAddress,ucharREG_Address,ucharREG_data)BMP085Start():BMP085_SendByte(SlaveAddress);BMP085_SendByte(REG_Address);BMP085_SendByte(REG_data);BMP085_Stop()//发送设备地址+写信号//单字节读取BMP085内部数据********************************ucharSingle_Read(ucharREG_Address)BMP085_Start();//起始信号BMP085_SendByte(BMP085_SlaveAddress);//发送设备地址+写信号BMP085_SendByte(REG_Address);BMP085Start();BMP085_SendByte(BMPO85_SlaveAddress+1);/1发送设备地址+读信号//读出寄存器数据BMP085_Stop();returnREG_data;ucharmsb,lsb;BMP085_SendByte(BMP085_SlaveAddress);//发送设备地址+写信号BMP085_SendByte(ST_Address);//发送存储读信号msb=BMP085_RecvByte();BMP085_SendACK(0);lsb=BMP085_RecvByte();NOACK//最后一个数据需要回BMP085Stop();Delay5ms();BMPO85_SendByte(BMPO85_SlaveAddress);11发送设备地址+写信号BMP085_SendByte(0xF4);BMP085_SendByte(0x2E);BMP085_Stop();delay(10);//maxtimeis4.5ms//writeregisteraddress//writeregisterdatafortempreturn(long)Multiple_read(0xF6);longbmp085ReadPressure(void)longpressure=0;BMP085_SendByte(BMP085_SlaveAddress);11发送设备地址+写信号BMP085_SendByte(0xF4);//writeregisteraddressBMP085_SendByte(0x34);//writeregisterdataforpressureBMP085_Stop();delay(10);//maxtimeis4.5mspressure=Multiple_read(0xF6);pressure&=0x0000FFFF;returnpressure;//return(long)bmp085ReadShort(0xF6):voidInitBMP085)ac1=Multiple_read(0xAA);ac2=Multiple_read(0xAC);中原工学院信息商务学院毕业论文(设计)ac4=Multiple_read(0xB0);ac5=Multiple_read(0xB2);b1=Multiple_read(0xB6);b2=Multiple_read(0xB8);/lunsignedintut;unsignedlongup;longx1,x2,b5,b6,x3,b3,p;unsignedlongb4,b7;//ut=bmp085ReadTemp();//读取温度//ut=bmp085ReadTemp();//读取温度up=bmp085ReadPressure();//读取压强/*x1=(((long)ut-(long)ac6)*(long)ac5)>>15;x2=((long)mc<<11)/(x1+md);b5=x1+x2;//temperature=60000;TX_Mode(TX_BUF);CheckACK(1);//数据送到缓存中原工学院信息商务学院毕业论文(设计)//delay(50);TX_BUF[0]=low;//数据送到缓存//conversion(temperature);//CalculateB3x1=(b2*(b6*b6)>>12)>>11;b3=(((((long)ac1)*4+x3)<<OSS)+2)>>2;x2=(b1*((b6*b6)>>12))>>16;x3=((x1+x2)+2)>>2;b4=(ac4*(unsignedlong)(x3+32768))>>15;b7=((unsignedlong)(up-b3)*(5000O>>OSS));p=(b7<<1)/b4;p=(b7/b4)<<1;x1=(p>>8)*(p>>8);x2=(-7357*p)>>16;pressure=p+((x1+x2+3791)>>4);high=pressure/256:TXBUF[0]=high;中原工学院信息商务学院毕业论文(设计)TXMode(TXBUF);CheckACK(1);delay(50);TX_BUF[0]=low;TX_Mode(TX_BUF);CheckACK(1);//数据送到缓存voidmain()delay(100);init_io();while(1)//初始化IOInitBMP085();bmp085Convert();delay(100);//TXBUF[0]=pressure://pressure=10000;//low=240;/*high=pressure/256;low=pressure%256;TX_BUF[0]=high;TX_Mode(TX_BUF);CheckACK(1);delay(50);TXBUF[0]=low;TX_Mode(TX_BUF);delay(50);*//*high=temperature/256;low=temperature%256;TX_BUF[0]=high;TXMode(TXBUF);//数据送到缓存//数据送到缓存//数据送到缓存//数据送到缓存CheckACK(1);delay(50);delay(50);*///数据送到缓存#include<reg51.h>#include<api.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineDATAP0#definedelayNOP();{_nop_(;_nop_();_nop_(0;_nop_();};sbitbee=P2^0;sbitLCDRS=P2^2;sbitLCDRW=P2^3;sbitLCDEN=P2^4;sbitLCD_PSB=P2^6;sbitLCDRST=P2^5;//液晶复位端口#defineTX_ADR_WIDTH5//5字节宽度的发送/接收地址#defineTXPLOADWIDTH4//数据通道有效数据宽度ucharcodeTX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01};//定义一个静态发送地址uchartable[];ucharRX_BUF[TX_PLOAD_WIDTH];ucharTX_BUF[TX_PLOAD_WIDTH];ucharcodeDIS1[J={"气压上限:"};中原工学院信息商务学院毕业论文(设计)ucharcodeDIS2[]={"气压下限:"};ucharcodeDIS3[]={"当前气压:"};ucharcodeDIS4[]={"注意!危险!"};ucharflag,num;longlow,high;ucharge,shi,bai,qian,wan,shiwan;ucharbdatasta;sbitRXDR=sta^6;sbitMAXRT=sta^4;voidinitio(void)CSN=1;IRQ=1;J/LED=0xff;//待机//SPI禁止//SPI时钟置低//中断复位//关闭指示灯延迟x毫秒voiddelay_ms(ucharx)uchari,j;for(i=0;i<x;i++)中原工学院信息商务学院毕业论文(设计)while(--j);while(--j);根据SPI协议,写一字节数据到nRF24L01,同时从nRF24L01读出一字节for(i=0;i<8;i++)//循环8次MOSI=(byte&0x80);//byte最高位输出到MOSIbyte<<=1;//低一位移位到最高位SCK=1;//拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据byte|=MISO;SCK=0;}return(byte);//读MISO到byte最低位//SCK置低写数据value到reg寄存器(ucharstatus;CSN=0;status=SPI_RW(reg);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//然后写数据到该寄存器//CSN拉高,结束数据传输//返回状态寄存器从reg寄存器读一字节ucharSPI_Read(ucharreg)reg_val=SPI_RW(0);//CSN置低,开始传输数据//选择寄存器//然后从该寄存器读数据//CSN拉高,结束数据传输//返回寄存器数据从reg寄存器读出bytes个字节,通常用来读取接收通道ucharSPI_Read_Buf(ucharreg,uchar*pBuf,ucharbytes){status=SPI_RW(reg);for(i=0;i<bytes;i++)pBuf[i]=SPI_RW(0);CSN=1;return(status);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//逐个字节从nRF24L01读出//CSN拉高,结束数据传输//返回状态寄存器中原工学院信息商务学院毕业论文(设计)把pBuf缓存中的数据写入到nRF24L01,通常用来写入发ucharstatus,i;status=SPI_RW(reg);for(i=0;i<bytes;i++)SPI_RW(pBuf[i]);//CSN置低,开始传输数据//选择寄存器,同时返回状态字//逐个字节写入nRF24L01//CSN拉高,结束数据传输这个函数设置nRF24L01为接收模式,等待接收发送设备的数据包voidRX_Mode(void){SPI_Write_Buf(WRITE_REG+RXADDRPO,TX_ADDRESS,TX_ADR_WIDTH);//接收设备接收通道0使用和发送设备相同的发送地址SPI_RW_Reg(WRITE_REG+EN_AA,Ox01)通道0自动应答SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);通道0SPI_RW_Reg(WRITE_REG+RF_CH,40);通道0x40SPI_RW_Reg(WRITE_REG+RX_PW_P0,TX_PLOAD_WIDTH);通道0选择和发送通道相同有效数据宽度//使能接收SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);率1Mbps,发射功率0dBm,低噪声放大器增益SPI_RW_Reg(WRITE_REG+CONFIGOx0f);16位CRC校验,上电,接收模式//数据传输中原工学院信息商务学院毕业论文(设计)接收设备}这个函数设置nRF24L01为发送模式,(CE=1持续至少10us),130us后启动发射,数据发送结束后,发送模块自动转入接收模式等待应答信号。voidTX_Mode(uchar*BUF)CE=0;SPIWriteBuf(WRITEREG十TXADDR,TXADDRESS,TX_ADR_WIDTH);//写入发送地址SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TXADDRESS,TX_ADR_WIDTH);//为了应答接收设备,接收通道0地址和发送地址相同SPI_Write_Buf(WR_TX_PLOAD,BUF,TXPLOADWIDTH);//写数据包到TXFIFOSPI_RW_Reg(WRITE_REG+EN_AA,0x01);应答SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);SPI_RW_Reg(WRITE_REG+SETUP_RETR,Ox0a);//250us+86us,自动重发10次SPI_RW_Reg(WRITE_REG+RF_CH,40);SPI_RW_Reg(WRITE_REG+RF_SETUP,Ox07);发射功率0dBm,低噪声放大器增益SPI_RW_Reg(WRITE_REG+CONFIG,Ox0e);校验,上电CE=1;//使能接收通道0自动//使能接收通道0自动重发延时等待//选择射频通道0x40//数据传输率1Mbps,//CRC使能,16位CRC中原工学院信息商务学院毕业论文(设计)检查接收设备有无接收到数据包,设定没有收到应答信号是否重发ucharCheck_ACK(bitclear)while(IRQ);if(MAX_RT)if(clear)复位MAX_RT中断标志后重发//返回状态寄存器/1是否清除TXFIFO,没有清除在SPI_RW(FLUSH_TX);SPI_RW_Reg(WRITE_REG+STATUS,sta);//清除TX_DS或MAX_RT中断标志if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024司机聘用合同
- 挖掘机租赁市场合同样本
- 2024年房屋经纪服务合同
- 2024竞价房屋买卖合同范本
- 江苏省徐州市七年级上学期语文期中试卷5套【附答案】
- 2024【股权投资信托合同】股权投资合同
- 施工安全协议书案例分析
- 专业咨询委托协议参考
- 房屋买卖合同协议书委托人2024年
- 标准的汽车租赁合同范本
- 总公司与分公司合并报表编制举例
- 概率论与数理统计(茆诗松)第二版课后第二章习题参考答案_百度
- 锦纶染色过程的问题与解决方法
- 土地租金发放表
- 出租车计价器系统设计摘要和目录
- 医院水电安装施工方案
- 计算机网络考试重点整理
- 水泥搅拌桩机械进场安装验收记录表
- 高一物理的必修的一期中考试试卷解析告
- 网络通信类visio图库
- 四年级英语上册Unit4第四课时教案人教PEP标准版
评论
0/150
提交评论