GPS串口数据接收程序实例_第1页
GPS串口数据接收程序实例_第2页
GPS串口数据接收程序实例_第3页
GPS串口数据接收程序实例_第4页
GPS串口数据接收程序实例_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、GPS 串口数据接收程序实例作者:天大天财股份有限公司巩志民文章来源:单片机及嵌入式系统应用摘要:目前GPS(全球定位系统)定位应用市场日趋成熟,正在进入应用的高速发展时期。本文以一款EverMore 公司的GM-X205GPS接受模块为例,介绍了其数据格式,以及应用PIC16F874 单片机RS232 串口进行数据接收的程序。1、 GPS 应用简介近年来 GPS 系统,已经在大地测绘、海上渔用、车辆定位监控、建筑、农业等各个领域得到广泛应用。从九十年代我国引进 GPS 定位技术开始,经过十多年的市场培育,GPS 定位应用进入了发展的最好时机,未来十年基于GPS 的应用将会改变我们的生活和工作

2、方式。目前市场上的大部分GPS 接受模块都是通过RS232 串口与 MCU 进行数据传输的。这些数据包括经度、纬度、海拔高度、时间、卫星使用情况等基本信息。开发人员再依据这些基本数据,进行数据处理来完成整套的定位系统软件。2、 GM-X205 模块数据格式在进行数据接受编程之前,先介绍一下该模块的数据格式。它支持NMEA-0183 输出格式。信息如下:GGA 位置测定系统定位资料(Global Positioning System Fix Data)GSV 导航卫星资料(GNSS Satellites in View )RMC导航卫星特定精简资料(Recommended MinimumSpec

3、ific GNSS Data)VTG方向及速度等相关资料(Course Over Ground and Ground Speed)由于文章篇幅问题,笔者在这里只以接收GGA 数据为例,格式如下:$GPGGA,hhmmss,dddmm.mmmm,a,dddmm.mmmm,a,x,xx,x.x,x.x,M,M,x.x,xxxx*CS例: $GPGGA,033744,2446.5241,N,12100.1536,E,1,10,0.8,133.4,M,*1F说明见表:区域名称例单位说明1信息 ID$GPGGAGGA 协议开始2UTC 时间033744hhmmss3纬度2446.5241dddmm.mm

4、mm4南 /北半球指示NN=north ; S=south5经度12100.1536dddmm.mmmm6东 /西半球指示7定位指示8应位卫星数9HDOP10海拔高度11海拔高度单位12WGS84 水准面划分13WGS-84 水准面划分单位14累计 GPS 数据微分15参考工作站 ID16校验位间:3点 37分44秒3、 PIC16F874 数据接收程序EE=east ; W=west10 =未定位1=定位 SPS 模式2=定位 DGPS, SPS 模式1000-120.8米133.4米M米本模块中不可用本模块中不可用*1F上面例子中,我们可读出位置信息:北纬 24 度46.5241分,西经

5、121度 00.1536分林威治时笔者在系统中把接收到的数据处理后,显示到图形液晶屏上。限于篇幅在这里只给出数据接收部分程序,并且只接收经度和时间信息,并且给出格林威治时间转换为北京时间的转换函数。其他数据接收程序类似。;*;THISIS AGPS RECEIVERPROGRAM*;*LISTP=16F874INCLUDEP16F874.INC;*寄存器定义*TEMP1EQU0X27W_TEMPEQU0X54STATUS_TEMPEQU 0X55LONG1EQU0X40;LONG1-LONG10 经度的 10 位数据LONG2EQU0X41LONG3EQU0X42LONG4EQU0X43LON

6、G5EQU0X44LONG6EQU0X45LONG7EQU0X46LONG8EQU0X47LONG9EQU0X48LONG10EQU0X49T1EQU0X58;T1-T6 时间的 6 位数据T2EQU0X59T3EQU0X60T4EQU0X61T5EQU0X62T6EQU0X63;*ORG00HNOPNOPGOTO MAINORG04H;设定按中端健才开始数据接受NOPNOPGOTO INTERRUPT;*判断头文件是不是$GPGGA *IDMESSAGEBCFSTATUS,RP0BREAK0CALLMOVWFMOVLWSUBWFPANDTEMP1$;detect $TEMP1,0BTFSSS

7、TATUS,ZGOTOBREAK0CALLPANDMOVWFTEMP1MOVLWG;detect GSUBWFTEMP1,0BTFSSSTATUS,ZGOTOBREAK0CALLPANDMOVWFTEMP1MOVLWP;detect PSUBWFTEMP1,0BTFSSSTATUS,ZGOTOBREAK0CALLPANDMOVWFTEMP1MOVLWG;detect GSUBWFTEMP1,0BTFSSSTATUS,ZGOTOBREAK0CALLPANDMOVWFTEMP1MOVLWG;detect GSUBWFTEMP1,0BTFSSSTATUS,ZGOTOBREAK0CALLPANDMOV

8、WFTEMP1MOVLWA;detect ASUBWFTEMP1,0BTFSSSTATUS,ZGOTOBREAK0CALLPAND;跳过逗号RETURN;*接收函数 *RECEIVECALLPAND;开始时间数据接收MOVWFT1CALLPANDMOVWFT2CALLPANDMOVWFT3CALLPANDMOVWFT4CALLPANDMOVWFT5CALLPANDMOVWFT6; 时间数据接收完成CALLPAND;跳过逗号CALLPAND;跳过 10 位纬度数据 -开始CALLPANDCALLPANDCALLPANDCALLPANDCALLPANDCALLPANDCALLPANDCALLPAN

9、DCALLPAND;跳过 10 位纬度数据 -结束CALLPAND;跳过逗号CALLPAND;跳过南 /北纬判断位数据CALLPAND;跳过逗号CALLPAND;接受经度信号开始MOVWFLONG1CALLPANDMOVWFLONG2CALLPANDMOVWFLONG3CALLPANDMOVWFLONG4CALLPANDMOVWFLONG5CALLPANDMOVWFLONG6CALLPANDMOVWFLONG7CALLPANDMOVWFLONG8CALLPANDMOVWFLONG9CALLPANDMOVWFLONG10; 接受经度信号结束RETURN;*串口寄存器中是否数据 *PANDBCFS

10、TATUS,RP0BTFSS PIR1,5GOTO CCMOVF RCREG,0 RETURN;*中断函数 *INTERRUPTBCF INTCON,7;SET GIE=0 屏蔽所有中端BCFSTATUS,RP0BCFRCSTA,1;清除溢出错误位BSFSTATUS,RP0BCFTXSTA,2;BRGH=0 Low speedBCFTXSTA,4;Set Asynchronous modeMOVLW0X0CMOVWFSPBRG;设置波特率为 4800BCFSTATUS,RP0MOVLWB10010000MOVWFRCSTA;串口接收相关设置BSFSTATUS,RP0BSFOPTION_REG,

11、6; RB0/INT 引脚上升沿中断MOVWF W_TEMPSWAPF STATUS,WBCF STATUS,RP0MOVWF STATUS_TEMPBCFSTATUS,RP0CALLIDMESSAGECALLRECEIVEBCFSTATUS,RP0CLRFRCSTA;清除串口设置CALLCONVERT;调用时间转换函数OUT BCF STATUS,RP0;跳出中断部分,恢复寄存器SWAPF STATUS_TEMP,WMOVWF STATUSSWAPF W_TEMP,FSWAPF W_TEMP,WBSFINTCON,7;SET GIE=1 允许所有中端NOPRETFIE;*格林威治时间转换为北

12、京时间*CONVERTMOVLWA0SUBWFT2,1SUBWFT1,1MOVLWD10MOVWFTEMP1LOOP1MOVFTEMP1,0MOVFTEMP1,1BTFSSSTATUS,ZGOTOADD10MOVLWD8ADDWFT2,1MOVLWD24SUBWFT2,1BTFSCSTATUS,CGOTOCON1ADDWFT2,1GOTOCON1CON1MOVLWD20MOVWFTEMP1SUBWFT2,0BTFSSSTATUS,CGOTOCON2MOVWFT2MOVLW0X02MOVWFT1GOTOHALT1CON2MOVLWD10MOVWFTEMP1SUBWFT2,0BTFSSSTATUS,CGOTOCON3MOVWFT2MOVLW0X01MOVWFT1GOTOHALT1CON3MOV

温馨提示

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

评论

0/150

提交评论