noname.asm

来自「伟福环境下反汇编demo1」· 汇编 代码 · 共 3,142 行 · 第 1/5 页

ASM
3,142
字号
        JB     62H, FOOT_UP
        JB     63H, FOOT_UP
        MOV    TH1, #0FCH
        MOV    TL1, #20H
        MOV    R6, #64H
FTIME00:
        CLR    09H
X87:
        JNB    09H, X87
        JNB    P1.7, JXOUT
        DJNZ   R6, FTIME00
        SJMP   FOOT_UP
JXOUT:
        SETB   EX1
        RET
FOOT_UP:
        MOV    TH1, #0FCH
        MOV    TL1, #20H
        JNB    P1.6, FT_CHECK01
        JNB    P1.3, FT_CHECK02
        CLR    65H
        SJMP   FT_GO
FT_CHECK01:
        SETB   65H
        CLR    64H
        SJMP   FT_GO
FT_CHECK02:
        SETB   65H
        SETB   64H
FT_GO:
        LCALL  FT_ON
        MOV    R6, 44H
FTIME01:
        MOV    R7, #0AH
FTIME02:
        CLR    09H
X88:
        JNB    09H, X88
        DJNZ   R7, FTIME02
        JB     63H, FT_CHECK_12
        JB     P1.6, FT_BACK1
        JNB    P1.3, FT_BACK1
        JNB    28H, FT_LOOP1
        JB     2FH, FT_LOOP1
        JNB    P1.7, FT_BACK1
        SJMP   FT_LOOP1
FT_CHECK_12:
        JB     65H, FT_CHECK_13
        JB     64H, FT_CHECK_12X
        JNB    P1.3, FT_BACK1
        JB     2FH, FT_CHECK_12W
        JNB    P1.7, FT_BACK1
FT_CHECK_12W:
        JB     P1.6, FT_LOOP1
        CLR    63H
        SJMP   FT_LOOP1
FT_CHECK_12X:
        JNB    P1.6, FT_CHECK_12Y
        JB     P1.3, FT_LOOP1
FT_CHECK_12Y:
        CLR    63H
        SJMP   FT_LOOP1
FT_CHECK_13:
        JB     64H, FT_CHECK_14
        JB     2FH, FT_CHECK_13X
        JNB    P1.7, FT_BACK1
FT_CHECK_13X:
        JNB    P1.6, FT_LOOP1
        CLR    65H
        SJMP   FT_LOOP1
FT_CHECK_14:
        JNB    P1.3, FT_LOOP1
        CLR    65H
FT_LOOP1:
        DJNZ   R6, FTIME01
        SJMP   FT_ALLTIME_TIMER
FT_BACK1:
        LJMP   FT_BACK2
FT_ALLTIME_TIMER:
        MOV    R6, 43H
        PUSH   PSW
        MOV    PSW, #08H
        MOV    R1, #00H
        MOV    R2, #00H
        POP    PSW
FTIME99:
        CLR    0BH
FT_DUTY_LOOP:
        LCALL  BBT_OFF
        MOV    R7, 46H
FTIME10:
        CLR    09H
X89:
        JNB    09H, X89
        DJNZ   R7, FTIME10
        LCALL  FT_ON
        MOV    R7, 45H
FTIME20:
        CLR    09H
X90:
        JNB    09H, X90
        DJNZ   R7, FTIME20
        JB     63H, FT_CHECK_22
        JB     P1.6, FT_BACK2
        JNB    P1.3, FT_BACK2
        JNB    28H, FT_LOOP2
        JB     2FH, FT_LOOP2
        JNB    P1.7, FT_BACK2
        SJMP   FT_LOOP2
FT_CHECK_22:
        JB     65H, FT_CHECK_23
        JB     64H, FT_CHECK_22X
        JNB    P1.3, FT_BACK2
        JB     2FH, FT_CHECK_22W
        JNB    P1.7, FT_BACK2
FT_CHECK_22W:
        JB     P1.6, FT_LOOP2
        CLR    63H
        SJMP   FT_LOOP2
FT_CHECK_22X:
        JNB    P1.6, FT_CHECK_22Y
        JB     P1.3, FT_LOOP2
FT_CHECK_22Y:
        CLR    63H
        SJMP   FT_LOOP2
FT_CHECK_23:
        JB     64H, FT_CHECK_24
        JB     2FH, FT_CHECK_23X
        JNB    P1.7, FT_BACK2
FT_CHECK_23X:
        JNB    P1.6, FT_LOOP2
        CLR    65H
        SJMP   FT_LOOP2
FT_CHECK_24:
        JNB    P1.3, FT_LOOP2
        CLR    65H
