<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > GPS串口數據接收程序實(shí)例

GPS串口數據接收程序實(shí)例

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏
作者Email: Atom002@sohu.com

摘 要:目前(全球定位系統)定位應用市場(chǎng)日趨成熟,正在進(jìn)入應用的高速發(fā)展時(shí)期。本文以一款EverMore公司的GM-X205接受模塊為例,介紹了其格式,以及應用PIC16F874單片機RS232進(jìn)行。

關(guān)鍵詞、NMEA格式、PIC16F874、

1、GPS應用簡(jiǎn)介

近年來(lái)GPS系統,已經(jīng)在大地測繪、海上漁用、車(chē)輛定位監控、建筑、農業(yè)等各個(gè)領(lǐng)域得到廣泛應用。從九十年代我國引進(jìn)GPS定位技術(shù)開(kāi)始,經(jīng)過(guò)十多年的市場(chǎng)培育,GPS定位應用進(jìn)入了發(fā)展的最好時(shí)機,未來(lái)十年基于GPS的應用將會(huì )改變我們的生活和工作方式。

目前市場(chǎng)上的大部分GPS接受模塊都是通過(guò)RS232與MCU進(jìn)行數據傳輸的。這些數據包括經(jīng)度、緯度、海拔高度、時(shí)間、衛星使用情況等基本信息。開(kāi)發(fā)人員再依據這些基本數據,進(jìn)行數據處理來(lái)完成整套的定位系統軟件。

2、GM-X205模塊數據格式

在進(jìn)行數據接受編程之前,先介紹一下該模塊的數據格式。它支持NMEA-0183輸出格式。信息如下:

GGA位置測定系統定位資料(Global Positioning System Fix Data)
GSV 導航衛星資料(GNSS Satellites in View)
RMC導航衛星特定精簡(jiǎn)資料(Recommended Minimum Specific GNSS Data)
VTG 方向及速度等相關(guān)資料(Course Over Ground and Ground Speed)
由于文章篇幅問(wèn)題,筆者在這里只以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

說(shuō)明見(jiàn)表:

區域

名稱(chēng)

單位

說(shuō)明

1

信息ID

$GPGGA

GGA協(xié)議開(kāi)始

2

UTC時(shí)間

033744

hhmmss

3

緯度

2446.5241

dddmm.mmmm

4

/北半球指示

N

N=north ; S=south

5

經(jīng)度

12100.1536

dddmm.mmmm

6

/西半球指示

E

E=east ; W=west

7

定位指示

1

0 =未定位

1=定位SPS模式

2=定位DGPS, SPS模式

8

應位衛星數

10

00-12

9

HDOP

0.8

10

海拔高度

133.4

11

海拔高度單位

M

12

WGS84水準面劃分

13

WGS-84水準面劃分單位

14

累計GPS數據微分

本模塊中不可用

15

參考工作站ID

本模塊中不可用

16

校驗位

*1F

