⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gps.asm

📁 一个自行设计的GPS的出租车使用的程序源代码。
💻 ASM
📖 第 1 页 / 共 5 页
字号:
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 + -