FT_LOOP2:
        JNB    0BH, FT_DUTY_LOOP
        DJNZ   R6, FTIME99
        JB     P1.6, FT_BACK3
        CLR    63H
        SJMP   FT_DUTY_LOOP
FT_BACK2:
        CLR    63H
FT_BACK3:
        MOV    R7, 47H
FT_RS_TIME:
        LCALL  BBT_OFF
        MOV    A, 7FH
        LCALL  DELAYMS
        LCALL  FT_ON
        MOV    A, 7EH
        LCALL  DELAYMS
        DJNZ   R7, FT_RS_TIME
        LCALL  BBT_OFF
        SETB   EX1
        MOV    R7, 6BH
FT_RS_T:
        MOV    A, #0AH
        LCALL  DELAYMS
        DJNZ   R7, FT_RS_T
        RET
        JNB    44H, WP_BACK
        LCALL  SHOW_WORKPIECE
WP_BACK:
        RET
SOLENOID_OFF:
        SETB   50H
        SETB   51H
        SETB   52H
        SETB   53H
        SETB   54H
        LCALL  DISP_STATE
        RET
        SETB   55H
        LCALL  DISP_STATE
        RET
        CLR    55H
        LCALL  DISP_STATE
        RET
FT_ON:
        CLR    50H
        LCALL  DISP_STATE
        RET
BBT_OFF:
        SETB   50H
        LCALL  DISP_STATE
        RET
BT_ON:
        CLR    51H
        LCALL  DISP_STATE
        RET
BT_OFF:
        SETB   51H
        LCALL  DISP_STATE
        RET
TR_ON:
        CLR    52H
        LCALL  DISP_STATE
        RET
TR_OFF:
        SETB   52H
        LCALL  DISP_STATE
        RET
WP_ON:
        CLR    54H
        LCALL  DISP_STATE
        RET
WP_OFF:
        SETB   54H
        LCALL  DISP_STATE
        RET
; use LED display state
DISP_STATE:
        MOV    DPTR, #0A000H
        MOV    A, 2AH
        MOVX   @DPTR, A
        SJMP   DISP_BACK
DISP_BACK:
        MOV    C, 57H
        MOV    27H, C
        RET
        CLR    EA
        SETB   P1.4
        SETB   P1.5
        MOV    2AH, #0FFH
        LCALL  DISP_STATE
ERR_LOOP:
        MOV    A, #04H
        LCALL  SHOW_TEST
        MOV    A, #64H
        LCALL  DELAYMS
        LCALL  SHOW_BK
        MOV    A, #32H
        LCALL  DELAYMS
        SJMP   ERR_LOOP
NEEDLE_UP:
        CLR    10H
        SETB   12H
        CLR    17H
        CLR    02H
        MOV    25H, #00H
        MOV    48H, #00H
        MOV    26H, #00H
        MOV    27H, #00H
        MOV    23H, #04H
        SETB   04H
        LCALL  TRIM_GO
        CLR    19H
X91:
        JB     P1.0, X91
        CLR    04H
        LCALL  TRIM_END
        LJMP   WAIT
; EXTERN INTERRUPT 0
EXT_INT0:
        PUSH   PSW
        PUSH   ACC
        MOV    PSW, #08H
        MOV    36H, #00H
        JNB    22H, SAVE_CLOCK
        CLR    22H
        MOV    30H, #3FH
        MOV    31H, #0FFH
        MOV    TH0, #0C0H
        MOV    TL0, #0AH
        SETB   TR0
        SJMP   DO_PULSE_CHANG
SAVE_CLOCK:
        CLR    TR0
        MOV    A, TH0
        ANL    A, #3FH
        MOV    R6, A
        MOV    R7, TL0
        MOV    TH0, #0C0H
        MOV    TL0, #0AH
        SETB   TR0
        MOV    A, R7
        ADD    A, 35H
        MOV    57H, 31H
        MOV    31H, A
        MOV    A, R6
        ADDC   A, 34H
        CLR    C
        RRC    A
        MOV    78H, 30H
        MOV    30H, A
        MOV    A, 31H
        RRC    A
        MOV    31H, A
        MOV    A, R6
        MOV    34H, A
        MOV    A, R7
        MOV    35H, A
DO_PULSE_CHANG:
        JNB    26H, COUNT_STIT
        CPL    57H
        LCALL  DISP_STATE
        CLR    26H
        SETB   22H
COUNT_STIT:
        JB     21H, PULSE_BACK
        JNB    20H, CHECK_POSITION
        JB     P1.0, PULSE_BACK
        CLR    20H
        INC    48H
        MOV    50H, #00H
CHECK_POSITION:
        JNB    P1.0, PULSE_BACK
        SETB   20H
PULSE_BACK:
        JB     P1.2, PULSE_BACK1
        JB     0DH, PULSE_BACK1
        JB     P1.1, PULSE_BACK1
        SETB   0DH
PULSE_BACK1:
        POP    ACC
        POP    PSW
        SETB   24H
        RETI
; TIMER 0 INTERRUPT
TIMER0_INT:
        PUSH   PSW
        PUSH   ACC
        INC    36H
        MOV    A, 36H
        CJNE   A, #20H, X92
X92:
        JC     REPOWER
        POP    ACC
        POP    PSW
        MOV    PSW, #08H
        MOV    A, SP
        MOV    R0, A
        MOV    DPTR, #0F29H
        MOV    A, DPH
        MOV    @R0, A
        DEC    R0
        MOV    A, DPL
        MOV    @R0, A
        RETI
REPOWER:
        SETB   P1.5
        CLR    P1.4
        MOV    TH0, #0C0H
        MOV    TL0, #00H
        MOV    30H, #3FH
        MOV    31H, #0FFH
        MOV    TH0, #0E0H
        MOV    TL0, #00H
        POP    ACC
        POP    PSW
        RETI
; TIMER 1 INTERRUPT
TIMER1_INT:
        MOV    TL1, #19H
        MOV    TH1, #0FCH
        PUSH   ACC
        PUSH   PSW
        MOV    PSW, #08H
        INC    R1
        CJNE   R1, #64H, X93
X93:
        JC     TXCLOCK
        MOV    R1, #00H
        SETB   0AH
        INC    R2
        CJNE   R2, #64H, X94
X94:
        JC     TXCLOCK
        MOV    R2, #00H
        SETB   0BH
TXCLOCK:
        SETB   09H
        JB     10H, MOTOR_CTRL
        JNB    15H, JXBACK
        DEC    38H
        MOV    A, 38H
        JNZ    JXBACK
        SETB   P1.5
JXBACK:
        LJMP   TIMER_BACK
MOTOR_CTRL:
        PUSH   DPH
        PUSH   DPL
        LCALL  GET_SPEED_INPUT
        MOV    A, 30H
        JB     27H, OLD_CMPSPDX
        CJNE   A, #04H, X95
X95:
        JC     OLD_CMPSPDX
        CJNE   A, 32H, CHBYTE
        MOV    A, 31H
        CJNE   A, 33H, CHBYTE
        AJMP   ADJ_OVER
CHBYTE:
        JC     AT_FAST
        MOV    A, 30H
        CJNE   A, 78H, AT_SLOW1
        MOV    A, 31H
        CJNE   A, 57H, AT_SLOW1
        AJMP   ADJ_OVER
AT_SLOW1:
        JC     INC_SPD_OFF
        SJMP   INC_SPDB
OLD_CMPSPDX:
        AJMP   OLD_CMPSPD
AT_FAST:
        MOV    A, 30H
        CJNE   A, 78H, AT_FAST1
        MOV    A, 31H
        CJNE   A, 57H, AT_FAST1
        AJMP   ADJ_OVER
AT_FAST1:
        JC     LKK_JMP
        JNB    04H, NOC_N1
        MOV    55H, #04H
        MOV    56H, #0E2H
        SJMP   NOC_SPDA
NOC_N1:
        JB     0FH, NOC_SPDA
        MOV    A, 57H
        ADD    A, 33H
        MOV    56H, A
        MOV    A, 78H
        ADDC   A, 32H
        CLR    CY
        RRC    A
        MOV    55H, A
        MOV    A, 56H
        RRC    A
        MOV    56H, A
        SETB   0FH
NOC_SPDA:
        MOV    A, 30H
        CJNE   A, 55H, ON_CL1
        MOV    A, 31H
        CJNE   A, 56H, X96
X96:
        JNC    INC_A
LKK_JMP:
        CLR    0FH
NOC_SPEEDX:
        AJMP   NOC_SPEED
ON_CL1:
        JNC    INC_A
        CLR    0FH
        AJMP   NEED_BRAKE
INC_SPD_OFF:
        JB     0FH, INC_SPDA
        MOV    A, 57H
        ADD    A, 33H
        MOV    56H, A
        MOV    A, 78H
        ADDC   A, 32H
        CLR    CY
        RRC    A
        MOV    55H, A
        MOV    A, 56H
        RRC    A
        MOV    56H, A
        SETB   0FH
INC_SPDA:
        MOV    A, 30H
        CJNE   A, 55H, OFF_CL1
        MOV    A, 31H
        CJNE   A, 56H, X97
X97:
        JC     NOC_SPEEDX
INC_SPDB:
        CLR    0FH
        AJMP   INC_SPEED
OFF_CL1:
        JC     NOC_SPEEDX
        CLR    0FH
INC_A:
        AJMP   INC_SPEED
OLD_CMPSPD:
        CJNE   A, 32H, CHBYTEO
        SJMP   CMP_LOBYTEO
CHBYTEO:
        JNC    INC_SPEED
        SJMP   NEED_BRAKE
CMP_LOBYTEO:
        MOV    A, 33H
        ANL    A, #0FCH
        MOV    33H, A
        MOV    A, 31H
        ANL    A, #0FCH
        CJNE   A, 33H, L1121H
        SJMP   NOC_SPEED
L1121H:
        JNC    INC_SPEED
NEED_BRAKE:
        MOV    A, 32H
        ANL    A, #0FH
        MOV    R4, A
        MOV    A, 33H
        ANL    A, #0F0H
        ORL    A, R4
        SWAP   A
        LCALL  READ_BRAKE_TAB
        MOV    R3, A
        MOV    A, 30H
        CJNE   A, #10H, X98
X98:
        JC     GA01
        CLR    A
        SJMP   XJMP_BRK
GA01:
        ANL    A, #0FH
        MOV    R4, A
        MOV    A, 31H
        ANL    A, #0F0H
        ORL    A, R4
        SWAP   A
        LCALL  READ_BRAKE_TAB
XJMP_BRK:
        CLR    C
        SUBB   A, R3
        JC     NOC_SPEED
        CJNE   A, #03H, X99
X99:
        JC     NOC_SPEED
        SJMP   DEC_SPEED
INC_SPEED:
        MOV    39H, #00H
        CLR    13H
        CLR    16H
        SETB   P1.5
        CLR    P1.4
        SJMP   ADJ_OVER
NOC_SPEED:
        MOV    39H, #00H
        SETB   P1.4
        SETB   P1.5
        CLR    16H
        SJMP   ADJ_OVER
DEC_SPEED:
        JB     16H, DEC_SPEED_DUTY
        MOV    A, 3BH
        JZ     BRAKE_GON
        MOV    A, 3AH
        JZ     BRAKE_GON
        MOV    A, 39H
        CJNE   A, #01H, BRAKE_GON
        SETB   16H
        CLR    0EH
        MOV    39H, #00H
        SJMP   DEC_SPEED_DUTY
BRAKE_GON:
        SETB   13H
        SETB   P1.4
        CLR    P1.5
        INC    39H
        SJMP   ADJ_OVER
DEC_SPEED_DUTY:
        JB     0EH, BK_DON
BK_DOFF:
        MOV    A, 39H
        CJNE   A, 3BH, BK_DUTYOFF
        MOV    39H, #00H
        SETB   0EH
        SJMP   BK_DON
BK_DUTYOFF:
        SETB   P1.5
        INC    39H
        SJMP   ADJ_OVER
BK_DON:
        MOV    A, 39H
        CJNE   A, 3AH, BK_DUTYON
        MOV    39H, #00H
        CLR    0EH
        SJMP   BK_DOFF
BK_DUTYON:
        CLR    P1.5
        INC    39H
        SJMP   ADJ_OVER
ADJ_OVER:
        POP    DPL
        POP    DPH
TIMER_BACK:
        POP    PSW
        POP    ACC
        RETI
; EXTERN INTERRUPT 1
EXT_INT1:
        JNB    0DH, PS_CO
        JNB    P1.2, PS_CO
        JB     P1.1, PS_CO
        CLR    0DH
PS_CO:
        INC    50H
        RETI

        ORG    2000H
MODIFY:
        SETB   4DH
        JNB    5AH, MP2
        SJMP   MO_P1
MP2:
        JNB    5BH, MP3
        LJMP   MO_P2
MP3:
        JNB    5FH, MP4
        LJMP   MO_P3
MP4:
        LJMP   MO_P4
MO_P1:
        MOV    A, 59H
        JNB    58H, MO_05
        CJNE   A, #04H, MO_02
        MOV    A, 4BH
        ANL    A, #0FH
        CJNE   A, #09H, MO_01NE
        MOV    A, 4BH
        ANL    A, #0F0H
        MOV    4BH, A
MO_01A:
        LCALL  SHOW_AB
        RET
MO_01NE:
        INC    4BH
        SJMP   MO_01A
MO_02:
        CJNE   A, #01H, MO_03
        MOV    A, 4BH
        ANL    A, #0F0H
        CJNE   A, #90H, MO_02NE

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?