上面例子中,我們可讀出位置信息:北緯24度46.5241分,西經(jīng)121度00.1536分
格林威治時(shí)間:3點(diǎn)37分44秒
3、PIC16F874數據接收
筆者在系統中把接收到的數據處理后,顯示到圖形液晶屏上。限于篇幅在這里只給出數據接收部分,并且只接收經(jīng)度和時(shí)間信息,并且給出格林威治時(shí)間轉換為北京時(shí)間的轉換函數。其他數據接收程序類(lèi)似。
;**********************************************************
; THIS IS A GPS RECEIVER PROGRAM *
;**********************************************************
LIST P=16F874
INCLUDE P16F874.INC
;*******寄存器定義 ********************
TEMP1 EQU 0X27
W_TEMP EQU 0X54
STATUS_TEMP EQU 0X55
LONG1 EQU 0X40 ;LONG1--- LONG10經(jīng)度的10位數據
LONG2 EQU 0X41
LONG3 EQU 0X42
LONG4 EQU 0X43
LONG5 EQU 0X44
LONG6 EQU 0X45
LONG7 EQU 0X46
LONG8 EQU 0X47
LONG9 EQU 0X48
LONG10 EQU 0X49
T1 EQU 0X58 ;T1---T6時(shí)間的6位數據
T2 EQU 0X59
T3 EQU 0X60
T4 EQU 0X61
T5 EQU 0X62
T6 EQU 0X63
;********************************************************
ORG 00H
NOP
NOP
GOTO MAIN
ORG 04H ;設定按中端健才開(kāi)始數據接受
NOP
NOP
GOTO INTERRUPT
;*********判斷頭文件是不是'$GPGGA’**********
IDMESSAGE
BCF STATUS,RP0
BREAK0
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 ;跳過(guò)逗號
RETURN
;************接收函數******************
RECEIVE
CALL PAND ;開(kāi)始時(shí)間數據接收
MOVWF T1
CALL PAND
MOVWF T2
CALL PAND
MOVWF T3
CALL PAND
MOVWF T4
CALL PAND
MOVWF T5
CALL PAND
MOVWF T6 ;時(shí)間數據接收完成
CALL PAND ;跳過(guò)逗號
CALL PAND ;跳過(guò)10位緯度數據---開(kāi)始
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND
CALL PAND ;跳過(guò)10位緯度數據---結束
CALL PAND ;跳過(guò)逗號
CALL PAND ;跳過(guò)南/北緯判斷位數據
CALL PAND ;跳過(guò)逗號
CALL PAND ;接受經(jīng)度信號開(kāi)始
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 ;接受經(jīng)度信號結束
RETURN
;***************串口寄存器中是否數據*****************
PAND
BCF STATUS,RP0
CC BTFSSPIR1,5
GOTOCC
MOVF RCREG,0
RETURN
;*****************中斷函數***************************
INTERRUPT
BCFINTCON,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'10010000'
MOVWF RCSTA ;串口接收相關(guān)設置
BSF STATUS,RP0
BSF OPTION_REG,6 ; RB0/INT 引腳上升沿中斷
MOVWFW_TEMP
SWAPFSTATUS,W
BCF STATUS,RP0
MOVWFSTATUS_TEMP
BCF STATUS,RP0
CALL IDMESSAGE
CALL RECEIVE
BCF STATUS,RP0
CLRF RCSTA ;清除串口設置
CALL CONVERT ;調用時(shí)間轉換函數
OUTBCFSTATUS,RP0 ;跳出中斷部分,恢復寄存器
SWAPFSTATUS_TEMP,W
MOVWFSTATUS
SWAPFW_TEMP,F
SWAPFW_TEMP,W
BSF INTCON,7 ;SET GIE=1允許所有中端
NOP
RETFIE
;************ 格林威治時(shí)間轉換為北京時(shí)間******************
CONVERT
MOVLW A'0'
SUBWF T2,1
SUBWF T1,1
MOVLW D'10'
MOVWF TEMP1
LOOP1 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 CON1
CON1 MOVLW D'20'
MOVWF TEMP1
SUBWF T2,0
BTFSS STATUS,C
GOTO CON2
MOVWF T2
MOVLW 0X02
MOVWF T1
GOTO HALT1
CON2 MOVLW D'10'
MOVWF TEMP1
SUBWF T2,0
BTFSS STATUS,C
GOTO CON3
MOVWF T2
MOVLW 0X01
MOVWF T1
GOTO HALT1
CON3 MOVLW 0X00
MOVWF T1
HALT1 MOVLW A'0'
ADDWF T1,1
ADDWF T2,1
RETURN
ADD10 MOVF T1,0
ADDWF T2,1
DECF TEMP1,1
GOTO LOOP1
RETURN
;******************MAIN***********************
MAIN
BCF STATUS,RP0
MOVLW B'10010000'
MOVWF INTCON ;打開(kāi)中斷
LOOPNOP
BCF STATUS,RP0
GOTO LOOP
GOTOMAIN
END



關(guān)鍵詞: 程序 實(shí)例 接收 數據 串口 GPS

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>