欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    GPS串口数据接收程序实例(共10页).doc

    • 资源ID:16793769       资源大小:44KB        全文页数:10页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    GPS串口数据接收程序实例(共10页).doc

    精选优质文档-倾情为你奉上GPS串口数据接收程序实例作者:天大天财股份有限公司 巩志民    文章来源:单片机及嵌入式系统应用    摘  要:目前GPS(全球定位系统)定位应用市场日趋成熟,正在进入应用的高速发展时期。本文以一款EverMore公司的GM-X205GPS接受模块为例,介绍了其数据格式,以及应用PIC16F874单片机RS232串口进行数据接收的程序。1、 GPS应用简介    近年来GPS系统,已经在大地测绘、海上渔用、车辆定位监控、建筑、农业等各个领域得到广泛应用。从九十年代我国引进GPS定位技术开始,经过十多年的市场培育,GPS定位应用进入了发展的最好时机,未来十年基于GPS的应用将会改变我们的生活和工作方式。     目前市场上的大部分GPS接受模块都是通过RS232串口与MCU进行数据传输的。这些数据包括经度、纬度、海拔高度、时间、卫星使用情况等基本信息。开发人员再依据这些基本数据,进行数据处理来完成整套的定位系统软件。    2、 GM-X205模块数据格式    在进行数据接受编程之前,先介绍一下该模块的数据格式。它支持NMEA-0183输出格式。信息如下:    GGA位置测定系统定位资料(Global Positioning System Fix Data)    GSV 导航卫星资料(GNSS Satellites in View)    RMC导航卫星特定精简资料(Recommended Minimum Specific 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,2446.5241,N,12100.1536,E,1,10,0.8,133.4,M,*1F说明见表:区域名称例单位说明1信息ID$GPGGA GGA协议开始2UTC时间 hhmmss3纬度2446.5241 dddmm.mmmm4南/北半球指示N N=north ; S=south5经度12100.1536 dddmm.mmmm6东/西半球指示E E=east ; W=west7定位指示1 0 =未定位1=定位SPS模式2=定位DGPS, SPS模式8应位卫星数10 00-129HDOP0.8米 10海拔高度133.4米 11海拔高度单位M米 12WGS84水准面划分   13WGS-84水准面划分单位   14累计GPS数据微分  本模块中不可用15参考工作站ID  本模块中不可用16校验位*1F  上面例子中,我们可读出位置信息:北纬24度46.5241分,西经121度00.1536分                                格林威治时间:3点37分44秒3、 PIC16F874数据接收程序笔者在系统中把接收到的数据处理后,显示到图形液晶屏上。限于篇幅在这里只给出数据接收部分程序,并且只接收经度和时间信息,并且给出格林威治时间转换为北京时间的转换函数。其他数据接收程序类似。;*;         THIS IS A GPS RECEIVER PROGRAM                  *;*         LIST P=16F874         INCLUDE P16F874.INC        ;*寄存器定义 *TEMP1     EQU    0X27W_TEMP    EQU    0X54          STATUS_TEMP  EQU 0X55LONG1     EQU    0X40          ;LONG1- LONG10经度的10位数据LONG2     EQU    0X41LONG3     EQU    0X42LONG4     EQU    0X43LONG5     EQU    0X44LONG6     EQU    0X45LONG7     EQU    0X46LONG8     EQU    0X47LONG9     EQU    0X48LONG10    EQU    0X49T1        EQU    0X58           ;T1-T6时间的6位数据T2        EQU    0X59T3        EQU    0X60T4        EQU    0X61T5        EQU    0X62T6        EQU    0X63;*       ORG  00H        NOP       NOP       GOTO MAIN       ORG  04H          ;设定按中端健才开始数据接受       NOP       NOP       GOTO INTERRUPT;*判断头文件是不是'$GPGGA*IDMESSAGE        BCF     STATUS,RP0BREAK0      CALL      PAND        MOVWF     TEMP1        MOVLW     '$'        ;detect $        SUBWF     TEMP1,0        BTFSS     STATUS,Z        GOTO   BREAK0        CALL     PAND        MOVWF     TEMP1        MOVLW     'G'        ;detect G        SUBWF     TEMP1,0        BTFSS     STATUS,Z        GOTO   BREAK0        CALL     PAND        MOVWF     TEMP1        MOVLW     'P'        ;detect P        SUBWF     TEMP1,0        BTFSS     STATUS,Z        GOTO  BREAK0        CALL     PAND        MOVWF     TEMP1        MOVLW     'G'        ;detect G        SUBWF     TEMP1,0        BTFSS     STATUS,Z        GOTO  BREAK0        CALL     PAND        MOVWF     TEMP1        MOVLW     'G'        ;detect G        SUBWF     TEMP1,0        BTFSS     STATUS,Z        GOTO  BREAK0        CALL     PAND        MOVWF     TEMP1        MOVLW     'A'        ;detect A        SUBWF     TEMP1,0        BTFSS     STATUS,Z        GOTO  BREAK0        CALL     PAND        ;跳过逗号        RETURN;*接收函数*RECEIVE       CALL     PAND                    ;开始时间数据接收       MOVWF    T1       CALL     PAND       MOVWF    T2       CALL     PAND       MOVWF    T3       CALL     PAND       MOVWF    T4       CALL     PAND       MOVWF    T5       CALL     PAND       MOVWF    T6                      ;时间数据接收完成       CALL     PAND                     ;跳过逗号       CALL     PAND                     ;跳过10位纬度数据-开始       CALL     PANDCALL     PAND       CALL     PAND                            CALL     PAND       CALL     PAND       CALL     PAND                            CALL     PAND       CALL     PAND       CALL     PAND                     ;跳过10位纬度数据-结束       CALL     PAND                     ;跳过逗号       CALL     PAND                     ;跳过南/北纬判断位数据       CALL     PAND                     ;跳过逗号       CALL     PAND                     ;接受经度信号开始       MOVWF    LONG1       CALL     PAND       MOVWF    LONG2       CALL     PAND       MOVWF    LONG3       CALL     PAND       MOVWF    LONG4       CALL     PAND       MOVWF    LONG5       CALL     PAND       MOVWF    LONG6       CALL     PAND       MOVWF    LONG7       CALL     PAND       MOVWF    LONG8       CALL     PAND       MOVWF    LONG9       CALL     PAND       MOVWF    LONG10                   ;接受经度信号结束       RETURN;*串口寄存器中是否数据*PAND           BCF      STATUS,RP0CC   BTFSS PIR1,5        GOTO CC        MOVF     RCREG,0        RETURN;*中断函数*INTERRUPT             BCF INTCON,7                  ;SET GIE=0屏蔽所有中端        BCF     STATUS,RP0        BCF     RCSTA,1               ;清除溢出错误位        BSF       STATUS,RP0        BCF       TXSTA,2             ;BRGH=0 Low speed        BCF       TXSTA,4             ;Set Asynchronous mode        MOVLW     0X0C        MOVWF     SPBRG             ;设置波特率为4800        BCF       STATUS,RP0        MOVLW     B''        MOVWF     RCSTA             ;串口接收相关设置        BSF       STATUS,RP0                  BSF       OPTION_REG,6        ; RB0/INT 引脚上升沿中断       MOVWF W_TEMP                 SWAPF STATUS,W    BCF   STATUS,RP0    MOVWF STATUS_TEMP    BCF     STATUS,RP0    CALL    IDMESSAGE       CALL    RECEIVE        BCF     STATUS,RP0        CLRF    RCSTA                ;清除串口设置        CALL    CONVERT             ;调用时间转换函数OUT BCF STATUS,RP0             ;跳出中断部分,恢复寄存器     SWAPF STATUS_TEMP,W     MOVWF STATUS     SWAPF W_TEMP,F     SWAPF W_TEMP,W       BSF  INTCON,7     ;SET GIE=1允许所有中端     NOP          RETFIE;* 格林威治时间转换为北京时间*CONVERT       MOVLW  A'0'       SUBWF  T2,1       SUBWF  T1,1       MOVLW  D'10'       MOVWF  TEMP1LOOP1  MOVF   TEMP1,0       MOVF   TEMP1,1       BTFSS  STATUS,Z       GOTO   ADD10       MOVLW  D'8'       ADDWF  T2,1       MOVLW  D'24'       SUBWF  T2,1       BTFSC  STATUS,C       GOTO   CON1       ADDWF  T2,1       GOTO   CON1CON1   MOVLW  D'20'       MOVWF  TEMP1       SUBWF  T2,0       BTFSS  STATUS,C       GOTO   CON2       MOVWF  T2       MOVLW  0X02       MOVWF  T1       GOTO   HALT1CON2   MOVLW  D'10'       MOVWF  TEMP1       SUBWF  T2,0       BTFSS  STATUS,C       GOTO   CON3       MOVWF  T2       MOVLW  0X01       MOVWF  T1       GOTO   HALT1CON3   MOVLW  0X00       MOVWF  T1HALT1  MOVLW  A'0'       ADDWF  T1,1       ADDWF  T2,1       RETURNADD10  MOVF   T1,0       ADDWF  T2,1       DECF   TEMP1,1       GOTO   LOOP1       RETURN ;*MAIN*MAIN        BCF       STATUS,RP0        MOVLW     B''        MOVWF     INTCON            ;打开中断        LOOP NOP     BCF     STATUS,RP0     GOTO  LOOP     GOTO MAIN        END专心-专注-专业

    注意事项

    本文(GPS串口数据接收程序实例(共10页).doc)为本站会员(飞****2)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开