📄 sh_gm.asm
字号:
;NOP
;NOP
;NOP
DJNZ R4,VPW_OSENDS1 ;2
;
MOV P1,#VPW_HI ;2
MOV R4,#195 ;391-HI(200)
DJNZ R4,$ ;
NOP ;1
VPW_OSEND000: MOV A,@R0
INC R0
MOV R7,A ;1 ;2
VPW_OSEND00: MOV A,@R0 ;1
INC R0 ;1
MOV R6,#4 ;1
VPW_OSEND01: MOV P1,#VPW_LO ;2
MOV R4,#4 ;9
DJNZ R4,$ ;
RLC A ;1
JNC VPW_OSEND02 ;2
MOV R4,#31 ;125
VPW_OSEND1: ;JB VPW_IN,VPW_OSEND_STA ;
NOP
NOP
DJNZ R4,VPW_OSEND1 ;
VPW_OSEND02: MOV R4,#28 ;113
VPW_OSEND2: ;JB VPW_IN,VPW_OSEND_STA ;
NOP
NOP
DJNZ R4,VPW_OSEND2 ;
MOV P1,#VPW_HI ;2
RLC A ;1
JC VPW_OSEND03 ;2
MOV R4,#64 ;129
DJNZ R4,$ ;
VPW_OSEND03: MOV R4,#60 ;121
DJNZ R4,$ ;
DJNZ R6,VPW_OSEND01 ;2
DJNZ R7,VPW_OSEND00 ;2
DJNZ R1,VPW_OSEND04
LJMP VPW_OSEND05
VPW_OSEND04: MOV P1,#VPW_LO
MOV R0,B
MOV A,@R0
INC A
ADD A,B
MOV B,A
LJMP VPW_OSEND_STA
VPW_OSEND05: MOV P1,#VPW_LO ;3
MOV R4,#200 ;401
DJNZ R4,$ ;
;
POP B
RET
VPW_READ_ONLY:
VPW_OREAD_STA: MOV 08H,#0
MOV R1,#09H
MOV R7,#0
VPW_OREADM2: MOV R0,#0AH ;1
VPW_OREADSS: MOV R3,#20 ;1
VPW_OREADS0: CLR TR0 ;1
CLR TF0 ;1
MOV TH0,#TH_10MS ;2
MOV TL0,#TL_10MS ;2
SETB TR0 ;1
VPW_OREADS1: JB TF0,VPW_OREADS2 ;2
MOV R4,#17 ;1
VPW_OREAD1: JNB VPW_IN,VPW_OREADS1 ;18
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
JNB VPW_IN,VPW_OREADS1 ;
DJNZ R4,VPW_OREAD1 ;2
AJMP VPW_OREAD00 ;2
VPW_OREADS2: DJNZ R3,VPW_OREADS0 ;2
CLR TR0 ;1
CLR TF0 ;1
AJMP VPW_OREADEND ;2
VPW_OREAD00: CLR TR0 ;1
CLR TF0 ;1
JB VPW_IN,$ ;2
;
MOV R5,#20
DJNZ R5,$
;
VPW_OREADCL0: MOV R6,#4 ;1
VPW_OREADCL1: MOV R4,#7
DJNZ R4,$
;+++++++++++++++++++++++++
VPW_OREADCL2: CLR C ;1 以下重复的为滤波作用
VPW_OREADCL40: MOV R4,#5 ;1
VPW_OREADCL4: JB VPW_IN,VPW_OREADCL41 ;2
DJNZ R4,VPW_OREADCL4 ;2
AJMP VPW_OREADCL50
VPW_OREADCL41: MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCL5
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCL50: MOV R4,#9 ;1
VPW_OREADCL5: JB VPW_IN,VPW_OREADCL51 ;2
DJNZ R4,VPW_OREADCL5 ;2
AJMP VPW_OREADCL60
VPW_OREADCL51: MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCL6
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCL60: MOV R4,#9 ;1
VPW_OREADCL6: JB VPW_IN,VPW_OREADCL61 ;2
DJNZ R4,VPW_OREADCL6 ;2
AJMP VPW_OREADCL70
VPW_OREADCL61: MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCL7
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCL70: MOV R4,#9 ;1
VPW_OREADCL7: JB VPW_IN,VPW_OREADCL71 ;2
DJNZ R4,VPW_OREADCL7 ;2
SETB C
AJMP VPW_OREADCLA0
VPW_OREADCL71: MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCLA
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCLA0: MOV R4,#9 ;1
VPW_OREADCLA: JB VPW_IN,VPW_OREADCLA1 ;2
DJNZ R4,VPW_OREADCLA ;2
SETB C
AJMP VPW_OREADCLB0
;
VPW_OREADCLA1: SETB C
MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCLB
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCLB0: MOV R4,#9 ;1
VPW_OREADCLB: JB VPW_IN,VPW_OREADCLB1 ;2
DJNZ R4,VPW_OREADCLB ;2
AJMP VPW_OREADCLC0
;
VPW_OREADCLB1: MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCLC0
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCLC0: MOV R4,#50 ;1
VPW_OREADCLC: JB VPW_IN,VPW_OREADCLC1 ;2
DJNZ R4,VPW_OREADCLC ;2
AJMP VPW_OREADNXT ;2
;
VPW_OREADCLC1: MOV R5,#18
DJNZ R5,$
JNB VPW_IN,VPW_OREADCLC
RLC A ;1
AJMP VPW_OREADCH
;
VPW_OREADCH: SETB C ;1
VPW_OREADCH40: MOV R4,#9 ;1
VPW_OREADCH4: JNB VPW_IN,VPW_OREADCH41 ;2
DJNZ R4,VPW_OREADCH4 ;2
AJMP VPW_OREADCH50
;
VPW_OREADCH41: MOV R5,#18
DJNZ R5,$
JB VPW_IN,VPW_OREADCH5
AJMP VPW_OREADCOK
;
VPW_OREADCH50: MOV R4,#9 ;1
VPW_OREADCH5: JNB VPW_IN,VPW_OREADCH51 ;2
DJNZ R4,VPW_OREADCH5 ;2
AJMP VPW_OREADCH60
;
VPW_OREADCH51: MOV R5,#18
DJNZ R5,$
JB VPW_IN,VPW_OREADCH6
AJMP VPW_OREADCOK
;
VPW_OREADCH60: MOV R4,#9 ;1
VPW_OREADCH6: JNB VPW_IN,VPW_OREADCH61 ;2
DJNZ R4,VPW_OREADCH6 ;2
AJMP VPW_OREADCH70
;
VPW_OREADCH61: MOV R5,#18
DJNZ R5,$
JB VPW_IN,VPW_OREADCH7
AJMP VPW_OREADCOK
;
VPW_OREADCH70: MOV R4,#9 ;1
VPW_OREADCH7: JNB VPW_IN,VPW_OREADCH71 ;2
DJNZ R4,VPW_OREADCH7 ;2
CLR C
AJMP VPW_OREADCHA0
;
VPW_OREADCH71: MOV R5,#18
DJNZ R5,$
JB VPW_IN,VPW_OREADCHA
AJMP VPW_OREADCOK
;
VPW_OREADCHA0: MOV R4,#9 ;1
VPW_OREADCHA: JNB VPW_IN,VPW_OREADCHA1 ;2
DJNZ R4,VPW_OREADCHA ;2
CLR C
AJMP VPW_OREADCHB
;
VPW_OREADCHA1: CLR C
MOV R5,#18
DJNZ R5,$
JB VPW_IN,VPW_OREADCHB
AJMP VPW_OREADCOK
;
VPW_OREADCHB: JB VPW_IN,$ ;2
MOV R5,#18
DJNZ R5,$
JB VPW_IN,VPW_OREADCHB
AJMP VPW_OREADCOK
;
VPW_OREADCOK: RLC A ;1
DJNZ R6,VPW_OREADCTRAN ;2
PUSH ACC ;2
MOV A,R0 ;1
CLR C ;1
SUBB A,#info_end ;58H ;1
JNC VPW_OREADERR1;2
POP ACC ;2
MOV @R0,A ;1
INC R0 ;1
INC R7 ;1
MOV R6,#4 ;1
AJMP VPW_OREADCL2 ;2
;
VPW_OREADCTRAN: AJMP VPW_OREADCL1
VPW_OREADERR1: POP ACC
LJMP VPW_OREADEND
;
VPW_OREADNXT: MOV A,R6
CJNE A,#4,VPW_OREADERR2
;
INC 08H
MOV A,R7
MOV @R1,A
MOV A,R0
MOV R1,A
INC R0
MOV R7,#0
AJMP VPW_OREADSS
;
VPW_OREADEND: MOV A,08H
JZ VPW_OREADERR
CLR C
MOV A,#0
RET
VPW_OREADERR: MOV 08H,#01H
MOV 09H,#01H
MOV 0AH,#07H
SETB C
MOV A,#0
RET
VPW_OREADERR2: MOV 08H,#01H
MOV 09H,#01H
MOV 0AH,#0FFH
SETB C
MOV A,#0AAH
RET
gm_index: MOV a,ver_2
CJNE a,#0aah,gm_index0
CLR c
RET
;
gm_index0: MOV r0,#send_buf
MOV A,@r0
CJNE a,#0,gm_index1
SETB c
RET
;
gm_index1: MOV R6,A
MOV R2,#1
gm_index2: MOV r0,#send_buf+1
ACALL SHGM_LOCT
INC r0
INC r0
INC r0
MOV A,@r0
CJNE a,ver_2,gm_index3
INC r0
MOV A,@r0
CJNE a,ver_3,gm_index3
AJMP gm_index4
;
gm_index3: ACALL gm_delinfo
AJMP gm_index0
;
gm_index4: INC R2
DJNZ R6,gm_index2
CLR c
RET
SHGM_LOCT: PUSH 02H
SHGM_LOCT_1: DJNZ R2,SHGM_LOCT_2
AJMP SHGM_LOCT_END
SHGM_LOCT_2: MOV A,@r0
INC A
ADD A,r0
MOV r0,a
AJMP SHGM_LOCT_1
SHGM_LOCT_END: POP 02H
RET
gm_delinfo: MOV r0,#send_buf
MOV A,@r0
MOV R6,A
gm_delinfo1: MOV r0,#send_buf+1
ACALL SHGM_LOCT
MOV a,r0
MOV r1,a
INC r2
MOV r0,#send_buf+1
ACALL SHGM_LOCT
;
gm_delinfo2: MOV a,r0
CLR c
SUBB a,#info_end ;58h
JNC gm_delinfo3
MOV a,@r0
INC r0
MOV @r1,a
INC r1
AJMP gm_delinfo2
;
gm_delinfo3: MOV a,r6
MOV r0,#send_buf
dec a
MOV @r0,a
RET
;============================================================================;
SHGM_engCOMM1:
SHGM_engclCOMM1:DB 05H, 6CH, 10H,0F1H, 20H, 64h
SHGM_engCOMM2: DB 08H, 6CH, 10H,0F1H, 19H,0DAH,0FFH, 00H, 3fh
SHGM_engclCOMM2:DB 06H, 6CH, 10H,0F1H, 10H, 00H, 1ah
SHGM_engclCOMM3:DB 05H, 6CH, 10H,0F1H, 14H, 5ah
SHGM_absCOMM1:
SHGM_absclCOMM1:DB 07H, 6CH, 28H,0F1H, 2AH, 01H, 50H,0c9h
SHGM_absCOMM2: DB 08H, 6CH, 28H,0F1H, 19H, 02H,0FFH, 00H,0bdh
SHGM_absCOMM3: DB 08H, 6CH, 28H,0F1H, 19H, 10H,0FFH, 00H,0a6h
;SHGM_absCOMM4: DB 07H, 6CH, 28H,0F1H, 2AH, 01H, 14H,0aeh
SHGM_absclCOMM2:DB 07H, 6CH, 28H,0F1H, 2AH, 01H, 14H,0aeh
SHGM_absclCOMM3:DB 05H,0ACH, 28H,0F1H, 20H,0e1h
SHGM_absclCOMM4:DB 05H,0ACH, 28H,0F0H, 14H, 93h
SHGM_srsCOMM1:
SHGM_srsclCOMM1:DB 0cH, 6CH, 80H,0F1H, 2AH, 01H, 19H,0FFH,0FFH,0FFH,0FFH,0FFH, 7dh
SHGM_srsCOMM2:
SHGM_srsclCOMM2:DB 05H, 6CH, 58H,0F1H, 20H, 08h
SHGM_srsCOMM3: DB 08H, 6CH, 58H,0F1H, 19H, 02H,0FFH, 00H,0d1h
SHGM_srsCOMM4: DB 08H, 6CH, 58H,0F1H, 19H, 10H,0FFH, 00H,0cah
SHGM_srsclCOMM3:DB 05H, 6CH, 58H,0F1H, 14H, 36h
gm_trans: MOV R0,#SEND_BUF
MOV a,#1
MOV @R0,A
INC r0
CLR A
MOVC A,@A+DPTR
MOV @R0,A
MOV R1,A
SETB C
JZ gm_trans2
gm_trans1: INC DPTR
INC R0
CLR A
MOVC A,@A+DPTR
MOV @R0,A
DJNZ R1,gm_trans1
CLR C
gm_trans2: RET
gm_selread: MOV dph0,dph
MOV dpl0,dpl
gm_selread1: PUSH 01h
MOV dph,dph0
MOV dpl,dpl0
ACALL gm_trans
ACALL gm_SENDread
JNC gm_selread2
POP 01h
DJNZ R1,gm_selread1
SETB c
RET
;
gm_selread2: POP 01h
RET
gm_CLRCODE: MOV dptr,#SHGM_engclCOMM1
MOV ver_2,#10h
MOV ver_3,#60h
MOV r1,#2
ACALL gm_selread
;
MOV dptr,#SHGM_engclCOMM2
MOV ver_2,#10h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -