首页 基于单片机的简单GPS定位信息显示系统设计毕业论文

基于单片机的简单GPS定位信息显示系统设计毕业论文

举报
开通vip

基于单片机的简单GPS定位信息显示系统设计毕业论文基于单片机的简单GPS定位信息显示系统设计毕业论文毕业论文基于单片机的简易GPS定位信息显示系统设计声明本人所呈交的基于单片机的简易GPS定位信息显示系统设计~是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。除文中已经注明引用的内容外~本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体~均已在文中作了明确说明并表示谢意。作者签名:日期:摘要GPS(GlobalPositioningSystem)全球定位系统是当今信息时代发展中的重要组成部分。由于其良好的性能,精度...

基于单片机的简单GPS定位信息显示系统设计毕业论文
基于单片机的简单GPS定位信息显示系统设计毕业论文毕业论文基于单片机的简易GPS定位信息显示系统设计声明本人所呈交的基于单片机的简易GPS定位信息显示系统设计~是我在指导教师的指导和查阅相关著作下独立进行 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 研究所取得的成果。除文中已经注明引用的内容外~本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体~均已在文中作了明确说明并表示谢意。作者签名:日期:摘要GPS(GlobalPositioningSystem)全球定位系统是当今信息时代发展中的重要组成部分。由于其良好的性能,精度高,适用范围广等特点,被广泛应用于陆地,海洋,航空航天等领域。本文提出了一种微控制器作为核心控制设备,由GPS接收模块、实时显示模块等功能电路构成的GPS实时显示系统。文章从硬件设计和软件设计两个方面,阐述了MCS-51系列单片机如何与GPS接收模块实现串行通信,结果显示GPS定位信息,并利用Proteus仿真软件,对其性能进行了仿真测试。该设计电路简单,成本低,性能好,具有一定的实用价值。【关键词】:GPS;单片机;串行通信;实时显示模块ABSTRACTGPS(GlobalPositioningSystem)globalpositioningsystemintoday'sinformationageistheimportantpartinthedevelopmentof.Becauseofitsgoodperformance,highprecision,wideapplicationcharacteristics,arewidelyusedinterrestrial,marine,aviation,aerospacefield.Thispaperdescribesthedesignofasinglechipmicrocomputerasthecorecontroldevice,receivedbyGPSmodule,displaymoduleandotherfunctionalcircuitconsistingofGPSreal-timedisplaysystem.Thispaperfromthehardwaredesignandthesoftwaredesigntwoaspects,elaboratedtheMCS-51SeriesMCUandGPSreceivingmoduletorealizeserialcommunication,theresultsshowedthatGPSpositioninginformation,andtheuseofProteussimulationsoftware.Theperformanceofthesimulationtest.Thedesignhastheadvantagesofsimplecircuit,lowcost,goodperformance,hasacertainpracticalvalue.【KEYWORD】:GPS;microcontroller;Serialcommunication;Thereal-timedisplaymodule目录一概述......................................................................................................................................1(一)系统设计背景及意义.............................................................................................1(二)系统设计主要内容.................................................................................................1二GPS定位信息显示系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计.......................................................................................1(一)GPS全球定位系统简介.........................................................................................1(二)GPS信号接收方案的解决.....................................................................................2(三)GPS接收模块简介.................................................................................................2(四)总体方案的设计.....................................................................................................3三硬件电路设计......................................................................................................................4(一)硬件总体结构框图.................................................................................................4(二)单片机性能概述.....................................................................................................4(三)SiRFStarIIGPS信号接收模块........................................................................7(四)实时显示模块概述.................................................................................................8(五)电路原理图.............................................................................................................9四软件设计..............................................................................................................................9(一)软件设计思路.........................................................................................................9(二)程序流程图...........................................................................................................10(三)模块软件设计.......................................................................................................10五软件调试与仿真测试........................................................................................................14(一)软件调试...............................................................................................................14(二)仿真测试过程.......................................................................................................14六总结....................................................................................................................................16致谢......................................................................................................................................17参考文献..................................................................................................................................17附录一电路原理图..............................................................................................................17附录二仿真电路原理图......................................................................................................17附录三源程序......................................................................................................................17一概述(一)系统设计背景及意义GPS是英文GlobalPositioningSystem全球定位系统的简称,它提供实时全天候和全球性的导航服务,并用于情报收集,应急通信和一些其他用途。目前已经被广泛用于陆海空三大领域。例如:陆地的GPS技术应用,它可以应用在各种车辆的行驶状态监控中;在海洋应用中,GPS技术可以应用于远洋船舶的最佳航线测定;在航空航天应用,GPS技术可以应用到民用飞机在运输过程中的自主导航。现在的GPS技术中最关键的就是如何解决GPS信号是否能被准确接收和调制输出的的问题。此外,准确显示出当时所在地方的经度和纬度、时间,也直接关系到这种技术是否具有良好的实用价值。今天,已经有很多基于此类GPS技术及基本功能的基础上开发的产品,如GPS手持机,GPS导航设备等。GPS技术的确具备功能强大、可扩展性好等优势,但同时也具有价格昂贵、电路复杂等缺点。本文拟设计一个简单的基于单片机的GPS定位信息显示系统,整个系统的构成简单,基本性能齐全,价格便宜,具有一定的实用价值。(二)系统设计主要内容在学习微控制器和GPS的理论知识基础上,选择合适的微控制器和GPS接收模块,通过GPS接收并提取卫星信息。以单片机为核心组成部分,对所提取的信息进行分析,处理,利用液晶显示器构成显示电路,实时准确地显示所需的数据。设计完成后利用Proteus软件仿真测试其性能。二GPS定位信息显示系统方案设计(一)GPS全球定位系统简介GPS是新一代空间卫星导航定位系统——GlobalPositioningSystem的简称,由美国在21世纪70年代研制开发。GPS技术在研究的初始阶段其主要的目的是为收集情报。此外,包括实时监测核武器动向,对地、海、空三大领域进行全天候的、实时的无漏洞的导航服务也是其主要目的之一。目前,GPS技术还被广泛地应用与应急通信和其他一些军事目的、经济领域。GPS技术整体比较复杂,但从不同的技术领域来分,可以分为以下三个主要部分:第一,地面控制部分。主要包括主控站、地面天线以及电台和通讯辅助系统;第二,空间控制部分。目前全球一共有24颗卫星分布在6个不同的轨道平面上,1为GPS技术的信息获取提供主要来源;第三,用户装置部分。该部分主要包括卫星天线以及GPS接收机两个模块。这三部分的关系图如图1所示。图1GPS全球定位系统组成其主要工作原理是由地面监控部分来计算从卫星发出的信号到达GPS接收机,即用户装置部分的时间间隔,利用公式计算出用户装置到基准卫星的距离。在此过程中共需要接收天空中大于3颗的卫星信号所发的信息。然后在三维坐标系中,利用距离的计算工式,求解出观测点的位置坐标。此外,由于来自卫星的时钟信号与地面用户装置的时钟信号之间难免存在误差现象,还需要考虑该时间差所造成的距离偏差问题。(二)GPS信号接收方案的关键问题为了能够实现在液晶显示器上准确、实时的显示出所接收到的GPS数据信息,核心问题就是如何处理来自卫星的信号与GPS接收器芯片之间的数据通信。本设计的难点就是如何进行软件程序的编写实现GPS模块信息的接收。此外,还应该根据核心芯片的设计标准,对整个外围电路、天线模块等进行设计,进而保证在GPS完成卫星信息的接收之后,能够准确计算出观测点的经度、纬度以及高度,并将结果通过定位模块的输出,在显示电路模块显示出来。(三)GPS接收模块简介GPS接收机是整个系统的关键构成模块。目前,市场上的GPS接收模块的型号很多,不同型号的接收模块在结构、功能、价格上也存在差异。但其基本构成往往由天线、前置放大、变频器、并行信号通道、中央处理器以及输入\输出端口、内部存储器等部分构成,其基本原理图如图2所示:2图2GPS接收模块内部结构当GPS接收器捕获到来自卫星的信号之后,将对该信号进行跟踪,保证能够进行一系列连续测距。然后将对所测信号进行解调,将该信号转换为导航电文。在该过程中还要考虑到载波相位的计算、测量伪距的处理等一些列过程,最后计算出定位点的相关坐标信息。在整个过程中,为保证信息获取的实时性,要求用户能够通过输入和输出接口很方便的实现与GPS接收模块的信息交换,也就是系统应该具有友好的人机交互界面。(四)总体方案的设计为核心控制器件,实现GPS设备的定位信根据系统的设计要求,要求能够以单片机息的显示系统。目前市面上单片机的种类繁多,功能各异。综合考虑单片机的功能、通用性、可扩展性以及性价比,本设计将采用常见的MCS-51单片机作为处理器。在GPS信号的接收部分,将采用SiRFStarIIGPS信号接收模块与MCS-51单片机串行接口相连实现数据信号的输出。通过软件的设计,对接收机信号进行筛选、计算、输出,获取定位数据信息。最终的计算结果将通过MCU并行接口模块输出,利用液晶显示器(LCD)构成的显示电路显示出结果。整个GPS定位信息显示系统的硬件构成主要包括以下几部分:第一,接收模块电路。主要包括以SiRFStarIIGPS接收模块作为核心构成的GPS3接收机,主要负责将锁定卫星,并将捕获码的最大相关输出,然后利用同步技术,通过对伪距、载波相位的估计,计算出用户位置、速度和时间等数据信息;第二,控制电路模块。主要包括由51单片机构成的核心电路,主要负责控制GPS数据读取和传输的过程,并将数据进行滤波等处理,并发送至显示电路;第三,显示电路部分。主要包括由LCD构成的显示电路,通过与微控制器接口的正确连接实现定位数据的实时显示;第四,电源部分。为整个系统提供动力来源,保证系统的正常工作。设计中还包括一些外围电路,主要负责在接收天线获取卫星信号后,在信号的变换、放大、滤波等一系列处理过程中起到相应辅助作用,与主控电路与接收模块协同工作,锁紧、定位、测量并输出显示结果。此外,在控制电路完成信息的捕获、跟踪和计算的过程中,无论是卫星导航参数的测量,还是伪距及伪距变化率的测量,以及最终位置信息的计算及经纬度的变换显示,输入输出端口的管理等,都必须通过软件指令进行控制。所以软件设计也是整体方案的重要组成部分。综上,本文将从硬件电路与软件设计两部分开展具体论述。三硬件电路设计(一)硬件总体结构框图硬件总体结构框图如图3所示:图3硬件总体结构框图(二)单片机性能概述1.STC89C52引脚功能本设计中所选择的单片机型号为STC89C52,是由中国深圳宏晶科技有限公司生产。该单片机采用40引脚双列直插封装方式,是采用ATMEL高密度非易失存储器制造技术4生产的。STC89C52能够与工业标准的MCS-51指令集和输出管脚直接兼容。STC89C52引脚如图4所示图4STC89C52引脚图其引脚说明如下:1)主电源引脚(2根):5V电源;VCC(Pin40):电源输入端口,通常接+GND(Pin20):接地端口。2)外接晶振引脚(2根):XTAL1(Pin19):芯片内部振荡电路的输入端口;XTAL2(Pin18):芯片内部振荡电路的输出端口。3)控制引脚(2根):ALE/PROG(Pin30):用来控制地址锁存允许信号;PSEN(Pin29):用来控制外部存储器读选通信号;4)可编程输入输出引脚(32根):STC89C52单片机有4组8位的可编程输入\输出端口,分别为P0口、P1口、P2口以及P3口。每个端口都8根引脚,一共32根,其各端口功能详见表1:表1I\O端口功能5综上,整个STC89C52的主要功能如表2所示:表2STC89C52主要功能2.时钟电路时钟电路的一共有内部产生或者外部产生的两种模式可供选择。本设计采用内部时钟电路模式。其中外接定时元件与X1和X2脚相联,由内部振荡器产生自激振荡。外接的定时元件具体是由石英晶体以及一个电容并联构成谐振电路。为了保证最好的定时效果,产生所需要的时钟信号,在本电路中,拟选择大小约为在5?30pF的电容,用以产生1.2?12兆赫兹的晶体振荡频率,发挥最佳定时效果。时钟电路如图5所示。图5时钟电路图3.复位电路复位信号从RESET引脚输入,整个电路主要包括由施密特触发器构成的外部电路以及内部电路。在单片机上电瞬间,RESET引脚将出现正脉冲,只要能够在RESET端保证一定幅度大小的高电平,就能够使单片机有效地复位。值得注意的是,复位脉冲的高电平时间间隔必须要大于2个机器周期。例如,如果在整个设计中采用6MHz的晶振,那么一个机器周期自然为2微秒,也就是说复位信号的周期应该大于等于4微秒。6图6复位电路图(三)SiRFStarIIGPS信号接收模块设计中以SiRFStarIIGPS作为GPS信号接收模块。该模块是由美国瑟孚科技有限公司生产的GPS第二代芯片。,它能够并行接收12通道,其所接收的信号频段主要位民用的GPSL1频带信号,即1575.42兆赫兹。在没有SelectiveAvailability干扰于的前提下,改接收模块的平均位置误差仅仅只有10m,动态的速度误差大约在0.1m/s.SiRFStarIIGPS接收模块的信号灵敏度大约为-142dBm。在冷启动状态下仅需要约42左右;如果是重秒的定位时间;而在热启动的情况下,其所需的定位时间仅仅为38秒新定位,其所花时间仅仅为8秒左右。SiRFStarIIGPS接收模块引脚如图7所示。图7SiRFStarII引脚图其引脚说明如下:1号管脚为GND端口,用来提供电源的接地端;3号管脚为电源的输入端,一般情况下连接+5V电源;2号管脚为TXD端口,通常与外部振荡器相连。该GPS信号接收模块的正常工作电流约为75毫安。其正常工作电压约为2.7伏至3.3伏之间。整个GPS接收模块主要由GRF2i射频集成电路以及GSP2e数字集成电路构成。7在该GPS信号接收中所采用的天线已经被封装在模块内部了。该天线是一种可靠性高,灵敏度高的迷你天线,为整个接收模块的正常工作提供了可靠的保证。SiRFStarII主要特征如表3示:表3SiRFStarII主要特征(四)实时显示模块概述本设计中的实时显示模块采用LCD液晶显示模块。其内部点阵为16X16,相当于8192个汉字。该模块同时包括由8X16点阵构成的128个字符,以及显示RAM的功能,其点。整个显示模块能够实现汉字和基本图形的实时显示。LCD液晶实时显阵大小为64X256示模块的引脚分布如图8所示。图8实时显示电路图主要技术参数和显示特性祥见表4:8表4实时显示模块技术参数及显示特性实时显示模块引脚如表5所示。表5实时显示模块引脚分布表5引脚说明(五)电路原理图电路原理图见附录一。四软件设计(一)软件设计思路本设计的核心问题是如何实现GPS接收模块与单片机的通讯,和微控制器接收到的信息如何筛选编排显示到液晶显示模块的位置。整个软件编程是由C语言完成的。9在软件设计上是用模块化思想。之所以采用模块化设计理念,主要是考虑软件的模块化具有功能清晰,调试方便的特点。此外,在考虑到软件的更新及功能的扩展,以及保证软件能够方便的在不同的硬件平台上的移植性等因素,整个方案的软件主要分为实时显示模块,GPS数据接收模块,单片机模块三部分开展。(二)程序流程图整个程序流程图如图9所示图9软件程序流程图图9程序流程图10(三)模块软件设计1.实时显示模块在设计中所使用的LCD液晶显示模块,其流程图如图10所示:图10实时显示模块流程图部分子程序如下:#include"LCD.h"voidclr_screen(){Lcd_WriteCmd(0x34);delay(5);Lcd_WriteCmd(0x30);delay(5);Lcd_WriteCmd(0x01);delay(5);}2.GPS数据接收模块GPS接收模块必须先有能够识别的信号发送到微控制器。其流程图如图11所示:11图11GPS数据接收模块流程图部分子程序如下:if(GPS_RMC_Parse(rev_buf,&GPS)){RMC_YES;GPS_DisplayOne();error_num,0;gps_flag,0;rev_stop,0;}else{error_num,,;if(error_num,,20)12{RMC_NO;error_num,20;GPS_Init();}gps_flag,0;rev_stop,0;REV_NO;}3.单片机模块由GPS模块接收的数据接收到微控制器的数据,分析,处理,将处理后的数据,由液晶显示器显示。其流程图如图12所示:13图12单片机模块流程图部分程序段代码如下:voidmain(void){ucharerror_num,0;Lcd_Init();GPS_Init();rev_stop,0;REV_NO;while(1){if(rev_stop){TR0,1;REV_YES;,,,,,},源程序其它代码详见附录三。五软件调试与仿真测试(一)软件调试软件调试的任务是使用在线仿真调试的开发工具,找出并纠正编程错误,而且还可以发现硬件故障。检查GPS模块步骤程序,了解情况,通过观察LCD,GPS信号的接收条件。第三步骤中的程序,通过GPS模块和液晶显示模块程序,结合在LCD显示器上的信息的GPS观测。(二)仿真测试过程1.建立一个新工程,如图13所示。14图13建立新工程2.再进入菜单File/New生成一个*.C格式的源文件,然后单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键,弹出如下图14所示界面加入源文件。图14加入源文件界面3.加入源程序完成后进入菜单Project/Buildtarget编译工程,如图15所示。15图15生成文件4.Proteus仿真测试结果图,如图16所示。仿真电路原理图见附录二。图16仿真测试结果图GPS卫星信号由Q1接收,通过P3.0口送到单片机分析、处理,同时时钟电路通过XTAL1和XTAL2接口对单片机进行定时,复位电路通过RST和EA接口对单片机进行复位,单片机整理好的数据再由P0.0,P0.7口传送到LCD1显示器显示。六总结通过本次毕业设计,主要是学习了GPS的原理,熟悉GPS接收机的工作原理及其各部分工作流程。GPS信号处理模块由SiRFStarII实现,通过SiRFStarII与MCS-51兼容系列单片机相连,配备必要的外围电路,液晶显示的结果和GPS接收机的硬件和软件设计的细节。毕业设计是一个非常重要的学习阶段,专业理论和实践相结合的机会,通过这种更完整的设计,我摆脱了纯粹的理论知识状态,我综合运用知识的能力,通过理论与实践相结合的,并行使解决实际工程能力,也提高了我的访问,文学,设计手册,设计规范和绘画水平,以及细节的控制,可以使我的能力加强和丰富经验。总之,做毕业设计的过程中,我们已经学到的专业知识,在我生命中的一个很好的学习经验和学到的实践经验,也是对自己的综合能力测试和提高。16致谢本课题是在罗红艳老师的悉心指导下完成的,论文从选题到写作及最后成稿,罗老师都给予了我精心的指导和极大的帮助。罗老师尽心尽责给了我深刻的影响,而罗老师随和的个性让我感到温暖。在设计阶段,罗老师在数据收集,程序调试,征文等方面给了我严格的要求和重要的指导。在此感谢罗老师对我的帮助。感谢电子系所有老师在毕业设计期间为我们提供良好的知识基础。此外,我还要对在这次设计中,帮助和支持我的同学,表示感谢~参考文献[1]刘基余.GPS卫星导航定位原理与方法[M].科学出版社.2003.[2]刘基余,李征航.全球定位系统原理及其应用[M].测绘出版社.1993.科学出版社.2003.[3]王惠南.GPS导航原理与应用[M].[4]潘永雄.新编单片机原理与应用[M].西安电子科技大学出版社.2003.[5]张鹏.单片机原理及应用[M].电子科技大学出版社.2004.单片机典型模块设计实例导航[M].人民邮电出版社.2000.[6]张立科.[7]余锡存,曹国华.单片机原理及接口技术[M].西安电子科技大学出版社.2010.[8]蔡美琴.MCS-51系列单片机系统及其应用.北京高等教育出版社.1992.[9]周航慈.单片机应用程序设计技术[M].北京航空航天大学出版社.2002.[10]李洪涛.GPS应用程序设计[M].科学出版社.1999.附录一电路原理图附录二仿真电路原理图附录三源程序主程序#include,reg52.h,#include,stdio.h,17#include,string.h,#include"GPS.h"#include"LCD.h"#include"display.h"charxdatarev_buf[80];ucharxdatarev_start,0;ucharxdatarev_stop,0;ucharxdatagps_flag,0;ucharxdatachange_page,0;ucharxdatanum,0;voidUart_Init(void){TMOD,0x21;PCON,0X00;TH0,0x3c;TL0,0xb0;TH1,0xFA;TL1,0xFA;TR1,1;REN,1;SM0,0;SM1,1;TI,0;RI,0;EA,1;ES,1;ET0,1;}voidmain(void){ucharerror_num,0;Lcd_Init();GPS_Init();rev_stop,0;REV_NO;while(1){if(rev_stop)18{TR0,1;REV_YES;if(GPS_RMC_Parse(rev_buf,&GPS)){RMC_YES;GPS_DisplayOne();error_num,0;gps_flag,0;rev_stop,0;}else{error_num,,;if(error_num,,20){RMC_NO;error_num,20;GPS_Init();}gps_flag,0;rev_stop,0;REV_NO;}}}voidtimer0(void)interrupt1{staticucharcount,0;TH0,0x3c;TL0,0xb0;count,,;if(count,,200){19count,0;change_page,,;if(change_page,,10)change_page,0;}}voidUart_Receive(void)interrupt2{ucharch;ES,0;if(RI){ch,SBUF;if((ch,,'$')&&(gps_flag,,0)){rev_start,1;rev_stop,0;}if(rev_start,,1){rev_buf[num,,],ch;if(ch,,'\n'){rev_buf[num],'\0';rev_start,0;rev_stop,1;gps_flag,1;num,0;}}}}RI,0;ES,1;}GPS接收模块程序20#include"GPS.h"#include"LCD.h"#include"string.h"ucharcodeinit1[]={"GPS显示终端"};ucharcodeinit3[]={"GPS初始化......"};ucharcodeinit4[]={"搜索定位卫星...."};staticucharGetComma(ucharnum,char*str);staticdoubleGet_Double_Number(char*s);staticfloatGet_Float_Number(char*s);staticvoidUTC2BTC(DATE_TIME*GPS);voidGPS_Init(void){Lcd_DispLine(0,0,init1);Lcd_DispLine(1,0,init3);Lcd_DispLine(2,0,init4);}intGPS_RMC_Parse(char*line,GPS_INFO*GPS){ucharch,status,tmp;floatlati_cent_tmp,lati_second_tmp;floatlong_cent_tmp,long_second_tmp;char*buf,line;ch,buf[5];status,buf[GetComma(2,buf)];if(ch,,'C'){if(status,,'A'){GPS,NS,buf[GetComma(4,buf)];GPS,EW,buf[GetComma(6,buf)];GPS->latitude=Get_Double_Number(&buf[GetComma(3,buf)]);GPS->longitude=Get_Double_Number(&buf[GetComma(5,buf)]);GPS->latitude_Degree=(int)GPS->latitude/100;lati_cent_tmp=(GPS->latitude-GPS->latitude_Degree*100);GPS->latitude_Cent=(int)lati_cent_tmp;lati_second_tmp=(lati_cent_tmp-GPS->latitude_Cent)*60;GPS->latitude_Second=(int)lati_second_tmp;GPS->longitude_Degree=(int)GPS->longitude/100;21long_cent_tmp=(GPS->longitude-GPS->longitude_Degree*100);GPS->longitude_Cent=(int)long_cent_tmp;long_second_tmp=(long_cent_tmp-GPS->longitude_Cent)*60;GPS->longitude_Second=(int)long_second_tmp;GPS->D.hour=(buf[7]-'0')*10+(buf[8]-'0');GPS->D.minute=(buf[9]-'0')*10+(buf[10]-'0');GPS->D.second=(buf[11]-'0')*10+(buf[12]-'0');tmp=GetComma(9,buf);GPS->D.day=(buf[tmp+0]-'0')*10+(buf[tmp+1]-'0');GPS->D.month=(buf[tmp+2]-'0')*10+(buf[tmp+3]-'0');GPS->D.year=(buf[tmp+4]-'0')*10+(buf[tmp+5]-'0')+2000;UTC2BTC(&GPS->D);return1;}}return0;}intGPS_GGA_Parse(char*line,GPS_INFO*GPS){ucharch,status;char*buf=line;ch=buf[4];status=buf[GetComma(2,buf)];if(ch=='G')//$GPGGA{if(status!=','){return1;}}return0;}staticfloatStr_To_Float(char*buf){floatrev=0;floatdat;intinteger=1;char*str=buf;inti;while(*str!='\0'){switch(*str){case'0':dat=0;break;case'1':22dat=1;break;case'2':dat=2;break;case'3':dat=3;break;case'4':dat=4;break;case'5':dat=5;break;case'6':dat=6;break;case'7':dat=7;break;case'8':dat=8;break;23case'9':dat=9;break;case'.':dat='.';break;}if(dat=='.'){integer=0;i=1;str++;continue;}if(integer==1){rev=rev*10+dat;}else{rev=rev+dat/(10*i);i=i*10;}str++;}returnrev;}staticfloatGet_Float_Number(char*s){charbuf[10];uchari;floatrev;i=GetComma(1,s);i=i-1;strncpy(buf,s,i);buf[i]=0;rev=Str_To_Float(buf);returnrev;}staticdoubleStr_To_Double(char*buf){doublerev=0;doubledat;intinteger=1;char*str=buf;inti;while(*str!='\0'){switch(*str){case'0':dat=0;break;case'1':dat=1;break;case'2':dat=2;break;case'3':dat=3;break;24case'4':dat=4;break;2526GPS->minute++;if(GPS->minute>59){GPS->minute=0;GPS->hour++;}27}GPS->hour=GPS->hour+8;if(GPS->hour>23){GPS->hour-=24;GPS->day+=1;if(GPS->month==2GPS->month==4GPS->month==6GPS->month==9GPS->month==11){if(GPS->day>30){GPS->day=1;GPS->month++;}}else{if(GPS->day>31){GPS->day=1;GPS->month++;}}if(GPS->year%4==0){if(GPS->day>29&&GPS->month==2){GPS-,day,1;GPS-,month,,;}}else28{if(GPS-,day,28&&GPS-,month,,2){GPS-,day,1;GPS-,month,,;}}if(GPS-,month,12){GPS-,month-,12;GPS-,year,,;}}}voidInt_To_Str(intx,char*Str){intt;char*Ptr,Buf[5];inti,0;Ptr,Str;if(x,10){*Ptr,,,'0';*Ptr,,,x,0x30;}else{while(x,0){t,x%10;x,x/10;Buf[i,,],t,0x30;}i--;for(;i,,0;i--)29{*(Ptr,,),Buf[i];}}*Ptr,'\0';}液晶显示模块程序#include"LCD.h"voidclr_screen(){Lcd_WriteCmd(0x34);delay(5);Lcd_WriteCmd(0x30);delay(5);Lcd_WriteCmd(0x01);delay(5);}VoidLcd_WriteCmd(ucharcmd){LCD_RS,0;LCD_RW,0;LCD_EN,0;_nop_();_nop_();P0,cmd;DelayNOP();LCD_EN,1;DelayNOP();LCD_EN,0;}voidLcd_WriteDat(uchardat){30LCD_RS,1;LCD_RW,0;LCD_EN,0;P0,dat;DelayNOP();LCD_EN,1;DelayNOP();LCD_EN,0;}voidLcd_Init(void){LCD_PSB,1;Lcd_WriteCmd(0x34);delay(5);Lcd_WriteCmd(0x30);delay(5);Lcd_WriteCmd(0x0C);delay(5);Lcd_WriteCmd(0x01);delay(5);}voidLcd_SetPos(ucharX,ucharY){ucharpos;if(X,,0){X,0x80;}elseif(X,,1){X,0x90;}elseif(X,,2){X,0x88;}elseif(X,,3){X,0x98;}pos,X,Y;Lcd_WriteCmd(pos);}voidLcd_DispLine(ucharline,ucharpos,uchar*str)31{inti,0;Lcd_SetPos(line,pos);while(str[i]!,'\0'){Lcd_WriteDat(str[i]);i,,;}}GPS显示程序#include"display.h"ucharcodebeiwei[]="北纬";ucharcodenanwei[]="南纬";ucharcodenanwei[]="东经";ucharcodexijing[]="西经";ucharcodedate[]="年月日";voidShow_Float(floatfla,ucharx,uchary);voidGPS_DispTime(void){uchari,0;ucharch;chartime[5];Lcd_DispLine(0,0,date);Int_To_Str(GPS.D.year,time);Lcd_SetPos(0,0);if(strlen(time),,4){i,0;while(time[i]!,'\0')32{ch,time[i,,];Lcd_WriteDat(ch);}}Int_To_Str(GPS.D.month,time);Lcd_SetPos(0,3);if(strlen(time),,2){i,0;while(time[i]!,'\0'){ch,time[i,,];Lcd_WriteDat(ch);}}Int_To_Str(GPS.D.day,time);Lcd_SetPos(0,5);if(strlen(time),,2){i,0;while(time[i]!,'\0'){ch,time[i,,];Lcd_WriteDat(ch);}}Int_To_Str(GPS.D.hour,time);Lcd_SetPos(1,1);if(strlen(time),,2){i=0;while(time[i]!='\0'){ch=time[i++];33Lcd_WriteDat(ch);}}Lcd_WriteDat('');Lcd_WriteDat(':');Int_To_Str(GPS.D.minute,time);Lcd_SetPos(1,3);if(strlen(time)==2){i=0;while(time[i]!='\0'){ch=time[i++];Lcd_WriteDat(ch);}}Lcd_WriteDat('');Lcd_WriteDat(':');Int_To_Str(GPS.D.second,time);Lcd_SetPos(1,5);if(strlen(time)==2){i=0;while(time[i]!='\0'){ch=time[i++];Lcd_WriteDat(ch);}}}voidGPS_DisplayOne(void){ucharch,i;charinfo[10];ET0,0;34clr_screen();//Lcd_WriteCmd(0x01);GPS_DispTime();if(GPS.NS,,'N')Lcd_DispLine(2,0,beiwei);elseif(GPS.NS,,'S')Lcd_DispLine(2,0,nanwei);if(GPS.EW,,'E')Lcd_DispLine(3,0,dongjing);elseif(GPS.EW,,'W')Lcd_DispLine(3,0,xijing);Int_To_Str(GPS.latitude_Degree,info);if(strlen(info),,2){i,0;while(info[i]!,'\0'){ch,info[i,,];Lcd_WriteDat(ch);}Lcd_WriteDat('');Lcd_WriteDat('');Lcd_WriteDat(0xA1);Lcd_WriteDat(0xE3);Int_To_Str(GPS.latitude_Cent,info);if(strlen(info),,2){i,0;while(info[i]!,'\0'){ch,info[i,,];Lcd_WriteDat(ch);}Lcd_WriteDat(0xA1);Lcd_WriteDat(0xE4);Int_To_Str(GPS.latitude_Second,info);if(strlen(info),,2){i,0;35while(info[i]!,'\0'){ch,info[i,,];Lcd_WriteDat(ch);}}}}Int_To_Str(GPS.longitude_Degree,info);if(strlen(info),,3){Lcd_DispLine(3,2,info);Lcd_WriteDat('');Lcd_WriteDat(0xA1);Lcd_WriteDat(0xE3);Int_To_Str(GPS.longitude_Cent,info);if(strlen(info),,2){Lcd_DispLine(3,5,info);Lcd_WriteDat(0xA1);Lcd_WriteDat(0xE4);Int_To_Str(GPS.longitude_Second,info);if(strlen(info),,2){Lcd_DispLine(3,7,info);}}}ET0,1;}voidShow_Float(floatfla,ucharx,uchary){intintegar;36charInfo[10],ch;uchari;Lcd_SetPos(x,y);integar,(int)fla;Int_To_Str(fla,Info);i,0;while(Info[i]!,'\0'){ch,Info[i,,];Lcd_WriteDat(ch);}Lcd_WriteDat('.');fla,fla-integar;fla,fla*10;integar,(int)fla;fla,fla-integar;ch,integar,0x30;Lcd_WriteDat(ch);fla,fla*10;integar,(int)fla;fla,fla-integar;ch,integar,0x30;Lcd_WriteDat(ch);}
本文档为【基于单片机的简单GPS定位信息显示系统设计毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_496339
暂无简介~
格式:doc
大小:437KB
软件:Word
页数:52
分类:
上传时间:2018-11-18
浏览量:33