📄 gps.asm
字号:
MOV A,#2EH
MOV DAT,A
ACALL WRD
MOV R0,#39H
MOV A,@R0
MOV DAT,A
ACALL WRD
MOV R0,#3AH
MOV A,@R0
MOV DAT,A
ACALL WRD
MOV A,#2EH
MOV DAT,A
ACALL WRD
MOV R0,#3BH
MOV A,@R0
MOV DAT,A
ACALL WRD
MOV R0,#3CH
MOV A,@R0
MOV DAT,A
ACALL WRD
JMP RRR
DFF:
MOV A,#0C1H
MOV DAT,A
ACALL WRD
MOV A,#0ACH
MOV DAT,A
ACALL WRD
MOV A,#0BDH
MOV DAT,A
ACALL WRD
MOV A,#0D3H
MOV DAT,A
ACALL WRD
MOV A,#0B5H
MOV DAT,A
ACALL WRD
MOV A,#0E7H
MOV DAT,A
ACALL WRD
MOV A,#0C4H
MOV DAT,A
ACALL WRD
MOV A,#0D4H
MOV DAT,A
ACALL WRD
RRR:
;---------------------------------------------第三行
MOV COM,#98H
ACALL WRI
ACALL SSE ;;;;;;;;;;;速度转换
MOV A,#20H
MOV DAT,A
ACALL WRD
MOV A,S_A
JZ SW1
ORL A,#30H
MOV DAT,A
ACALL WRD
JMP SW2
SW1:
MOV A,#20H
MOV DAT,A
ACALL WRD
SW2:
MOV A,S_B
JZ SW3
ORL A,#30H
MOV DAT,A
ACALL WRD
JMP SW4
SW3:
MOV A,#20H
MOV DAT,A
ACALL WRD
SW4:
MOV A,S_C
ORL A,#30H
MOV DAT,A
ACALL WRD
MOV A,#4BH
MOV DAT,A
ACALL WRD
MOV A,#2FH
MOV DAT,A
ACALL WRD
MOV A,#68H
MOV DAT,A
ACALL WRD
MOV A,#20H
MOV DAT,A
ACALL WRD
MOV A,2DH ;判断高位温度是否为0
ANL A,#0F0H
JZ MMM
CPL 2EH ;是F反起
CPL 2DH
MOV A,#20H ;空
MOV DAT,A
ACALL WRD
MOV A,#2DH ;-
MOV DAT,A
ACALL WRD
JMP DDS
MMM:
MOV A,#20H ;空
MOV DAT,A
ACALL WRD
MMM1:
MOV A,WWD
JNZ DDS1
MOV A,#20H ;空
MOV DAT,A
ACALL WRD
JMP DDS
DDS1: MOV A,WWD ;温度百位
ORL A,#30H
MOV DAT,A
ACALL WRD
DDS:
MOV A,WWD1 ;温度十位
ORL A,#30H
MOV DAT,A
ACALL WRD
MOV A,WWD2 ;温度个位
ORL A,#30H
MOV DAT,A
ACALL WRD
MOV A,#2EH ;点
MOV DAT,A
ACALL WRD
MOV A,WWD3 ;温度点一位
ORL A,#30H
MOV DAT,A
ACALL WRD
MOV A,#0A1H ; 度
MOV DAT,A
ACALL WRD
MOV A,#0E6H
MOV DAT,A
ACALL WRD
ACALL SD1820
ACALL SD1821
ACALL AD16
AJMP DISP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SSE: ;;;;;;;;;;;速度转换
MOV R0,#5DH
MOV A,@R0
MOV S_A,A
MOV R0,#5EH
MOV A,@R0
CJNE A,#2EH,SS1
MOV R0,#5FH
MOV A,@R0
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_C,A
MOV A,S_A
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_B,A
MOV A,B
ADD A,S_C
MOV S_C,A
MOV S_A,#0
RET
SS1:
MOV S_B,A
MOV R0,#5FH
MOV A,@R0
CJNE A,#2EH,SS2
MOV R0,#60H
MOV A,@R0
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_C,A
MOV A,S_B
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_B,A
MOV A,B
ADD A,S_C
MOV S_C,A
MOV A,S_A
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_A,A
MOV A,B
ADD A,S_B
MOV S_B,A
RET
SS2:
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_D,A
MOV S_C,B
MOV A,S_B
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV S_E,A
MOV A,B
ADD A,S_D
MOV S_B,A
MOV A,S_A
ANL A,#0FH
MOV B,#2
MUL AB
MOV B,#10
DIV AB
MOV A,B
ADD A,S_E
MOV S_A,A
RET
AD16:
MOV A,2DH ;十六转十
ANL A,#07H
MOV B,#16
MUL AB
MOV D_H,A
MOV A,2EH
MOV B,#16
DIV AB
MOV D_LL,A
MOV D_L,B
MOV A,D_H
ADD A,D_LL
MOV B,#100
DIV AB
MOV WWD,A
MOV A,B
MOV B,#10
DIV AB
MOV WWD1,A
MOV WWD2,B
MOV A,D_L
MOV B,#6
MUL AB
MOV B,#10
DIV AB
MOV WWD3,A
RET
SD1820:
SETB DATAIN ;温度头的检查
NOP
CLR DATAIN
MOV R5,#0FFH
DJNZ R5,$
MOV R5,#0FFH
DJNZ R5,$
SETB DATAIN
NOP
NOP
MOV R5,#46H
TSR2:
JNB DATAIN,TSR3
DJNZ R5,TSR2
CLR BP.1
SJMP TSR7
TSR3:
SETB BP.1
MOV R5,#200
DJNZ R5,$
TSR7: SETB DATAIN
RET
SD1821:
JB BP.1,TSS2
MOV A,#0
MOV 2EH,A
MOV 2DH,A
NOP
RET
TSS2:
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#44H
LCALL WRITE_1820
LCALL SD1820
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#0BEH
LCALL WRITE_1820
LCALL READ_1820
RET
WRITE_1820:
MOV R2,#8 ;写
CLR C
WR1:
CLR DATAIN
NOP
RRC A
MOV DATAIN,C
MOV R3,#42
DJNZ R3,$
SETB DATAIN
NOP
DJNZ R2,WR1
SETB DATAIN
RET
READ_1820:
MOV R4,#2 ;;读
MOV R0,#2EH
RE00: MOV R2,#8
RE01: CLR C
CLR DATAIN
NOP
NOP
SETB DATAIN
NOP
MOV C,DATAIN
MOV R3,#46
DJNZ R3,$
RRC A
DJNZ R2,RE01
MOV @R0,A
DEC R0
DJNZ R4,RE00
RET
;===========写指令程式==============
WRI:
CLR CS
SETB CS
MOV R6,#8
MOV A,#0F8H
WRI1:
RLC A
CLR SCK
MOV SID,C
SETB SCK
DJNZ R6,WRI1
MOV R6,#8
MOV A,COM
ANL A,#0F0H
WRI2:
RLC A
CLR SCK
MOV SID,C
SETB SCK
DJNZ R6,WRI2
MOV R6,#8
MOV A,COM
SWAP A
ANL A,#0F0H
WRI3:
RLC A
CLR SCK
MOV SID,C
SETB SCK
DJNZ R6,WRI3
RET
;----------写数据子程式-------------------
WRD:
CLR CS
SETB CS
MOV R6,#8
MOV A,#0FAH
WRD1:
RLC A
CLR SCK
MOV SID,C
SETB SCK
DJNZ R6,WRD1
MOV R6,#8
MOV A,DAT
ANL A,#0F0H
WRD2:
RLC A
CLR SCK
MOV SID,C
SETB SCK
DJNZ R6,WRD2
MOV R6,#8
MOV A,DAT
SWAP A
ANL A,#0F0H
WRD3:
RLC A
CLR SCK
MOV SID,C
SETB SCK
DJNZ R6,WRD3
RET
DLAY:
MOV R7,#0FBH
DJNZ R7,$
RET
INSS:
PUSH ACC
PUSH PSW
MOV TH0,#0B8H
MOV TL0,#00H
SETB ES
INC D_A
MOV A,D_A
CLR C
SUBB A,#50
JC EXI
MOV D_A,#0
CLR BP.0
INC D_B
MOV A,D_B
CLR C
SUBB A,#2
JC EXI
MOV D_B,#0
CPL BP.1
CPL P3.5
JB P3.1,EXIA
MOV D_D,#0
INC D_C
MOV A,D_C
CLR C
SUBB A,#3
JC EXI
MOV D_C,#0
SETB BP.7
POP PSW
POP ACC
RETI
EXI:
POP PSW
POP ACC
RETI
EXIA:
MOV D_C,#0
INC D_D
MOV A,D_D
CLR C
SUBB A,#3
JC EXI
MOV D_D,#0
CLR BP.7
POP PSW
POP ACC
RETI
SERIAL:
PUSH ACC
PUSH PSW
MOV R1,#30H
MOV R4,#73
KKL:
MOV 2FH,#0DDH
MOV A,SBUF
MOV @R1,A
CLR RI
NOP
NOP
INC R1
DJNZ R4,MMN
SETB BP.2
JMP SSD
MMN:
JBC RI,KKL
SETB BP.3
DJNZ 2FH,MMN
SSD:
POP PSW
POP ACC
CLR ES
RETI
TAB:
DB 24H,50H,53H,52H,46H,31H,30H,30H,2CH,30H,2CH,35H,37H,36H,30H,30H,2CH,38H,2CH,31H,2CH,30H,2AH,33H,37H,0DH,0AH
DB 0A0H,0A2H,00H,18H,81H,02H,00H,01H,00H,01H,00H,01H,00H,01H,01H,01H,00H,01H,00H,01H,00H,01H,00H,01H,00H,01H,96H,00H,01H,24H,0B0H,0B3H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -