📄 gz_honda.asm
字号:
;
HO_EG_CODECOMM1: DB 05H, 20H, 05H, 40H, 10H, 8BH
HO_EG_CODECOMM2: DB 05H, 20H, 05H, 50H, 10H, 7BH
HO_EG_CLEACOMM1: DB 04H, 21H, 04H, 01H,0DAH
HO_AT_CODECOMM1: DB 05H, 40H, 05H, 10H, 10H, 9BH
HO_AT_CLEACOMM1: DB 04H, 41H, 04H, 01H,0BAH
HO_ABS_CODECOMM1: DB 05H,0A0H, 05H, 00H, 10H, 4BH
HO_ABS_CLEACOMM1: DB 04H,0A1H, 04H, 01H, 5AH
HO_SRS_CODECOMM1: DB 05H, 60H, 05H, 20H, 10H, 6BH
HO_SRS_CODECOMM2: DB 05H, 60H, 05H, 00H, 0EH, 8DH
HO_SRS_CLEACOMM1: DB 04H, 61H, 04H, 01H, 9AH
HO_SRS_CLEACOMM2: DB 04H, 61H, 04H, 11H, 8AH
HO_SRS_SYSINFOCOMM: DB 05H, 60H, 05H, 70H, 0CH, 1FH
GZ_TRANS: MOV R0,#SEND_BUF
CLR A
MOVC A,@A+DPTR
INC DPTR
MOV R1,A
SETB C
JZ GZ_TRANS2
GZ_TRANS1: CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R1,GZ_TRANS1
CLR C
GZ_TRANS2: RET
HO_FTRAN: PUSH B
MOV R0,#SEND_BUF
ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
DEC A
DEC A
MOV B,A
HO_FTRAN1: ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
MOV a,r1
CLR c
SUBB a,#INFO_END
JNC HO_FTRAN2
DJNZ B,HO_FTRAN1
HO_FTRAN2: POP B
RET
;
HO_SENDREAD: MOV DPH0,DPH
MOV DPL0,DPL
HO_SENDREAD1: PUSH 01H
MOV DPH,DPH0
MOV DPL,DPL0
ACALL GZ_TRANS
ACALL HO_SENDFRAME
MOV R0,#SEND_BUF
ACALL HO_READFRAME
JNC HO_SENDREAD2
POP 01H
DJNZ R1,HO_SENDREAD1
SETB C
RET
;
HO_SENDREAD2: POP 01H
RET
;===============
HO_SENDFRAME: PUSH 01H
;
MOV R0,#SEND_BUF
MOV A,@R0
INC R0
ACALL HO_SENDBYTE
MOV A,@R0
INC R0
MOV R1,A
ACALL HO_SENDBYTE
MOV A,R1
DEC A
DEC A
MOV R1,A
HO_SENFR0:MOV A,@R0
INC R0
ACALL HO_SENDBYTE
DJNZ R1,HO_SENFR0
;
POP 01H
RET
;
HO_READFRAME: PUSH 01H
;
ACALL HO_READBYTE
JC HO_RECFRE
ACALL HO_READBYTE
JC HO_RECFRE
SUBB A,#02H
MOV R1,A
HO_RECFR0:ACALL HO_READBYTE
JC HO_RECFRE
DJNZ R1,HO_RECFR0
MOV R4,#10
ACALL DELAY_1MS
CLR C
AJMP HO_RECFRE
;
HO_RECFRE:POP 01H
RET
HO_READBYTE: ACALL HO_READDATA
JC HO_RBYTEER
MOV @R0,A
INC R0
CLR C
RET
HO_RBYTEER:SETB C
RET
HO_SENDBYTE: CLR REN
CLR TI
MOV SBUF,A
JNB TI,$
CLR TI
RET
;
HO_READDATA: PUSH 03H
SETB REN
CLR RI
MOV R3,#50
HO_RDD0:CLR TR0
CLR TF0
MOV TH0,#TH_20MS
MOV TL0,#TL_20MS
SETB TR0
HO_RDD1:JB RI,HO_RDD2
JNB TF0,HO_RDD1
DJNZ R3,HO_RDD0
CLR TR0
CLR TF0
CLR RI
SETB C
POP 03H
RET
HO_RDD2:MOV A,SBUF
CLR TR0
CLR TF0
CLR RI
CLR C
POP 03H
RET
GZ_CLRCODE: MOV DPTR,#HO_EG_CLEACOMM1
MOV R1,#4
ACALL HO_SENDREAD
;
MOV DPTR,#HO_AT_CLEACOMM1
MOV R1,#4
ACALL HO_SENDREAD
;
GZ_CLRCODE_1: MOV DPTR,#HO_ABS_CLEACOMM1
MOV R1,#4 ;1
ACALL HO_SENDREAD
MOV R0,#SEND_BUF+2
MOV A,@R0
CJNE A,#31H,GZ_CLRCODE_2
;AJMP GZ_CLRCODE_1
;
GZ_CLRCODE_2: MOV R1,#4
GZ_CLRCODE_3: PUSH 01H
MOV DPTR,#HO_SRS_CLEACOMM1
MOV R1,#1
ACALL HO_SENDREAD
;
MOV DPTR,#HO_SRS_CLEACOMM2
MOV R1,#1
ACALL HO_SENDREAD
POP 01H
DJNZ R1,GZ_CLRCODE_3
RET
;=========================================
;=========================================
;=========================================
GZ_READ: MOV A,SYSTEMNUM
CJNE A,#1,GZ_READ_1
MOV DPTR,#HO_EG_CODECOMM1
MOV R1,#2
ACALL HO_SENDREAD
JNC HO_EGRD1
AJMP GZ_SAVE
;
HO_EGRD1: MOV R1,#HO_EGRBUF1
ACALL HO_FTRAN
MOV DPTR,#HO_EG_CODECOMM2
MOV R1,#2
ACALL HO_SENDREAD
JNC HO_EGRD2
AJMP GZ_SAVE
;
HO_EGRD2: MOV R1,#HO_EGRBUF2
ACALL HO_FTRAN
CLR C
AJMP GZ_SAVE
;
GZ_READ_1: CJNE A,#2,GZ_READ_2
MOV DPTR,#HO_AT_CODECOMM1
MOV R1,#2
ACALL HO_SENDREAD
AJMP GZ_SAVE
;
GZ_READ_2: CJNE A,#3,GZ_READ_3
MOV DPTR,#HO_ABS_CODECOMM1
MOV R1,#2
ACALL HO_SENDREAD
AJMP GZ_SAVE
;
GZ_READ_3: MOV DPTR,#HO_SRS_SYSINFOCOMM
MOV R1,#2
ACALL HO_SENDREAD
JNC HO_SRSRD000
AJMP GZ_SAVE
;
HO_SRSRD000: MOV DPTR,#HO_SRS_CODECOMM1
MOV R1,#2
ACALL HO_SENDREAD
JNC HO_SRSRD001
AJMP GZ_SAVE
;
HO_SRSRD001: MOV R0,#SEND_BUF+17
MOV A,@R0
CJNE A,#0AAH,HO_SRSRD002
AJMP HO_SRSRD003
HO_SRSRD002: SETB C
AJMP GZ_SAVE
;
HO_SRSRD003: MOV DPTR,#HO_SRS_SYSINFOCOMM
MOV R1,#2
ACALL HO_SENDREAD
JNC HO_SRSRD01
AJMP GZ_SAVE
;
HO_SRSRD01: MOV DPTR,#HO_SRS_CODECOMM2
MOV R1,#2
ACALL HO_SENDREAD
AJMP GZ_SAVE
;
GZ_SAVE: JNC GZ_SAVE_0
MOV R0,#SEND_BUF
MOV a,#0ffh
MOV @R0,A
AJMP GZ_SAVE_end
;
GZ_SAVE_0: MOV A,SYSTEMNUM
CJNE A,#1,GZ_SAVE_1
ACALL gz_eggetcode
AJMP GZ_SAVE_end
;
GZ_SAVE_1: CJNE A,#2,GZ_SAVE_2
ACALL gz_atgetcode
AJMP GZ_SAVE_end
;
GZ_SAVE_2: CJNE A,#3,GZ_SAVE_3
ACALL gz_absgetcode
AJMP GZ_SAVE_end
;
GZ_SAVE_3: ACALL gz_srsgetcode
GZ_SAVE_end: ACALL del_same_code
RET
gz_eggetcode: MOV R0,#HO_EGRBUF1+2
MOV R1,#DTC_INFO
MOV R7,#0
MOV R6,#0
MOV R4,#16
HO_EGDIAGA00: PUSH 04h
ACALL READ_R0_ACC
JZ HO_EGDIAGA01
MOV R5,A
MOV R3,#0
MOV R2,#8
HO_EGDGA1: MOV A,R5
RRC A
MOV R5,A
JNC HO_EGDGA2
MOV A,R6
CLR C
RLC A
MOV R4,A
MOV A,R3
MOV B,#4
DIV AB
ADD A,R4
ACALL SAVE_R1_ACC
MOV A,B
INC A
ACALL SAVE_R1_ACC
INC R7
MOV A,R7
CLR C
SUBB A,#14
JC HO_EGDGA2
POP 04h
LJMP HO_EGDIAGEND
;
HO_EGDGA2: INC R3
DJNZ R2,HO_EGDGA1
HO_EGDIAGA01: INC R6
POP 04h
DJNZ R4,HO_EGDIAGA00
;
MOV R0,#HO_EGRBUF2+2
MOV R6,#0
MOV R4,#16
HO_EGDIAGB00: PUSH 04h
ACALL READ_R0_ACC
JZ HO_EGDIAGB01
MOV R5,A
MOV R3,#0
MOV R2,#8
HO_EGDGB1: MOV A,R5
RRC A
MOV R5,A
JNC HO_EGDGB2
MOV A,R6
CLR C
RLC A
MOV R4,A
MOV A,R3
MOV B,#4
DIV AB
ADD A,R4
ADD A,#32
ACALL SAVE_R1_ACC
MOV A,B
INC A
ACALL SAVE_R1_ACC
INC R7
MOV A,R7
CLR C
SUBB A,#14
JC HO_EGDGB2
POP 04h
LJMP HO_EGDIAGEND
;
HO_EGDGB2: INC R3
DJNZ R2,HO_EGDGB1
HO_EGDIAGB01: INC R6
POP 04h
DJNZ R4,HO_EGDIAGB00
;
HO_EGDIAGEND: MOV A,R7
MOV R0,#SEND_BUF
MOV @r0,a
RET
gz_atgetcode: MOV R0,#SEND_BUF+6
MOV R1,#DTC_INFO+18
MOV R7,#0
MOV R6,#0
MOV R4,#12
HO_ATDIAG00: PUSH 04h
ACALL READ_R0_ACC
JZ HO_ATDIAG01
MOV R5,A
MOV R3,#0
MOV R2,#8
HO_ATDG1: MOV A,R5
RRC A
MOV R5,A
JNC HO_ATDG2
MOV A,R6
CLR C
RLC A
MOV R4,A
MOV A,R3
MOV B,#4
DIV AB
ADD A,R4
ACALL SAVE_R1_ACC
MOV A,B
INC A
ACALL SAVE_R1_ACC
INC R7
MOV A,R7
CLR C
SUBB A,#19
JC HO_ATDG2
POP 04h
LJMP HO_ATDIAGEND
;
HO_ATDG2: INC R3
DJNZ R2,HO_ATDG1
HO_ATDIAG01: INC R6
POP 04h
DJNZ R4,HO_ATDIAG00
;
HO_ATDIAGEND: MOV A,R7
MOV R0,#SEND_BUF
MOV @r0,a
JNZ HO_AtDIAGEND_0
RET
HO_AtDIAGEND_0: MOV R1,#DTC_INFO
MOV R0,#DTC_INFO+18
HO_AtDIAGEND_1: ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
DJNZ R7,HO_AtDIAGEND_1
RET
gz_absgetcode: MOV R0,#SEND_BUF+2
MOV R1,#DTC_INFO+18
MOV R7,#0
MOV R6,#1
MOV R4,#8
HO_ABSDIAG00:ACALL READ_R0_ACC
INC R6
JZ HO_ABSDIAG01
MOV R5,A
MOV R3,#1
MOV R2,#8
HO_ABSDG1:MOV A,R5
RRC A
MOV R5,A
JNC HO_ABSDG2
MOV A,R6
MOV B,#5
MUL AB
MOV B,R3
ADD A,B
ACALL SAVE_R1_ACC
MOV A,#1
ACALL SAVE_R1_ACC
INC R7
MOV A,R7
CLR C
SUBB A,#19
JC HO_ABSDG2
AJMP HO_ABSDIAGEND
;
HO_ABSDG2:INC R3
DJNZ R2,HO_ABSDG1
HO_ABSDIAG01:ACALL READ_R0_ACC
INC R6
DJNZ R4,HO_ABSDIAG00
;
HO_ABSDIAGEND: MOV A,R7
MOV R0,#SEND_BUF
MOV @r0,a
JNZ HO_ABSDIAGEND_0
RET
HO_ABSDIAGEND_0:MOV R1,#DTC_INFO
MOV R0,#DTC_INFO+18
HO_ABSDIAGEND_1:ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
ACALL READ_R0_ACC
ACALL SAVE_R1_ACC
DJNZ R7,HO_ABSDIAGEND_1
RET
gz_srsgetcode: MOV R0,#SEND_BUF+10
MOV A,@r0
MOV r2,A
MOV R0,#SEND_BUF+12
MOV A,@r0
MOV r3,A
MOV R0,#SEND_BUF+14
MOV A,@r0
MOV r4,A
CJNE A,#0,HO_SRSRD2
MOV A,r3
CJNE A,#0,HO_SRSRD2
MOV A,r2
CJNE A,#0,HO_SRSRD2
MOV R0,#SEND_BUF
MOV a,#0
MOV @r0,a
RET
;
HO_SRSRD2: MOV R0,#SEND_BUF+10
MOV R1,#DTC_INFO
MOV R7,#0
MOV R6,#3
HO_SRSDIAG00:ACALL READ_R0_ACC
JZ HO_SRSDIAG01
MOV B,A
SWAP A
ANL A,#0FH
ACALL SAVE_R1_ACC
MOV A,B
ANL A,#0FH
ACALL SAVE_R1_ACC
INC R7
MOV A,R7
CLR C
SUBB A,#19
JC HO_SRSDIAG01
LJMP HO_SRSDIAGEND
;
HO_SRSDIAG01:ACALL READ_R0_ACC
DJNZ R6,HO_SRSDIAG00
;
HO_SRSDIAGEND: MOV A,R7
MOV R0,#SEND_BUF
MOV @r0,a
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -