本科毕业论文--基于单片机GPS导航设计及LCD实时显示

上传人:ra****d 文档编号:156995756 上传时间:2022-09-28 格式:DOC 页数:56 大小:510KB
收藏 版权申诉 举报 下载
本科毕业论文--基于单片机GPS导航设计及LCD实时显示_第1页
第1页 / 共56页
本科毕业论文--基于单片机GPS导航设计及LCD实时显示_第2页
第2页 / 共56页
本科毕业论文--基于单片机GPS导航设计及LCD实时显示_第3页
第3页 / 共56页
资源描述:

《本科毕业论文--基于单片机GPS导航设计及LCD实时显示》由会员分享,可在线阅读,更多相关《本科毕业论文--基于单片机GPS导航设计及LCD实时显示(56页珍藏版)》请在装配图网上搜索。

1、师范学院成人教育 本科毕业论文设计 题 目:基于单片机GPS导航设计及LCD实时显示学生姓名:学 号:指导教师:院别函授站:继续教育学院专 业:电子信息科学与技术年 级: 师范学院本科生毕业论文论文题目:基于单片机GPS导航设计及LCD实时显示论文摘要:GPS导航广泛应用于现实生活中,成为人类日常生活不可或缺的一局部。它的功能是实现对目标物体的定位、监测。不难发现,越来越多的汽车、 等具备了GPS功能,我们也切实感受到其为我们生活带来的便捷。基于这样的现状及GPS广阔的应用前景,单片机GPS导航设计以及实时显示是个值得研究的课题。本论文从硬件、软件两局部进行对如何利用单片机、GPS接收模块、L

2、CD12864液晶显示模块等器件来实现GPS导航功能的分析, MCS51系列单片机与GPS接收模块串行通信的实现这一局部根据了硬件特点进行阐述, GPS模块数据输出根本原理是本设计的根底,利用C语言对接收到的数据进行提取。最终设计成具备携带方便、精度精准、应用广泛、全天实时显示特点的小型机器设备。关键词: GPS导航;单片机;GPS接收模块;LCD12864液晶显示模块目 录系统介绍41.1 GPS定位系统背景和开展41.2 GPS定位系统功能和意义41.3 GPS定位系统根本原理41.4 本设计主要内容52.系统硬件局部设计5系统硬件电路总体结构图5单片机6总体构成和特点6引脚及其功能6主要

3、特性7时钟与复位7接收模块9液晶显示模块112.4.1 12864液晶显示模块概述122.4.2 12864特性122.4.3 12864接口说明123.系统软件局部设计133.2.1 液晶显示模块初始化模块163.4.2 GPS数据接收模块174.系统调试以及试验结果185.总结22附录251.1 GPS定位系统背景和开展1958年,美国因军用需求而诞生了具有开创意义的高新技术GPS,并在1964年正式投入使用。第一代GPS对民用有限制,第二代GPS解除了对民用的限制,真正开始普罗群众。1978年第一颗GPS试验卫星的入轨运行,标志着无线电导航定位的动态点为导航卫星。GPS卫星所发送的导航定

4、位信号,是一种可供无数用户共享的空间信息资源。伴随经济的迅猛开展,人们对便捷舒适生活的要求越来越高。GPS导航的特点恰恰迎合人们的需求,精准、实时、快速、广泛的优点逐渐使其占领了市场,在众多领域发挥着不可替代的作用。展望未来,我国将越来越重视关于GPS产品的开发和推广,这也将推动其他相关产业的迅猛开展,相信科技的力量将为我国经济开展带来深远的影响。1.2 GPS定位系统功能和意义GPS定位系统通过太空卫星、地面控制系统、用户设备这三局部来实现对目标物体的定位、监测,并通过显示器为人类应用。它的广泛普及解决了生活中的实际问题,比方说GPS导航在汽车方面的应用。近几十年,经济速度的增长可谓是突飞猛

5、进,人们生活质量也在一步步提升中,不少家庭购置了汽车。然而,在享受生活的同时,也感受到了有些道路远远承受不了现有的机动车拥有量。确实,道路的修建速度并没有追上机动车的增长速度,造成了交通拥挤、环境恶化。许多城市亟待解决道路状况相对滞后的局面,智能交通系统ITS应运而生,有效的改变解决了道路交通难题。GPS在车辆定位上的应用是ITS 的根底环节。比方说,人们驾驶汽车,需要知道到达目的地的路线及其周边的环境,借助电子地图等手段,就可以为人类依据道路实际情况,提供适合的路线,为司机节省了时间,油耗提高了效率,防止了选择的盲目性,利用定位系统解决了交通实际难题,到达改善交通状况的目的。GPS定位系统已

6、经成为现实生活中不可或缺的一局部。1.3 GPS定位系统根本原理空间卫星、地面控制系统、用户接收设备三局部构成了GPS定位系统。24颗运行卫星分布在六轨道平面,它是以55度倾角分布,使得地球任意位置任何时刻都可以接收到六颗卫星信息,不断运行的卫星在不同地点不间断地为人类发布位置信息。地面控制局部主要有主控站、地面行链天线、五个监测站和通讯辅助系统。主控站负责管理和协调整个地面监控系统的工作,监控站主要任务是为主控站提供卫星观测数据,用GPS接收机对视界内每颗卫星进行连续观测,所有观测数据连同气象数据传送到主控站。主控站通过地面上行链天线设施对卫星进行指挥和控制,以及向卫星上行加载导航电文和其他

7、数据。用户接收设备显而易见是用以接收卫星发出的信号。GPS系统的根本定位原理是:时刻运动的每颗空间卫星不断发布时间和位置的信号,用户接收设备用以测量每颗卫星信号到接收机的时间延迟,信号的传输速度,那么计算出接收机到不同卫星的距离就显而易见了。在四颗卫星的数据同时被收集到的时候,就可以算出三维坐标和时间。1.4 本设计主要内容基于51单片机的GPS导航设计是在单片机的根底上进行拓展和加深,然后选择型号和性能适宜的51单片机对GPS接收模块接收到的数据进行处理,利用LCD12864液晶显示装置进行显示,这就是此次设计的根本原理。本次设计软硬件结合,GPS接收模块的性能特点是我们首先要学习和掌握的,

8、基于对接收模块性能的了解,我们要利用所学过的单片机编程和应用的相关知识对接收模块里面采集的卫星定位信息进行计算和提取,最终将需要的信息显示在准备好的LED显示屏上。基于单片机的GPS定位及实时显示系统在硬件上由单片机、GPS接收模块、12864液晶显示模块组成。经过比拟和分析,本实验决定选用MCS-51单片机和HOLUX GR-87作为单片机和接收模块。现设计总体框图如下:图2-1 硬件电路总体结构框图单片微型计算机简称单片机,是指在一块芯片上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器、中断控制器及串行和并行I/O接口等部件。目前MCS-51单片机在

9、实际应用中最为广泛。它的组成结构包括运算器、控制器、片内存储器、4个I/O接口、串行口、定时器/计数器、中断系统、振荡器等功能部件。51单片机的结构简单、小巧、性价比高、可靠性高、功耗小的特点使其广泛应用。MCS-51系列单片机芯片上面均有四十条引脚,HMOS工艺制造的芯片的封装方式为双列直插封装,其引脚示意图及功能介绍如下: 图2-2 MCS-51单片机引脚图各引脚功能说明如下:Vcc40脚:接+5V电源正端。Vss20脚):接+5V电源地端。1XTAL119脚:反向放大器的输入端,这个放大器构成了片内振荡器。2XTAL218脚:反向放大器的输出端,这个放大器构成了片内振荡器。四个8位并行I

10、/O端口:P3口8位双向口线。1ALE/PROG30脚:地址锁存有效信号的输出端。2PSEN29脚:片外程序存储器读选通信号的输出端。3RST/ Vpd(9脚):该引脚为单片机上电复位或掉电保护端。4EA/ Vpp31脚;片外程序存储器选通端。MCS-51单片机主要特性见表2-1。片内带振荡器,振荡频率fosc范围为1.212MHZ;可有时钟输出2个16位定时器/计数器128个字节的片内数据存储器有一个中断控制器,可管理6个中断源(51子系列1是5个中断源)、两个优先级4KB的片内程序存储器8031无111条指令,其中包含乘法指令和除法指令程序存储器的寻址范围为64KB有强的位寻址、位处理能力

11、片外数据存储器的寻址范围为64KB片内采用单总线结构21个字节专用存放器用单一+5V电源4个8位并行I/O接口:P0、P1、P2、P31个8位的微处理器CPU1个全双工串行I/O接口,可多机通信表2-1 MCS-51单片机主要特性表MCS-51单片机芯片内部设有一个反相放大器所构成的振荡器,XTAL1和XTAL2分别为振荡电路的输入端和输出端,时钟可以由内部或外部产生。内部时钟电路如图2-3a所示。如果在XTAL1和XTAL2引脚上外接定时元件,那么内部振荡电路上就会产生自激震荡。定时元件通常是用石英晶体和电容组成的并联谐振回路。晶振频率可以在1.2-12MHz之间选择,通常选择为6MHz,C

12、1、C2电容值取530pF,电容的大小可以起频率微调的作用。外部时钟电路如图2-3b所示,XTAL1接地,XTAL2接外部振荡器,对外部振荡器信号无特殊要求,只需保证脉冲宽度,一般频率为低于12MHz的方波信号。图2-3 MCS-51单片机芯片内、外时钟电路单片机复位是使CPU和系统中的其他的功能部件都处在一个确定的初始状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。必须满足复位条件时才可以开始复位,即必须使RST/ Vpd或RST引脚9加上持续两个机器周期24个震荡周期的高电平。复位后内部各专用存放

13、器状态见表2-2。 PC0000HTMOD 00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0-P3FFHSCON00HIP*00000BSBUF不定IE0*00000BPCON0*0000表2-2复位后内部各专用存放器状态整个复位电路包括芯片内、外两局部。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。接收机的关键之处就是在于GPS接收模块的选择,现在市场上的接收模块种类很多,大体的组成结构是相似的。

14、主要由CPU、低噪声下变频器、储存器、并行信号通道等组成。本次使用的是HOLUX GR-87接收模块。GPS接收模块通过它的接收天线获取卫星信号,经过变换、放大和处理等一系列处理,来测定出GPS信号在卫星到接收天线之间的传播时间,翻译出GPS卫星所发送的导航电文,实时的计算出接收天线的三维坐标。用户通过输入输出接口,和GPS接收模块实现信息交换,实现功能。GPS接收模块内部结构如图2-4所示。图2-4 GPS接收模块内部结构HOLUX GR-87是美国瑟孚公司设计的一款具有高效率、耗电少的特点的卫星接收模块,采用SiRF公司设计的第三代高灵敏度芯片starSTAR III,内建ARM7TDMI

15、 CPU 可符合客制需求,符合严格的专业需要。它主要性能指标如表2-3:输入方式NMEA,SiRF二进制工作温度操作温度: -40 到+85存放温度: -45 到+100定位精度10m定位时间启动时间冷启动 45秒, 温启动 38秒,热启动 8秒工作电压3.3V-5.5VDC 尺寸25.4 25.4 7mm表2-3 HOLUX GR-87主要性能指标特点: 1、能够有效地快速追踪定位二十颗卫星。2、尺寸小巧。3、芯片内置二十万个卫星追踪运算器,大幅提升搜寻及运算卫星信号的能力。4、内建RTCM SC-104 DGPS和WASS/EGNOS解调器。5、省电, 能开启省电模式,可固定时间开启定位功

16、能。6、支援NMEA-0183 v2.2版本规格输出。管脚介绍:管脚管脚名称功能描述1VCC-5V2TXA串行数据输出端口A CMOS 3V:Voh 2.4V Vol 0.4V Ioh=Iol=2mA3RXA串行数据输入端A (CMOS 3V: Vih0.7*VCC Vil0.3*VCC)4RXB串行数据输入端B (CMOS 3V: Vih0.7*VCC Vil0.3*VCC)5GND接地6时钟/复位时钟 :1PPS时钟信号输出(Vil0.2V脉冲宽度10ms)。 复位: 复位输入 表2-4管脚介绍液晶显示器LCD的功耗是非常低的,近年来,凭借其卓越的性能,越来越受到各方面的重视。液晶显示模块

17、LCM是把LCD显示屏、线路板、驱动集成电路、和背光电源等部件构造成一个整体,作为独立部件使用。LCM是LCD液晶显示屏的核心,并可以分为以下3种:数显液晶模块、点阵图形液晶模块、点阵字符液晶模块。本文采用的是12864液晶显示模块,其与单片机电路连接如下:图2.5 LCD与51单片机连接示意图2.4.1 12864液晶显示模块概述本次采用的12864显示模块属于点阵图形液晶显示模块,显示的分辨率为128*64,内置含8192个16*16点阵的中文汉字的汉字库、128个8*16点的ASCII字符集以及64*256点阵显示RAM。具有显示汉字、字母、字符、图形的功能。12864液晶显示模块接口方

18、式不仅具有4或8位并行,还具有2或3线串行。12864的优点有操作方便、成效低、价格实惠。2.4.2 12864特性2显示分辨率:128*643时钟频率:2MHZ4视角方向:6点钟直视5接口方式:4或8位并行,还具有2或3线串行6工作温度(Ta):060(常温) / -2075宽温97显示颜色:黄绿8显示方式:STN、半透、正显。2.4.3 12864接口说明引脚号引脚名称电平功能描述1VSS0V电源地2VCC3. 0+5V电源正端+5V3V0-比照度亮度调节4RS(CSH/LRS=“H,表示DB7DB0为显示数据RS=“L,表示DB7DB0为显示指令数据5R/W(SID)H/LH,读状态;L

19、,写状态6E(SCLK)H/L读写使能7-14DB0DB7H/L数据总线15PSBH/LH:并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDDLED电源正+5V20KVSS LED电源负表2-5接口说明3.1 NMEA-0183数据格式制定NMEA协议是为了在不同的GPS全球定位系统导航设备之中建立统一的BTCM海事无线电技术委员会的标准,由美国国家海洋电子协会制定的标准格式。依据NMEA-0183协议的标准标准,GPS接收机将位置、速度等信息通过串口传送到PC机、PDA等设备。该协议是GPS接收机应当遵守的标准协议,也是

20、目前GPS接收机上使用最广泛的协议,几乎所有的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。GPS接收模块的通用化和互换性因这种协议的广泛应用而大大提高。此格式输出的语句采用的是ASCII码,其串行通信默认参数为:波特率=4800bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。帧格式形如:$aaccc,ddd,ddd,ddd*hh 1) “$:帧命令起始位;2) aaccc:地址域,前两位为识别符,后三位为语句名;3) dddddd:数据; 4) “*:校验和前缀; 5) hh:校验和check sum,$与*之间的所有字符ASCII码的校验和

21、各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符。 6) :CRCarriage Return + LFLine Feed帧结束,回车和换行。NMEA-0183协议定义的语句非常多,GPS接收模块可以接收的语句成为输入语句。输入语句:GPRMI,*hh纬度ddmm.mmmm 度分格式前面的0也将被传输; 纬度半球N北纬或S南纬; 经度dddmm.mmmm 度分格式前面的0也将被传输; 经度半球E东经或W西经; UTC日期,ddmmyy日月年格式; UTC时间,hhmmss时分秒格式; 接收机命令,A是自动定位,R是机器重新启动。输出语句: 全球定位数据: $GPGGA,* U

22、TC时间,格式为hhmmss.sss; 纬度,格式为 ddmm.mmmm前导位数缺乏那么补0; 纬度半球,N北纬或S南纬; 经度,格式为 dddmm.mmmm前导位数缺乏那么补0; 经度半球,E东经或W西经; 定位质量指示,0=定位无效,1=定位有效; 使用卫星数量,从00到12前导位数缺乏那么补0; 水平精确度,0.5到99.9; 天线离海平面的高度,-9999.9到9999.9米 ; 高度单位,M表示单位米; 大地椭球面相对海平面的高度,-999.9到9999.9米; 高度单位,M表示单位米; 差分GPS数据期限RTCM SC-104,最后设立RTCM传送的秒数量; 差分参考基站标号,从0

23、000至1023前导位数缺乏那么补0; 校验和。卫星状态信息: $GPGSV,.,* 总的GSV语句电文数; 当前GSV语句号; 可视卫星总数,00至12; 卫星编号,01至32; 卫星仰角,00至90度; 卫星方位角,000至359度,实际值; 信噪比C/No,00至99dB;无表未接收到讯号; 校验和。运输定位数据:$GPRMC,,*hh其中“RMC为语句识别符;“GP为交谈识别符; “hh为校验和,它代表了“$与“*之间所有字符的按位的异或值不包括这两个字符。$GPRMC语句数据区的内容如下:定位点协调世界的时间UTC,hhmmss时分秒格式;定位状态,V为无效定位,A为有效定位;定位点

24、纬度,ddmm.mmmm度分格式;纬度半球,N北半球或S南半球;定位点经度,dddmm.mmmm度分格式;经度半球,E东经或W西经;地面速率,000.0999.9节;地面航向,000.0359.9度;UTC日期,ddmmyy日月年格式;磁偏角,000.0180度;磁偏角方向,E东或W西;工作模式:A=自主,D=差分,E=评估,N=数据无效。3.2 主程序流程图如何实现基于单片机原理提取GPS接收模块接收到的信息,以及将接收到的目的信息按一定格式显示在LCD液晶显示模块上面,是设计的重要局部。为了更方便的对软件进行修改调试,我决定采用模块化思想。所谓模块化,就是处理复杂问题时将问题分解成假设干局

25、部,将程序分为主程序、子程序、子过程的框架模式,这样的好处显而易见,哪局部出问题需要调试哪局部就可以,而且更换硬件平台的话,只更换相应的软件模块就可以。此次程序设计将模块分为三局部:液晶显示模块初始化模块,GPS数据接收模块,单片机模块。图3-1 主程序流程图3.2.1 液晶显示模块初始化模块在该设计中所使用的是12864液晶显示模块,其初始化程序如下所示:/液晶屏初始化void lcd_init()/转换到文本模式write_command( 0x30 );write_command( 0x30 );write_command( 0x0c );write_command( 0x01 );wr

26、ite_command( 0x06 );/转换到图形模式/write_command( 0x34 );/write_command( 0x36 );3.4.2 GPS数据接收模块判断单片机是否接收到GPS接收模块发送的数据是第一项任务,我们并不是全部需要这些从GPS接收模块发送到单片机的的数据,所以需要通过程序对需要的语句进行识别,目的是取我们所需要的语句GPRMC。其识别程序如下:if (GPS_RMC_Parse(rev_buf, &GPS) /解析GPRMCRMC_YES;GPS_DisplayOne(); /显示GPS信息error_num = 0;gps_flag = 0;rev_s

27、top = 0;elseerror_num+;if (error_num = 20) /如果数据无效超过20次RMC_NO;error_num = 20;GPS_Init(); /返回初始化gps_flag = 0;rev_stop = 0;REV_NO;程序代码详见附录。前面的设计工作暂时告一段落,为了整个定位工作能够顺利实现,现在的主要任务是针对设计中的硬件电路的设计、连接以及软件中的编程查找缺乏,进行软硬件的调试工作。硬件方面的问题可能出现在电路图的连接或者本身的设计上,为了排除电路图连接的失误,首先仔细的按照电路图将每个元件连接起来,并且要注意引脚的一一对应。先不通电,使用万用表检查各

28、个导线之间有没有短路以及开路现象。电源的正负极是否正确以及电源之间的短路问题也需要重点排查。每个芯片管座之间借助导线相连的对应脚之间状态是不是接通。在通电之后各个引脚的电位也需要检查是否正常,排除高压的可能。之后进行断电处理,在单片机插座上插上仿真插头,排除接口不符合要求的意外情况,为下一步进行的调试软件打下根底。用Keil软件将写好的程序代码仿真生成文件并且导入到51单片机中。现在的单片机已经写入了程序,需要插入到单片机管座上,通过观察LCD12864液晶显示模块的显示结果来进行最终硬件的调试工作。4.2 软件调试软件进行调试,就是判断编写的程序是否符合正确。这需要在线的仿真测试来完成,并且

29、是需要在开发工具下完成的。为了软件的调试方便,我们在之前硬件里也提到模块的思想,此时就体会到了这应用给我们带来的方便。我们首先调试每个子程序,在子程序都能实现各自功能的前提下调试整个的程序。我们需要分别运行LCD液晶显示模块以及GPS接收模块的程序。首先运行显示模块,通过观察能否显示相应的字符来判断是否正确。紧接着运行GPS接收模块的程序,需要借助液晶显示模块来查看GPS接收模块的接收情况。最后将两个模块进行结合,GPS接受信息就会显示在12864液晶显示模块上,通过对现象的观察来判定程序的设计正确与否。在GPS采集到的时间信息来进行分析与研究计算的时候,我们最常遇到也是最重要的问题之一是对时

30、间信息的一种转化方法确实定。我们知道从卫星直接传送回地面的时间信号是以UTC来进行计时的,那么这与我们地面运用的北京时间存在一定的差异与关系,此时需要我们对UTC时间与北京时间进行一定的转化计算。转化标准为:UTC时间为北京时间减去8小时,在超出24小时的局部应该将满24小时作零处理。具体程序如下:/转换时间void switch_time( uint16 d_number, uint16 index )uint16 time;+index;if( d_number = 1 ) *P_Watchdog_Clear = 1;time = ( buffer index + 1 - 0x30 ) +

31、 ( buffer index + 0 - 0x30 ) * 10;time += 8;if( time = 24 ) time -= 24; write_command( 0x90 ); write_data( T ); write_data( : ); write_data( ); write_data( ); write_data( time / 10 + 0x30 ); write_data( time % 10 + 0x30 ); write_data( - ); write_data( buffer index + 2 ); write_data( buffer index + 3

32、 ); write_data( - ); write_data( buffer index + 4 ); write_data( buffer index + 5 );4.3 相关实验结果历经很屡次的改良、测试,接收天线放置于户外用来接收信号,启动GPS接收系统,经过测试,液晶显示的结果如下列图5-1:现展示GPS反面电路板: GPS天线:启动接收程序,测得最终试验结果:随着经济的快速开展,人们对生活高质量的需求也逐渐明显,对人类生活起到方便作用的GPS定位系统也渐渐走进了我们的生活。相信GPS定位系统显著地特点会使其大有开展之势,从众多方面为人类生活提供便利。我们将会在科技的进步中感受生活的

33、美好。我们应该着力普及GPS定位系统的应用,很多普通的消费者反映定位系统的价格仍然略贵,定位系统中很多功能实际消费者并不认可。所以说为了更快的普及这一利民的设备,需要设计者和生产者共同的支持。保存具有实用性、普遍性的功能,剔除非常专业的、普通消费者并不需要的一些功能。只有这样,GPS才会真正的造福于广阔消费者,让它成为人人买得起、用得起的物美价廉的好设备。这次通过对GPS定位系统的毕业设计,我加深了对定位系统的了解。通过一系列的学习和研究,主要从硬件、软件两方面对设计进行了阐述。 在设计原理的根底上,学习了解GPS接收模块的原理和使用,结合其他局部的流程设计,最终将各局部融合在一起。在本次设计

34、中,GPS接收模块借助HOLUX GR-87来实现。根本的外围电路是由HOLUX GR-87和51单片机串行连接,再与LCD液晶显示模块相连接,就满足了硬件所需。大学本科四年的专业知识奠定了这次论文设计的理论根底,通过图书馆查找文献书籍、利用网络查找相关知识来加强理论能力,当然理论是远远不够的,只有理论和实践相结合,才能真正做到对论文的完整设计。这是一次全新的学习过程,培养了我抛开课本,解决实际问题的能力以及在设计论文编排上的能力。论文需要从哪几方面入手,在哪些方面详略写,都是需琢磨的。这次设计增长了经验,提高了能力。论文的完稿对于我来说是自我认知的提升的一件事情,这份提升不仅是通过理论知识的

35、提高而带来的,更是自己在面对问题是迎难而上解决问题后的内心的强大带来的。这次论文设计是我不断挑战不断提高的动力,也教会了我只有理论和实践相结合才可以把问题解决的更好。我知道虽然经过学习,但是,目前阶段我的水平还很有限,论文也还有很多缺乏,设计出来的GPS定位系统也只是简单地设计,我的各项能力还有待提高。但是,这次设计确实是稳固了知识,锻炼了能力,考察了水平,增长了见识。总之,这是我学习生涯里难忘的一次设计。参考文献1 刘基余.GPS卫星导航定位原理与方法M,北京:科学出版社,2003.2 黄智伟.全球定位系统原理及其应用 ,北京:国防工业出版社,2006.3 蔡振江,索雪松.单片机原理及应用第

36、二版,北京:电子工业出版社,2021.4 张立科.单片机典型模块设计实例导航M,北京:人民邮电出版社,2000.5 余锡存,曹国华.单片机原理及接口技术M,西安:西安电子科技大学出版社,2021.6 姚敏,郭庆.基于MCS-51系列单片机的GPS独立定位设备的研究J,计算机与信息技术,2006,2(8):79-82.7 李勇军,杨青,庞树杰,等.基于OEM板的GPS接收机设计J,农机化研究,2006,5 (12):109-111.致谢在此,首先我要感谢耐心细致、知识丰富,给我们很大帮助的甄老师!在毕业设计期间,从设计题目的选择,到资料的查找、原理的讲解,再到后来毕业论文的结构布局和报告内容的修

37、改都给予我们耐心的辅导。在这里我要向老师表示最衷心最诚挚地感谢!我们有很多根底理论知识掌握不牢,一面帮我们查漏补缺,一面发挥我们的特长,让我们的课题能够顺利有序地进行到满足要求。其次,我还要感谢我们课题组一起奋斗的同学,在共同的学习中,我们互帮互助,愉快地完成了毕业设计!最后,向在这四年期间帮助过、关心过我的老师和同学致以衷心地感谢,愿大家身体健康、工作愉快轻松、生活幸福安康!附录 主程序/定义头文件,函数和变量#include #include #include #include GPS.h#include LCD.h#include display.hchar xdata rev_buf8

38、0; /接收缓存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; void Uart_Init(void)TMOD = 0x21;/0010 0001PCON=0X00;TH0=0x3c;TL0=0xb0;TH1=0xFA; /1111 1010TL1=0xFA;/1111 1010TR1=1; /开启定时器1REN=1; /允许接

39、收数据 SM0=0;SM1=1;TI=0;RI=0;EA=1; /开总中断ES=1; /串口1中断允许ET0 = 1; /定时器1中断允许void main(void) /主函数uchar error_num = 0;Lcd_Init(); /初始化LCDGPS_Init(); /初始化GPSrev_stop=0;REV_NO;while(1)if (rev_stop) /如果接收完一行TR0 = 1; /开启定时器REV_YES;if (GPS_RMC_Parse(rev_buf, &GPS) /解析GPRMCRMC_YES;GPS_DisplayOne(); /显示GPS信息error_n

40、um = 0;gps_flag = 0;rev_stop = 0;elseerror_num+;if (error_num = 20) /如果数据无效超过20次RMC_NO;error_num = 20;GPS_Init(); /返回初始化gps_flag = 0;rev_stop = 0;REV_NO;void timer0(void) interrupt 1static uchar count = 0;TH0 = 0x3c;TL0 = 0xb0;count+;if (count = 200) /2*5秒钟count = 0;change_page+; /换页if (change_page

41、= 10)change_page = 0;void Uart_Receive(void) interrupt 2uchar ch;ES = 0;if (RI)ch = SBUF;if (ch = $) & (gps_flag = 0) /如果收到字符$,便开始接收rev_start = 1;rev_stop = 0;if (rev_start = 1) /标志位为1,开始接收rev_bufnum+ = ch; /字符存到数组中if (ch = n) /如果接收到换行rev_bufnum = 0;rev_start = 0;rev_stop = 1;gps_flag = 1;num = 0;RI

42、 = 0; /RI清0,重新接收ES = 1;SiRF Star II GPS接收模块程序#include GPS.h#include LCD.h#include uchar code init1 = GPS 显示终端 ;uchar code init3 = GPS 初始化.;uchar code init4 = 搜索定位卫星.;static uchar GetComma(uchar num,char* str);static double Get_Double_Number(char *s);static float Get_Float_Number(char *s);static void

43、 UTC2BTC(DATE_TIME *GPS);void GPS_Init(void)Lcd_DispLine(0, 0, init1);Lcd_DispLine(1, 0, init3);Lcd_DispLine(2, 0, init4);int GPS_RMC_Parse(char *line,GPS_INFO *GPS)uchar ch, status, tmp;float lati_cent_tmp, lati_second_tmp;float long_cent_tmp, long_second_tmp;char *buf = line;ch = buf5;status = buf

44、GetComma(2, buf);if (ch = C) /如果第五个字符是C,($GPRMC)if (status = A) /如果数据有效,那么分析GPS NS = bufGetComma(4, buf);GPS EW = bufGetComma(6, buf);GPS-latitude = Get_Double_Number(&bufGetComma(3, buf);GPS-longitude = Get_Double_Number(&bufGetComma( 5, buf); GPS-latitude_Degree = (int)GPS-latitude / 100; /别离纬度lat

45、i_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;/别离经度long_cent_tmp = (GPS-longitude - GPS-longitude_Deg

46、ree * 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 = (buf7 - 0) * 10 + (buf8 - 0);/时间GPS-D.minute = (buf9 - 0) * 10 + (buf10 - 0);GPS-D.second = (buf11 - 0) * 10 + (buf12 - 0);tmp = Ge

47、tComma(9, buf);GPS-D.day = (buftmp + 0 - 0) * 10 + (buftmp + 1 - 0); /日期GPS-D.month = (buftmp + 2 - 0) * 10 + (buftmp + 3 - 0);GPS-D.year = (buftmp + 4 - 0) * 10 + (buftmp + 5 - 0)+2000;UTC2BTC(&GPS-D);return 1;return 0;int GPS_GGA_Parse(char *line,GPS_INFO *GPS)uchar ch, status;char *buf = line;ch

48、= buf4;status = bufGetComma(2, buf);if (ch = G) /$GPGGAif (status != ,)return 1;return 0;static float Str_To_Float(char *buf)float rev = 0;float dat;int integer = 1;char *str = buf;int i;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;c

49、ase 4:dat = 4;break;case 5:dat = 5;break;case 6:dat = 6;break;case 7:dat = 7;break;case 8:dat = 8;break;case 9:dat = 9;break;case .:dat = .;break;if(dat = .)integer = 0;i = 1;str +;continue;if( integer = 1 )rev = rev * 10 + dat;elserev = rev + dat / (10 * i);i = i * 10 ;str +;return rev;static float Get_Float_Number(char *s)char buf10;uchar i;float rev;i=GetComma(1, s);i = i-1;strncpy(buf, s, i);bufi = 0;rev=Str_To_Float(buf);return rev;static double Str_To_Double(char *buf)double rev = 0;double dat;int integer

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

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

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


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