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 + -
显示快捷键?