?? gps.asm
字號:
KEYVHVALUE3:DB 0CH,00H,10H,00H,14H,80H,20H,00H
;----------------------------------------------[2003-3-24以前]
;KEYVHVALUE :DB 0AH,00H,0EH,00H,11H,00H,20H,00H
;KEYVHVALUE0:DB 0DH,00H,12H,00H,16H,00H,22H,80H
;KEYVHVALUE1:DB 0DH,00H,12H,00H,16H,00H,22H,80H
;KEYVHVALUE2:DB 0DH,00H,12H,00H,16H,80H,22H,80H
;KEYVHVALUE3:DB 0DH,00H,12H,00H,16H,80H,22H,80H
;----------------------------------------------[2003-1-23]
;KEYVHVALUE :DB 0BH,0DH,0EH,94H,12H,0CFH,17H,00H
;KEYVHVALUE0:DB 0BH,0B2H,0FH,0E5H,13H,60H,17H,80H
;KEYVHVALUE1:DB 0BH,7FH,0FH,36H,13H,74H,17H,80H
;KEYVHVALUE2:DB 0BH,0C6H,0FH,97H,13H,8BH,17H,80H
;KEYVHVALUE3:DB 0BH,7FH,10H,06H,13H,6FH,17H,80H
;*****************************************************
;功能說明:解析GPS數據 *
;函數名 :UNPAKGPS *
;所用的寄存器:R0,R1,R2,R3,R4 *
;入口參數:PORT1_RXBUFF,GPS_START *
;出口參數:GPSLAT,GPSLON,GPSSPD,GPSHGH,GPSDEG,GPSTIME*
;子程序編號: *
;*****************************************************
UNPAKGPSEX:LJMP UNPAKGPSE
UNPAKGPS:
MOV GPS_START,#00H
MOV DPTR,#PORT1_RXBUFF
UNPAKGPS1: ;判斷幀頭
LCALL WDOG
MOV A,GPS_START
SUBB A,#180
JNC UNPAKGPSEX
MOVX A,@DPTR
XRL A,#'$' ;判斷$
INC DPTR
INC GPS_START
JNZ UNPAKGPS1
MOVX A,@DPTR
XRL A,#'G' ;判斷G
INC DPTR
INC GPS_START
JNZ UNPAKGPS1
MOVX A,@DPTR
XRL A,#'P' ;判斷P
INC DPTR
INC GPS_START
JNZ UNPAKGPS1
MOVX A,@DPTR
XRL A,#'R' ;判斷R
INC DPTR
INC GPS_START
JNZ UNPAKGPS1
MOVX A,@DPTR
XRL A,#'M' ;判斷M
INC DPTR
INC GPS_START
JNZ UNPAKGPS1
MOVX A,@DPTR
XRL A,#'C' ;判斷C
INC DPTR
INC GPS_START
JNZ UNPAKGPS1
INC DPTR
INC GPS_START ;GPS_START=7
UNPAKGPS2:;-----------------------取數據
;$GPRMC[5],[6]010622[12],A,[15]2307.5097[24],N,[27]11322.0545[37],E,[40]000.0[45],000.0[51],101002[58],00000000,(0DH+0AH)
;解析出時間數據[HHMMSS]
MOV R4,#6
MOV R0,DPL
MOV R1,DPH
MOV DPTR,#(GPSTIME+6)
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
;---------------------------------取出日期 DDMMYY
MOV R4,#6
MOV A,GPS_START
CLR C
ADD A,#46
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#GPSTIME
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
LCALL WDOG
;---------------------------------取出速度
MOV R4,#3
MOV A,GPS_START
CLR C
ADD A,#34
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#GPSSPD
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
MOV A,GPS_START
CLR C
ADD A,#38
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV DPL,A
MOV A,#0
ADDC A,DPH
MOV DPH,A
MOVX A,@DPTR
MOV DPTR,#(GPSSPD+3)
MOVX @DPTR,A
;---------------------------------取出方位角
MOV R4,#3
CLR C
MOV A,GPS_START
ADD A,#40
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#GPSDEG
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
MOV A,GPS_START
CLR C
ADD A,#44
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV DPL,A
MOV A,#0
ADDC A,DPH
MOV DPH,A
MOVX A,@DPTR
MOV DPTR,#(GPSDEG+3)
MOVX @DPTR,A
LCALL WDOG
;---------------------------------取出緯度
MOV R4,#4
MOV A,GPS_START
CLR C
ADD A,#9
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#GPSLAT
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
MOV R4,#4
MOV A,GPS_START
CLR C
ADD A,#14
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#(GPSLAT+4)
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
LCALL WDOG
;----------------------------------取出經度
MOV R4,#4
MOV A,GPS_START
CLR C
ADD A,#22
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#GPSLON
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
MOV R4,#4
MOV A,GPS_START
CLR C
ADD A,#27
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#(GPSLON+4)
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
LCALL WDOG
;----------------------------------取出海拔高度
MOV R4,#8
MOV A,GPS_START
CLR C
ADD A,#53
MOV DPTR,#PORT1_RXBUFF
ADD A,DPL
MOV R0,A
MOV A,#0
ADDC A,DPH
MOV R1,A
MOV DPTR,#GPSHGH
MOV R2,DPL
MOV R3,DPH
LCALL RAMTORAM
UNPAKGPSE:
RET
;*************************************************************
;功能說明:將GPS數據合并為BCD碼 *
;函數名 :CONVRGPS *
;所用寄存器:R0,R1,R2,R3,R4,R5,R6,DPTR *
;入口參數: GPSLAT,GPSLON,GPSSPD,GPSHGH,GPSTIME,GPSDEG *
;出口參數: DGPSLAT,DGPSLON,GPSSPD,DGPSHGH,DGPSTIME,DGPSDEG *
;子程序編號: *
;*************************************************************
CONVRGPSEXIT:RET
CONVRGPS:
MOV DPTR,#GPSLON ;掃描GPS數據中有沒有非法字符
MOV R4,#24
SCANGPSDATA:
MOVX A,@DPTR
CLR C
SUBB A,#30H
JC CONVRGPSEXIT ;C=1;JUMP
MOVX A,@DPTR
CLR C
SUBB A,#40H
JNC CONVRGPSEXIT ;C=0;JUMP
INC DPTR
DJNZ R4,SCANGPSDATA
;------------------------------------轉換緯度
MOV DPTR,#DGPSLAT
MOV R3,DPH
MOV R2,DPL
MOV DPTR,#GPSLAT
MOV R1,DPH
MOV R0,DPL
MOV R4,#04H
LCALL WDOG
CONVEGPS0:
MOV DPH,R1
MOV DPL,R0
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOV R1,DPH
MOV R0,DPL
LCALL DASCTOBCD
MOV A,R5
MOV DPH,R3
MOV DPL,R2
MOVX @DPTR,A
INC DPTR
MOV R3,DPH
MOV R2,DPL
DJNZ R4,CONVEGPS0
;------------------------------------轉換經度
MOV DPTR,#DGPSLON
MOV R3,DPH
MOV R2,DPL
MOV DPTR,#GPSLON
MOV R1,DPH
MOV R0,DPL
MOV R4,#04H
CONVEGPS1:
LCALL WDOG
MOV DPH,R1
MOV DPL,R0
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOV R1,DPH
MOV R0,DPL
LCALL DASCTOBCD
MOV A,R5
MOV DPH,R3
MOV DPL,R2
MOVX @DPTR,A
INC DPTR
MOV R3,DPH
MOV R2,DPL
DJNZ R4,CONVEGPS1
;------------------------------------轉換時間
MOV DPTR,#DGPSTIME
MOV R3,DPH
MOV R2,DPL
MOV DPTR,#GPSTIME
MOV R1,DPH
MOV R0,DPL
MOV R4,#06H
CONVEGPS2:
MOV DPH,R1
MOV DPL,R0
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOV R1,DPH
MOV R0,DPL
LCALL DASCTOBCD
MOV A,R5
MOV DPH,R3
MOV DPL,R2
MOVX @DPTR,A
INC DPTR
MOV R3,DPH
MOV R2,DPL
DJNZ R4,CONVEGPS2
LCALL WDOG
;------------------------------------轉換速度
MOV DPTR,#DGPSSPD
MOV R3,DPH
MOV R2,DPL
MOV DPTR,#GPSSPD
MOV R1,DPH
MOV R0,DPL
MOV R4,#02H
CONVEGPS3:
MOV DPH,R1
MOV DPL,R0
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOV R1,DPH
MOV R0,DPL
LCALL DASCTOBCD
MOV A,R5
MOV DPH,R3
MOV DPL,R2
MOVX @DPTR,A
INC DPTR
MOV R3,DPH
MOV R2,DPL
DJNZ R4,CONVEGPS3
;------------------------------------轉換方位角
LCALL WDOG
MOV DPTR,#DGPSDEG
MOV R3,DPH
MOV R2,DPL
MOV DPTR,#GPSDEG
MOV R1,DPH
MOV R0,DPL
MOV R4,#02H
CONVEGPS4:
MOV DPH,R1
MOV DPL,R0
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOV R1,DPH
MOV R0,DPL
LCALL DASCTOBCD
MOV A,R5
MOV DPH,R3
MOV DPL,R2
MOVX @DPTR,A
INC DPTR
MOV R3,DPH
MOV R2,DPL
DJNZ R4,CONVEGPS4
;----------------------------------轉換高度
LCALL WDOG
MOV DPTR,#DGPSHGH
MOV R3,DPH
MOV R2,DPL
MOV DPTR,#GPSHGH
MOV R1,DPH
MOV R0,DPL
MOV R4,#02H
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -