📄 gps.asm
字号:
CONVEGPS5:
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,CONVEGPS5
RET
;***************************************************************
;功能说明:提取有关GPS数据到FC201发送缓冲区; *
;函数名: PAKGPS *
;所用的寄存器:R0,R1,R2,R3,R4,DPTR *
;入口参数: DGPSLAT,DGPSLON,DGPSSPD,DGPSDEG,DGPSHGH,DGPSTIME*
; TAXISTATUS,PEOPLECOUNT,ICSTATUS,STATUSVALUE *
;中间参数: ENCRYPT,ENCPN,ENCTEMP1,ENCRADIX1,ENCRADIX2 *
;出口参数: TXFCBUFF *
;子程序编号: *
;***************************************************************
ENCRYPT:DB 89H,76H,38H,30H,15H,0FAH,0E9H,7CH,68H,50H
PAKGPS:
MOV DPTR,#ENCRYPT
MOV A,ENCPN
MOVC A,@A+DPTR
MOV ENCVALUE,A
INC ENCPN
MOV A,ENCPN
XRL A,#10
JNZ PAKGPS0
MOV ENCPN,#0
PAKGPS0:LCALL WDOG
MOV A,ENCVALUE
ANL A,#0F0H
MOV ENCTEMP1,A
MOV DPTR,#(DGPSTIME+4) ;取分钟的高字节ddmmyyhh[mm]ss
MOVX A,@DPTR
ANL A,#0F0H
SWAP A
ORL A,ENCTEMP1
MOV ENCRADIX1,A ;加密基数1
MOV A,ENCVALUE
ANL A,#0FH
SWAP A
MOV ENCTEMP1,A
MOV DPTR,#(DGPSTIME+4)
MOVX A,@DPTR
ANL A,#0FH
ORL A,ENCTEMP1
MOV ENCRADIX2,A ;加密基数二
;----------------------------------加密状态
MOV DPTR,#TAXISTATUS
MOVX A,@DPTR
XRL A,ENCVALUE
MOV DPTR,#TXFCBUFF
MOVX @DPTR,A
;----------------------------------;送纬度
MOV DPTR,#DGPSLAT
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+1)
MOV R4,#4
ENCLAT: LCALL WDOG
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCRADIX1
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCLAT
;------------------------------------;送经度
MOV DPTR,#DGPSLON
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+5)
MOV R4,#4
ENCLON:
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCRADIX2
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCLON
;-------------------------------------;送海拔高度
MOV DPTR,#DGPSHGH
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+13)
MOV R4,#4
ENCHGH: LCALL WDOG
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCRADIX2
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCHGH
;-------------------------------------;送速度
MOV DPTR,#DGPSSPD
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+9)
MOV R4,#2
ENCSPD:
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCVALUE
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCSPD
;-------------------------------------;送方位角
MOV DPTR,#DGPSDEG
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+11)
MOV R4,#2
ENCDEG: LCALL WDOG
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCVALUE
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCDEG
;------------------------------------;送时间日期[DDMMYYHHMMSS]->[DDMMHHMMSS]
MOV DPTR,#DGPSTIME
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+17)
MOV R4,#2
ENCTIME0: ;取出DDMM
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCVALUE
XRL A,#47H
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCTIME0
MOV DPTR,#(DGPSTIME+3)
MOV R2,DPL
MOV R3,DPH
MOV DPTR,#(TXFCBUFF+19)
MOV R4,#3
ENCTIME1: ;取了HHMMSS
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,ENCVALUE
XRL A,#47H
INC DPTR
MOV R2,DPL
MOV R3,DPH
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
DJNZ R4,ENCTIME1
;---------------------------------------;送人数
MOV DPTR,#PEOPLECOUNT
MOVX A,@DPTR
MOV DPTR,#(TXFCBUFF+22)
MOVX @DPTR,A
;---------------------------------------;送加密基数
INC DPTR
MOV A,ENCVALUE
XRL A,#55H
XRL A,#36H
MOVX @DPTR,A
;---------------------------------------;送IC状态
LCALL WDOG
INC DPTR
MOV R0,DPL
MOV R1,DPH
MOV DPTR,#ICSTATUS
MOVX A,@DPTR
MOV B,A
MOV A,ENCVALUE
XRL A,B
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
;--------------------------------------;送IC状态2
INC DPTR
MOV R0,DPL
MOV R1,DPH
MOV DPTR,#STATUSVALUE
MOVX A,@DPTR
MOV B,A
MOV A,ENCVALUE
XRL A,B
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
;--------------------------------------;送待定值
LCALL WDOG
INC DPTR
MOV R0,DPL
MOV R1,DPH
MOV DPTR,#DGPSLAT
MOVX A,@DPTR
XRL A,#25H
MOV R3,A
INC DPTR
MOVX A,@DPTR
XRL 3H,A
INC DPTR
MOVX A,@DPTR
XRL 3H,A
INC DPTR
MOVX A,@DPTR
XRL 3H,A
MOV DPTR,#DGPSLON
MOVX A,@DPTR
XRL A,#25H
MOV R3,A
INC DPTR
MOVX A,@DPTR
XRL 3H,A
INC DPTR
MOVX A,@DPTR
XRL 3H,A
INC DPTR
MOVX A,@DPTR
XRL 3H,A
MOV DPH,R0
MOV DPL,R1
MOVX @DPTR,A
LCALL FCENCCODE
RET
;*********************************************
;功能说明:替换发送到中心数据中的某些数据 *
;函数名:FCENCCODE *
;替换值:00H|0DH|11H|13H| *
;调用方法:LCALL FCENCCODE *
;入口参数:TXFCBUFF[27]|TXFCBUFF[28] *
; TXFCBUFF[29]|TXFCBUFF[30] *
;*********************************************
FCENCCODE:
;--------------------------------------替换00H
MOV R0,#80H
MOV A,#31
MOV R1,#40 ;在80H-A8H赋值31-70
CHG00: MOV @R0,A
INC R0
INC A
DJNZ R1,CHG00
;-------------------------------
MOV R0,#80H
MOV R1,#26
MOV DPTR,#TXFCBUFF
CHG01: MOVX A,@DPTR
MOV B,A
CLR C
SUBB A,#31
JC CHG02
MOV A,B
CLR C
SUBB A,#70
JNC CHG02
MOV A,B
SUBB A,#30
ADD A,#80H
MOV R0,A
MOV @R0,#0
CHG02: INC DPTR
DJNZ R1,CHG01
LCALL WDOG
CHG03: MOV R0,#80H
MOV R1,#40
CHG04: MOV A,@R0
MOV B,A
INC R0
XRL A,#00
JNZ CHG05
DJNZ R1,CHG04
CHG05: MOV DPTR,#TXFCBUFF
MOV R1,#26
CHG06: MOVX A,@DPTR
XRL A,#00
JNZ CHG07
MOV A,B
MOVX @DPTR,A
CHG07: INC DPTR
DJNZ R1,CHG06
LCALL WDOG
MOV DPTR,#(TXFCBUFF+27) ;保存替代值
MOV A,B
MOVX @DPTR,A
;----------------------------------替换0DH
MOV R0,#80H
MOV A,#71
MOV R1,#40
CHG10: MOV @R0,A
INC R0
INC A
DJNZ R1,CHG10
;
MOV R0,#80H
MOV R1,#26
MOV DPTR,#TXFCBUFF
CHG11: MOVX A,@DPTR
MOV B,A
CLR C
SUBB A,#71
JC CHG12
MOV A,B
CLR C
SUBB A,#110
JNC CHG12
MOV A,B
SUBB A,#70
ADD A,#80H
MOV R0,A
MOV @R0,#0DH
CHG12: INC DPTR
DJNZ R1,CHG11
CHG13: MOV R0,#80H
MOV R1,#40
CHG14: MOV A,@R0
MOV B,A
INC R0
XRL A,#0DH
JNZ CHG15
DJNZ R1,CHG14
CHG15: MOV DPTR,#TXFCBUFF
MOV R1,#26
CHG16: MOVX A,@DPTR
XRL A,#0DH
JNZ CHG17
MOV A,B
MOVX @DPTR,A
CHG17: INC DPTR
D
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -