毕业设计(论文)-基于单片机的GPS定位仪的研究与实现.doc_第1页
毕业设计(论文)-基于单片机的GPS定位仪的研究与实现.doc_第2页
毕业设计(论文)-基于单片机的GPS定位仪的研究与实现.doc_第3页
毕业设计(论文)-基于单片机的GPS定位仪的研究与实现.doc_第4页
毕业设计(论文)-基于单片机的GPS定位仪的研究与实现.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计说明书(论文) 第 55 页 共 55 页1 绪论人类的第一颗GPS卫星发射进入太空是在1976年3月23日,和其他的普通卫星不同。它的成功运行代表着导航卫星时代的大门正式被打开,我们将正式迈入到卫星定位的时代。导航卫星向我们发来的信息,是允许很多的用户一同使用的三维数据信息。GPS能够为地球天气、海洋领域提供了一种高准确、全天候、全天时的检测新方法。陆地、海洋和天空的许多用户,一般使用能够接收、交换和跟踪GPS数据的收发装置,这样就可以不受时间、地点、空间运动物体的六维形状数据和三维形状数据的影响。因为GPS能够覆盖整个地球而且精确性度好、抵抗干扰的能力好,具有确定位置十分准确的特点,在各种各样的领域起到了很大的效果,最近几年不管在国内还是在国外都有着十分广阔的运用,并变成了这个以信息时代为主十分重要的一部分。由于各种用于民间GPS技术的不断发展,它的未来是十分值得我们去期待的,尤其是在我们国内对GPS开发使用必将变为以科学技术来促进经济和社会的发展,对中国经济和社会发展带来前所未有的影响。1.1 GPS技术的应用(1) 陆地的应用对各种车辆行驶状态进行监控;对海上航行船只进行导航;对城市环境检测;登山远足旅游者的指引;对特殊的车辆(如救护车)进行引导;对盲人可以引导其过马路;对天气情况的实时监控;监测地球中各大板块运动的情况;陆地和海洋水平面的测定;煤炭金属等资源勘探;降雨的分布;对恐怖分子活动的踪迹进行追踪;对农作物的生长和分布也能检测。(2) 海洋的应用船舶的最优航行路线测定;实时调度和监控的远洋船队航线的导航,特别是近年来许多捕鱼船都在使用;河船的实时调度的导航测量;海上救援搜索和定点测量;结队航行调度远洋船只的导航;对海底石油的测定;沉船位置的精确测量;海底管道铺设路线的测定;地球资源的勘查;水文地质调查;海底地形的测量;海运货物防盗报警;净化海水(海洋溢油追踪报告);定点海上纠纷或事故的认定;炸礁和其他海洋工程的准确定位;港口货运的管理;海洋灾难的检测。(3) 航空的应用民航飞机航线的确定;飞机精密着陆;飞机空中加油控制;飞机编队飞行的安全保护;航空援救搜索和定点测量;机载地球物理勘探;飞机探测灾区大小和标定的测量,如图1.1 Block/R卫星。图1.1 Block/R卫星1.2 GPS在国外与国内的状况及未来发展的情况随着全球经济化的迅速发展,美国宣布2000年到2006年间,在美国国家安全不受任何威胁的条件下,将取消SA政策,这样使得GPS民用信号准确度在全球范围内得到改善,利用C/A码进行单点定位以后,原来的精度由20米提高到了100米,这必将进一步推动GPS技术的应用,提高生产效率、科学水平以及人们的生活质量,促进GPS市场的增长。以下三个方面是卫星导航技术主要发展趋势:一是多个卫星导航系统并存,使系统可用性得到改进,使得应用领域更广泛;二是各种各样组合技术得到推广使用,主要是根据GPS和通信站对定位,航航向角计算的应用;三是卫星导航与无线通信等高新技术相结合使用,如将GPS接收机嵌入到手机,消费电子产品,笔记本电脑,PDA和手表中,从根本上促进信息技术的全面发展。用户的GPS1全球定位系统可连续提供三维空间位置,并能提供高精度的定时服务,定位的误差不会大于10米,授时的误差不会大于0.1秒,授时的精度高于0.000001秒。如果把我单位的GPS定位信息通过无线通信连续不断的传输到指挥中心,并通过侦察手段获得敌人位置信息,集中显示在大屏幕上,可以使我们的指挥人员了解战场敌我双方的动态趋势2,从而提供了一个重要准确的信息。1.3 本章小结本章主要讲解了GPS的发展现状,来了解GPS对日常生活的作用。然后又为我们介绍了GPS主要的应用,并介绍GPS的功能及要求。2 总体方案的设计根据设计方案要求,该基于单片机GPS电路设计系统主要由GPS信号接收部分(M-8729 GPS信号接收模块)、控制芯片(STC89C52单片机)、显示部分(12864LCD)液晶显示模块)这几部分构成,这些装置组成的系统可以进行数据信号的接收与显示。2.1 系统的结构在设计该软件时采用了模块化的思想,之所以采用的模块化的设计思想,主要是想到了软件模块化后方便软件的调试,同时也方便了该软件的移植,在不同的硬件平台上运行该软件只需要更改相应的软件模块就可以实现3。模块化设计在软件设计上运用是十分的广泛的,采用模块化设计,当出现问题以后便于检查。同时对于其他人查阅时也便于理解,可以方便的调用到其它程序中。根据设计要求,拟定出系统结构框图。如图2.1所示。图2.1 GPS定位信息显示系统原理框图2.2 显示器的选择各种型号的液晶通常是按照显示字符的行数或液晶点阵的行、列数来命名。例如1602表示每行显示16个字符,一共可以显示出两行。这类液晶通常被称为字符型液晶,只能显示ASCII码字符。12232代表显示器图像由122列、32行构成,共有122*32个点来绘出各种图形。12864代表显示器由128列、64行构成,总共128*64个点来表示各种图形,并且带有中文库可以直接使用。2.3 GPS的选择GPS模块主要有以下几个性能指标:(1) 卫星轨道有24颗卫星在六个不一样的轨道上运行(一组四颗),大多数定位接收器能够检测到812个,基本上不会大于12个卫星在同一侧4。计算LAT/LONG(2维)坐标最少使用3颗。再加上一颗就能够算出空间坐标。(2) 并行通道现在市场上的GPS接收机一般都使用12条并行的通道,让它们去跟踪每个卫星的运行情况,每个通道都拥有快速启动的特点,并能够在偏远的山区也具有十分好的接收能力。通常它们是不要在外部装上天线,除非在一个比较密封的环境中,如飞机的机舱中,汽车上。(3) 定位时间是指启动GPS接收机来确定现在位置所需的时间。对于有很多通道的卫星,如果你在最后一个地方进行测试,冷启动需要的时间一般为4至6分钟,热启动时是13到28秒,而2通道的接收器,冷启动时大多超过16分钟,热启动3到5分钟。(4) DGPS功能要使SA和大气层所带来的影响降低到最低水平,有一个被称为DGPS的发送机装置。这是一种可以让GPS(在搜索现场150 250公里半径内设置)接收到从卫星发出的数据,它理论上确切地知道卫星数据需要多少时间传输,比较它与实际传输时间,并计算出“差”,这是非常接近的SA和大气折射带来的影响5,它会传出数据,其他GPS接收机可以用它来获得一个更准确的信息数据。2.4 本章小结本章大体上介绍了整个系统的设计思想,根据一些器件的性能以及指标再结合所设计的系统具体选择什么样的器件。3 系统硬件电路的设计硬件电路的设计是非常重要的,该系统中的硬件部分主要由GPS信号接收部分(M-8729 GPS信号接收模块)、控制芯片(STC89C52单片机)、显示部分(12864LCD)液晶显示模块)这几部分构成。根据各模块的功能然后将它们组合在一起构成所需的系统。3.1 STC89C52单片机STC89C52是具有 8K 在系统可编程Flash 存储器。它在使用MCS-51内核基础上做了大量的改进使得芯片具有更好的功能6。3.1.1 STT89C52单片机的结构原理STC89C52与标准的80C51和80C52的单片机的引脚是可以互相兼容的。在单芯片上,具有超高精度的性质,还有逻辑加密的功能。其引脚排列如图3.1所示。图3.1 STC89C52引脚图芯片功能引脚描述。引脚功能说明:VCC:电源电压。GND:地。ALE/PROG:对外部数据和程序存储器存取时间低八位字节地址进行寻址时,将会允许脉冲锁存输出。在正常情况下,地址锁存器依然能够采用1 / 6的固定输出脉冲信号作为时钟的频率,也可用于其他目的。必要时可以对地址锁存使8EH单元处于静态操作中,D0的特殊功能寄存器在此时为“1”。EA/VPP:程序存储器控制信号。为了使中央处理器访问外部程序存储器能够从地址0000H开始执行到FFFFH,总的中断要保持接地的所谓低状态。特别提醒:一般中断在高电平上,连接到电源端口,中央处理器执行指令是对内部程序存储器进行操作。在编程的快闪记忆体中,VPP电源引脚为12V这个是能够接受的,所以它是编程+12V电源VPP编程电压所需的必须条件7。XTAL1:振荡器的内部时钟输出端和反相放大器端。XTAL2:振荡器的反相放大的输出端。特殊功能寄存器:在单片机STC89C52的片上存储器,从80H到FFH的128个存储单元,该单元的特殊功能寄存器是指从80H至FFH 128字节所有字节,只有少数可以使用。所以我会说这是没有价值的单位定义,要一直是“0”就是没有定义的,而不是单位的数据“1”写的,最关键的原因是这些单元在未来的新功能产品会给出。除了STC89C51单片机以外。STC89C52具有相同的计数器和定时器计数0与定时器计数1,还增加了一个定时计数器2。数据存储器:单片机STC89C52有256字节的内部RAM。特殊功能的寄存器从80H到FFH高128字节与地址是重合的,换句话说是特殊功能寄存器的地址与高128字节的RAM的地址和是相同的,但是他们在物理上的位置是不同的。Flash存储器编程:STC89C52单片机它内部存储器编程总共有8K字节,存储的内容已经变为高电平的状态,使用者可以依据你想要编程存储器进行操作。程序可采用两个电平,分别为高电平和低电平8,跟能够编写的两个信号的端口电压。我们将用到P1.0和P3.2引脚,因此对P1和P3口的作用有如下的说明:P1口:双向的I/O口,此接口一共具有8位,此口不需要接上拉电阻,由单片机内部自己提供。P2口:作为普通的I/O使用时,不需要在外接上拉电阻。P3口:8个双向I/O口,并且自带上拉电阻。在将1写入到P3口时,P3作为输入。而外部为低电平,这时P3口将输出电流,这是因为上拉缘故。其中P3.2是外部中断0。串行口的控制与状态寄存器为SCON和PCON。SCON用于定义串行口的工作方式及控制中断接收和发送。字节地址为98H,其各位定义如表3.2所示。表3.2 串行控制寄存器D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0、SM1:串行口工作方式选择位,其定义如表3.3所示。 表3.3 串行口工作方式选择SM0、SM1工作方式功能描述波特率0 0方式08位移位寄存器fosc/120 1方式110位UART可变1 0方式211位UARTfosc/64或fosc/321 1方式311位UART可变其中fosc为晶体震荡器频率。根据NMEA - 0183数据格式及设计要求,选用工作方式1。REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。TI:发送中断标志。在方式0中,当第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI必须用软件清0。RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。PCON:是为了在单片机上能够实现对电源进行控制而附加上去的。其中它的最高位是SMOD。SMOD=1时,方式1、方式2和方式3波特率都加倍。本设计SMOD设置为0。波特率设置:波特率指传送数据的速率。异步通信的传送速率一般为50到19200b/s。由于本设计选用工作方式1,这里只介绍方式1的波特率设置规则89。单片机的工作方式1一般选择定时器T1作为波特率发生器9。设置定时器T1为定时方式(C/T=0),让T1计数内部脉冲,即计数率为fosc/12。首先设置TH1和TL1的初使值为X,一次(256-X)个机器周期,定时器将会产生一次溢出10。因此,T1溢出率= T1计数率/产生溢出所需的周期数;波特率=定时器T1溢出率。3.1.2 STC89C52单片机的主要特性主要特征如下:(1) 与MCS-51兼容。(2) 寿命:1000写/擦循环。 (3) 8K字节可编程闪烁存储器。 (4) 数据保留时间:10年。(5) 全静态工作:0HZ-24MHZ。(6) 三个16位定时器/计数器。(7) 三级程序存储器锁定。(8) 32可编程I/O线。(9) 6个中断源。 (10) 1288位内部RAM。3.1.3 晶振电路晶振的作用是:为单片机提供必要的信号。晶振电路中接有两个电容,我们一般把它们也叫做是负载电容。对于电容的值是没有严格的规定,但是电容取值时为了保证振荡频率输出的稳定的大小这一目的11。振荡电路对起振速度有一定的影响,所以C1、C2可在30皮法振荡值范围。振荡电路如图3.4所示。图3.4 振荡电路3.2 GPS模块3.2.1 概述 根据设计需要,GPS模块选用M-8729,如图3-3所示。M-8729是一种依据低耗电Mediatek GPS理论方案设计出来的小型23.226.57 mm GPS引擎机板。它是一种低功耗、高性能、小型并很容易使用的GPS接收模块,应用范围十分的广泛。它对于定位的使用提供高达-159dBm的绝佳灵敏度与快速的第一次定位时间,冷启动和热启动都非常的快。其外观如图3.5所示。3.2.2 规格特性(1) 暖开机:38秒。(2) 冷开机:42秒。(3) 模块重量:7克。(4) 定位精度:大于3米。(5) 尺寸:25.425.47公厘。(6) 操作温度:-10到+60。 (7) 操作电流:低于80mA(无天线)。 图3.5 GPS模块(8) 支援通讯协定:NMEA-0183v2.2版本规格输出。 (9) 支持外接天线。3.2.3 管脚介绍及与单片机的接口电路天线模块利用微带天线使其具有体积小,性能高,灵敏度强的优点。它工作电压为2.7V3.3V,工作电流仅为75mA,由GSP2e数字IC和GSW2模块化软件组成。该芯片具有六个引脚但是我们只使用其中的三个引脚,及一个接地引脚,一个电源引脚,还有一个数据接收引脚。我们不需要对GPS进行发送数据,所以这三个引脚就足够满足我们要求。本设计主要是把GPS接收来的数据进行处理后显示出来。M-8729除增加了中央处理器和卫星信号追踪引擎, M-8729在芯片组中集成了兆位存储器(DRAM) , 这个是其它同类产品的八倍。这使其不仅可执行各项GPS 功能,还能为用户应用提供额外存储。该芯片的主要特征如表3.6所示。表3.6 GPS管脚说明管脚管脚名称功能描述1VCC电量输入2TXA 串行数据输出端口3RXA串行数据输入端4RXB串行数据输入端5GND接地6时钟/复位时钟信号输出/复位输入3.3 显示部分3.3.1 LCD12864概述液晶是一种高分子材料,由于它的具有特殊的物理和光学特性,20世纪中期就开始被广泛应用在轻薄型显示器上。12864是一种运用十分广泛的液晶显示屏,12864显示使用ST7920控制器,采用5V电压进行驱动并且带背光,内部共有8192个16*16点,128个字符及64*256点阵来表示RAM。与外部CPU接口采用并行或者串行两种控制方式。如图3.7所示。图3.7 12864引脚图主要技术参数和显示特性:(1) 电源:VCC 3.3V5V(内置正压电路,无需负压)。(2) 显示内容:128列 64行。(3) 显示颜色:绿色。(4) 显示角度:6:00钟直视。(5) 与MCU接口:8位或4位并行/3位串行。(6) 带中文字库。(7) 模块最佳工作电压:3.35.5V。(8) 工作温度(常温型):-10度到+60度。(9) 工作温度(宽温型):-20度到+70度。(10) 可调节对比度。(11) 全屏幕点阵。(12) 多种软件功能。具体的引脚功能如表3.8所示。表3.8 12864液晶引脚引脚号引脚名称方向功能说明1VSS模块的电源地2VDD模块的电源正端3V0LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H为并行;L为串行16NC空脚17RETH/L复位,低电平有效18NC空脚19LED_A背光源正极(5V)20LED_K背光源负极(0V)3.3.2 接口时序计算机与外界的信息交换称为通讯。基本上的通讯方式有两种:(1) 并行通讯:所传送数据的各位同时发送或接收。(2) 串行通讯:所传送的数据的各位按顺序一位一位地发送或接收。8位并行连接时序如下图3.9所示。图3.9 并行连接时序图3.3.3 用户指令集12864指令表如下表3.10所示。指令表1:(RE=0:基本指令集)表3.10 12864指令表指令指令码说明RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除显示0000000001设定DDRAM的地址地址归位000000001X设定DDRAM的地址计数器(AC)到“00H”,并且将游标 移到开头原点位置 进入点设置00000001I/DS用于资料的获得与写入时,控制游标位移方向显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ONB=1:游标位置ON游标或显示移位控制000001S/CR/LXX控制游标移动和显示移位的控制;它不会改变DDRAM的内容功能设定00001DLXREXXDL=1 (必须设为1)RE=1: 扩充指令集动作RE=0: 基本指令集动作设定CGRA地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器续表3.10 12864指令表设定DDRAM地址001AC6AC5AC4AC3AC2AC1AC0设定DDRAM地址到地址计数器(AC)读取忙碌标志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写资料到RAM10D7D6D5D4D3D2D1D0写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)读出RAM的值11D7D6D5D4D3D2D1D0从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)(1) 清除显示如表3.11所示。表3.11 清除显示指令RWRSDB7DB6DB5DB4DB3DB2DB1DB0代码LLLLLLLLLDD=H时,表示液晶工作启动。D=L时,表示液晶工作关闭。(2) 显示状态如表3.12所示。表3.12 设定显示状态指令RWRSDB7DB6DB5DB4DB3DB2DB1DB0代码LLHHA5A4A3A2A1A0Z表示地址计数器可以自动进行计数,可以任选一个数用来作首地址用的。(3) 设定页地址如表3.13所示。表3.13 设定页地址指令RWRSDB7DB6DB5DB4DB3DB2DB1DB0代码LLHLHHHA2A1A0用来表示RAM的所在的行地址是多少,8个行被定做为一个页,此液晶总共是64行,那么就是8页,A2到A0代表0到7页。(4) 设定行地址如表3.14所示。表3.14 设定行地址指令RWRSDB7DB6DB5DB4DB3DB2DB1DB0代码LLLHA5A4A3A2A1A0对DB0到DB7选定一个数据可以设置行地址。(5) 设定读取模式如表3.15所示。表3.15 设定读模式指令RWRSDB7DB6DB5DB4DB3DB2DB1DB0代码LHBUSYLON/OFFRETLLLL如果RS=L,R/W=H,当E信号在高脉冲来时,其输出的结果是DB7到DB0这里面。DB0到DB7:进行数据接收通道。ON/OFF:ON表示开,OFF表示关。(6) 写数据如表3.16所示。表3.16 写显示数据指令RWRSDB7DB6DB5DB4DB3DB2DB1DB0代码LHD7D6D5D4D3D2D1D0D7到D0用作数据的表示,我们都是在这里面操作的。3.4 单片机与GPS硬件图系统硬件电路主要由GPS-8729模块、STC89C52单片机、12864LCD液晶显示器等部分组成12。电源直接通USB接口提供+5V电源,单片机将GPS采集来的数据经过处理以后送给液晶显示器。GPS模块不断地经行刷新,随时更新信息。STC89C52单片机的P0口作为数据输出口与12864LCD液晶的D0D7口相连接。因为只需要接收数据所以GPS-8729模块的2号引脚接单片机的10号引脚,1号引脚接地,3号引脚接电源由单片机直接供电。12864LCD液晶的使能信号,指令/数据选择信号,读写选择信号等控制引脚接单片机的P3口,调节电位器W2可以调接液晶显示的亮度,已到达最好显示效果。用三个发光二极管用作指示灯,三个发光二级管接成共阳极的形式。当D1亮时表示GPS模块在接收数据,D2用作指示第一页的经度和纬度信息,D3用于指示第二页的日期和时间信息13。通过这些指示灯就可以很方便知道GPS模块的工作状态。在晶振电路中晶振要选11.05924MHz,因为需要进行串口通讯这样的数值方便程序的编写。具体的硬件如图3.17所示。图3.17 单片机与GPS硬件图3.5 本章小结本章具体介绍了系统的硬件部分,其中主要包括STC89C52单片机部分,GPS模块部分,液晶显示部分等。4 系统软件设计单片机的发展除了重要的硬件外,也少不了软件,使用汇编语言程序转换成CPU能够执行的机器代码有两种方式,一个叫做人工汇编,另一个叫做机器汇编,现在已很少使用前者14。4.1 软件程序的编写程序流程图如图4.1所示。图4.1 程序流程图4.1.1 数据接收处理模块数据处理模块的主要任务是从GPS得到的信息传送出去15。具体时间转换如下图4.2所示。 图4.2 时间转换图GPS接收到信息和现实信息有所不同。首先必须将GPS接受到 “E,S,W,N”对应成“东,南,西,北”4个字符;其次GPS接受到是“度度分分.分分分分”格式。但需要是“度度分分秒秒”的形式,就要进行变换。转换的方法是10060。另外,考虑到最后两位“分分”即使在完全不动的情况下变化也没有规律,因此把这两位数字舍去16。其中经度显示3位数,然后显示单位“度”;再显示2位数字,再显示“分”,再显示2位数字,再显示“秒”。纬度也是一样,只不过刚开始显示的是两位数字。具体转换如下图4.3所示。图4.3 经纬度转换流程图4.1.2 初始化模块在完成初始化模块后,对各种模式设置初始状态,例如串行的工作模式、控制波特率和中断工作方式;对液晶显示器设置开机画面和显示方式;解决对GPS 模块串口的成功通信。如图4.4所示。图4.4 液晶显示流程图4.1.3 GPS数据包解析GPS上电后,每隔一定的时间就会返回一定格式的数据,数据格式为:$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x。每行开头的字符都是$,接着是信息类型,后面是数据,以逗号分隔开。一行完整的数据如下:$GPRMC,080655.00,A,4546.40891,N,12639.65641,E,1.045,328.42,170809,A*60。信息类型为:GPGSV:可见卫星信息。GPGLL:地理定位信息。GPRMC:推荐最小定位信息。GPVTG:地面速度信息。GPGGA:GPS定位信息。GPGSA:当前卫星信息。这里我们只解析GPRMC和GPGGA的信息。GPRMC数据格式:$GPRMC,a,b,c,d,e,f,g,h,l,m,n,o*hh。GPRMC数据详细解释如表4.5所示。表4.5 GPRMC数据详细解释位置描述aUTC时间,hhmmss.sss(时分秒)时间,这是世界时间(UTC),它和北京时间相差8小时我们要把它转换一下。b定位状态,A=有效定位,V=无效定位定位状态,在没有有效数据前,该位是V,其他数据都没有,收到有用数据后,就变为 A,它后面才开始有数据。c纬度ddmm.mmmm(度分)格式(前面的0也将被传输)如接收到的纬度是:4546.40891,4546.40891 / 100 = 45.4640891 可以直接读出45度;4546.4089145 * 100 = 46.40891 可以直接读出46分;46.4089146 = 0.40891 * 60 = 24.5346 读出24秒;所以纬度是:45度46分24秒。d纬度半球N(北半球)或S(南半球)这个位有两种值N(北纬)和S(南纬)。e经度dddmm.mmmm(度分)格式(前面的0也将被传输)经度的计算方法和纬度的计算方法一样。f经度半球E(东经)或W(西经)这个位有两种值E(东经)和W(西经)。g地面速率(000.0999.9节,前面的0也将被传输)h地面航向(000.0359.9度,以真北为参考基准,前面的0也将被传输)lUTC日期,ddmmyy(日月年)格式m磁偏角(000.0180.0度,前面的0也将被传输)n磁偏角方向,E(东)或W(西)指的是偏离正北的角度。o无GPGGA数据格式:$GPGGA,a,b,c,d,e,f,g,h,l,M,m,M,n,o*xx。GPGGA数据详细解释如表4.6所示。表4.6 GPGGA数据详细解释位置描述aUTC时间,格式为:时时分分秒秒.秒秒秒b纬度,格式为:度度分分.分分分分(第一位是零也将传送)c纬度半球,N或S(北纬或南纬)d经度,格式为度度分分.分分分分(第一位零也将传送)e经度半球,E或W(东经或西经)f定位质量指示,0=定位无效,1=定位有效g使用卫星数量,从00到12(第一个零也将传送)h水平精确度,0.5到99.9l天线离海平面的高度,-9999.9到9999.9米m大地水准面高度,-9999.9到9999.9米n差分参考基站标号,从0000到1023(首位0也将传送)o无4.2 本章小结本章重点介绍了软件部分,包括程序整体的设计框图。对GPS采集来的数据需要经过处理才能得到需要输出的格式。5 系统调试与实验结果硬件调试的主要任务是排除硬件故障,其中包括设计时出现的错误和工艺性故障等。5.1 硬件调试(1) 用万用表检查各个引脚是否焊接好,有无短路,断路,虚焊等现象。(2) 给单片机通上5V的直流电,用万用表测量单片机是否得电。(3) 插上12864液晶看上面是否有中文字显示。(4) 按上GPS模块进行数据接收。(5) 液晶显示上有无出现要显示的信息。首先把三个发光二级管焊好,然后用C语言编写出一段小程序对二级管进行测试,结果发现有一个二极管不发光。我就开始寻找错误,拿着万用表对着电路图把已经焊接好的电路从头到尾仔细的检查了一边,但是没有发现错误,于是我又怀疑是不是二极管坏了。把电源切断后,用万用表测量二极管,二极管发光则证明二极管没问题。最后经过慢慢的排出终于发现了原来是二极管的正负极接反掉了,用电焊将其去下,重新焊接上,二极管终于亮了。二级管里,头子比较大的是负极或引脚比较短的是负极。此时证明单片机已能正常工作了。接下来我把12864液晶显示器插上去,并编写了一段小程序进行测试,看液晶上是否可以显示出来。结果没有显示出预期的画面,并且液晶显示不亮,则证明液晶显示屏没有接上电源,检查发现电源引脚虚焊,修改好后发现液晶亮了但是没有显示出来字。后又感觉单片机P0口的数据线和液晶没有焊好,又用万用表对一个一个引脚进行检查,但是都没问题。后又对GPS模块的电路进行仔细的检查没有发现有短路,断路和虚焊的情况不存在并且GPS模块得电正常,我又怀疑可能由于天气的原因或是因为在房间里没有信号,GPS接收不到卫星发出的信息。于是把其拿到空旷的地方但是依然没有显示出来数据。经过分析后觉得这个问题不应该出在液晶屏和单片机上或是GPS模块上,而有可能是在一些辅助器件上发生了问题,果然经过检查后发现液晶模块对比度调节电阻有问题,由于电位器的电阻始终很大并且无法调小(始终在1K以上),使得数据无法显示,其实此时已经接收到数据了。后来我又重新换了一个电位器进行调节,结果液晶上面显示出来了接收到的数据。液晶上面的背光主要就是通过改变接入电阻的大小来调节的。5.2 实验结果整体硬件结构图如下图5.1所示。图5.1 具体实物图经过多次的测试和改进,2013年3月11日上午在南京理工大学泰州科技学院的男生宿舍三号楼进行测试,接收天线放置于户外用于接收信号,启动GPS接收系统,经过测试,日期和时间液晶显示的结果如下图5.2所示,经度和纬度液晶显示的结果如下图5.3所示。图5.2 日期和时间液晶显示图5.3 经度和纬度液晶显示5.3 实验结果分析在电脑用软件测量数据如下图5.4所示。图5.4 软件测得结果图实验的结果表明我设计的GPS接收系统的时间显示是非常准确的,但是对于经纬度的显示还是存在一些不足,该设计系统数据结果是北纬32度27分57秒,东经119度56分17秒。用笔记本上网在谷歌地图上显示的是北纬32.4650度,东经119.9383度。进行计算后可以得到谷歌上的结果是北纬32度27分54秒,东经119度56分18秒。因为我所使用的GPS模块的版本比较低,并且在实验过程中存在许多的不确定因素,比如气候情况和大气层的影响,以及在谷歌地图上选点的存在一定的误差,最终使得测量的数据与谷歌地图上的实际数据之间存在一定的误差,但是误差是不是很大,因此,本装置的试验结果是准确有效的,满足设计要求。5.4 本章小结本章主要对硬件进行调试,对于任何一个系统硬件调试是十分重要的环节,在调试中可能会遇到一些无法预测的问题,这时就需要仔细的进行查找。 结束语 随着社会经济的不断发展,特别是如今航天事业得到了突飞猛进的发展,一颗颗卫星被发射升天,人们对GPS的使用越来越频繁。随着汽车的不断普及,GPS在导航上有着十分显著的优点,所以GPS在未来有着广阔的市场前景。本次毕业设计,主要是为了解GPS定位原理,GPS接收器和熟悉工作流程工作的原理。GPS信号处理模块由一个M-8729 GPS信号接收模块,单片机通过M-8729 GPS兼容51单片机外围电路的连接,还配备有液晶显示器,可以显示字符,并介绍了GPS接收机的硬件和软件设计。通过这次的毕业设计学到了许多平时课本上学不到的知识,自己亲手去做才会发现许多的问题,当有问题的时候就去解决,我通过到图书馆查资料去和同学讨论,或者和指导老师去交流来解决问题。每当我解决一个问题我就会特别的高兴,因为我学到了知识,知识就是力量,人们常会说书上得来终觉浅,深知此事要躬行。现在很多像我们这样的大学生走出校门以后许多东西都不会。特别对于我们工科生一定要注意实践的重要性,许多的知识都是通过经验积累来的,所以我们在找工作时,用人单位总是要求有工作经验,大家切勿纸上谈兵。总之,在做这次毕业设计的过程中,既复习了已学的专业知识,又学到了许多实际经验,是我人生中一次难得的学习经历,更是对自己综合能力的考验和提高。致 谢时间过得真快,一转眼见四年的大学生活就要结束了,我们即将要步入到社会中去了,走出校门参加工作。在这四年里,我学到了很多的东西,也感到十分充足,但有时也常会有迷茫的感觉。我不知道我们所学到的东西,这些东西将来步入社会有什么作用,总觉得这些东西是相互独立的。毕业设计让我重新认识了这一切,我终于看到了曙光,终于把我们的知识在实践中得到好好的利用。学习是自己的事,自主学习是很重要的我们在学校学的这些是远远不够的,所以我们要学会自主去学习,而毕业设计大大提高我的自学能力,从刚拿到课题什么也不懂,不知怎么下手到后来慢慢摸索着,培养了我的自学能力。大学对于一个人的以后发展有者十分重要的意义,在大学里我们有着很充分的时间去自己利用,所以我们要好好安排时间,合理规划自己的人生。在大学里我们要养成一些好的习惯,这对我们进入工作岗位去工作有着特别大的意义。非常感谢电子电气工程学院所有老师在毕业设计期间为我们提供良好的实验和学习环境。非常感谢我周围的同学,在学习和生活上对我的照顾。最后要感谢我的家人,这么多年以来对我的支持,对我付出那么多无私的爱。没有他们就没有我的现在。 参 考 文 献1 郭天祥. 51单片机C语言教程M. 北京:电子工业出版社,2011.2 窦振中. 单片机外围器件 M. 北京:北京航空航天大学出版社,1998.3 徐惠民, 安德宁. 单片微型计算机原理接口与应用M. 北京:北京邮电大学出版社, 1996.4 郑晓霞. 基于AT89S51单片机实验开发系统设计D. 内蒙古大学,2009.5 戴佳. 51单片机C语言应用程序设计M. 北京:电子工业出版社,2006.6 何立民. 从Cygnal 80C51F看8位单片机发展之路J. 单片机与嵌入式系统应用,2002.7 郝振涛. GPS监控装置 P. 中国专利:CN201629819U,2010.8 俞海红,陈素珊,何勇. GPS定位试验及提高定位精度的方法研究J. 浙江大学学报(农业与生命科学版). 2009年,第25期,P27.9 邹于丰,基于AT89C2051单片机的GPS时钟系列J. 电子世界. 2011年,第5期,P39.10 张俊中,杨传宽,雷伟伟. GPS技术在工程测量中的应用J. 黑龙江科技信息. 2008年,第25期,P17.11 谭浩强. C程序设计M. 北京:清华大学出版社,1998.12 肖洪兵. 跟我学用单片机M. 北京:北京航空航天大学出版社,2002.813 李广第. 单片机基础M. 北京:北京航空航天大学出版社,1999.14 徐惠民,安德宁. 单片微型计算机原理接口与应用M. 北京:北京邮电大学出版社,1996. 15 刘基余. GPS卫星导航定位原理与方法M. 北京:北京科学出版社,2003.16 Guiyun Tian. Foumdation and Application pf Microcontroller M. New York:Spring Press,2008.附录A 程序#include #include #include GPS.h#include LCD.h#include display.hsbit led1 = P10; /接收数据指示灯sbit led2 = P11; /GPRMC数据有效指示灯sbit led3 = P12; /GPGGA数据有效指示灯char xdata rev_buf80; /接收缓存 uchar xdata rev_start = 0; /接收开始标志 uchar xdata rev_stop = 0; /接收停止标志 uchar xdata gps_flag = 0; /GPS处理标志 uchar xdata change_page = 0; /换页显示标志 uchar xdata num = 0; /extern GPS_INFO GPS; /在display.c中定义,使用时要加externvoid Uart_Init(void)TMOD = 0x21;/0010 0001PCON=0X00;TH0=0x3c;TL0=0xb0;TH1=0xfa; / TL1=0xfa;/ 4800 TR1=1; /开启定时器1REN=1; /允许接收数据 SM0=0;SM1=1;TI=0;RI=0;EA=1; /开总中断ES=1; /串口1中断允许ET0 = 1; /定时器1中断允许/*主函数/*/void main(void)uchar error_num = 0;P0=0x00;/wela = 0;/ dula = 0;Uart_Init(); /初始化串口Lcd_Init(); /初始化LCD GPS_Init(); /初始化GPS rev_stop=0; led1 = 0;while(1)if (rev_stop) /如果接收完一行 TR0 = 1; /开启定时器 led1 = 1;if (change_page % 2 = 1) /换页 if (GPS_GGA_Parse(rev_buf, &GPS) /解析GPGGA led2 = 1; led3 = 0;GPS_DisplayTwo(); /显示第二页信息error_num = 0;rev_stop = 0;gps_flag = 0;el

温馨提示

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

评论

0/150

提交评论