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

📄 gps.asm

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