?? jg-13.asm
字號:
ORG 00H
LJMP MAIN
ORG 03H
LJMP DCK
ORG 0BH
LJMP MAIN
ORG 13H
LJMP MAIN
ORG 1BH
LJMP MAIN
ORG 23H
LJMP MAIN
ORG 30H
MAIN: NOP
CLR P2.7
NOP
NOP
NOP
NOP
NOP
SETB P2.7
MOV R0,#00H
MOV A,#00H
MOV R1,#80H
LOP1: MOV @R0,A
INC R0
DJNZ R1,LOP1 ;INITIALIZE
;***************************************
SETB 88H
SETB EA
SETB EX0 ;
SETB P2.0
SETB P2.1
MOV P1,#0FFH
MOV SP,#30H
SETB P2.1
MOV R6,#2
LCALL DLY0
CLR P2.2
LCALL D200
LCALL DLY
LCALL DLY
CLR 3BH
CLR 35H
CLR 00H
SETB P2.3
SETB P2.4
SETB P2.5
CLR 31H
MOV 2CH,#0
MOV 2DH,#0
;*************************
PCK: SETB 34H
CLR 33H
CLR 35H
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
LCALL DIN
WCK: MOV A,23H
ANL A,#7FH
CJNE A,#10H,PSTR
CLR P2.7
NOP
CLR 40H ;SETB P2.3
NOP
SETB P2.4
NOP
NOP
SETB P2.5
NOP
NOP
SETB P2.7
LJMP PCK
PSTR: MOV A,23H
JNB ACC.3,T_RDY
LJMP PCK
T_RDY: JB ACC.5,WT
CLR 31H
;SETB P2.4
LJMP PTOP
WT: SETB 35H
CLR P2.4
SETB 31H
PTOP: JNB ACC.6,TREE
SETB 35H
CLR P2.5
TREE: JNB ACC.0,PFLL
SETB P2.2
LCALL D40M
CLR P2.0
CLR P2.1
MOV R6,#100
LCALL DLY0
SETB P2.0
SLOOP: JNB P1.0,LPER
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
LJMP SLOOP
LPER: SETB P2.1
LCALL D40M
LCALL D40M
CLR P2.0
CLR P2.2
MOV R6,#100
LCALL DLY0
SETB P2.0
PFLL: JNB ACC.1,SDK
SETB P2.2
LCALL D40M
CLR P2.0
CLR P2.1
MOV R6,#200
LCALL DLY0
SETB P2.0
SETB 36H
SOP: JB P1.3,PIT
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
JB 36H,SOP
PIT: SETB P2.1
LCALL D40M
LCALL D40M
LCALL D40M
MOV R6,#40
LCALL DLY0
CLR P2.0
CLR P2.2
MOV R6,#100
LCALL DLY0
SETB P2.0
SDK: JNB 35H,OKT
JB 31H,OKT
LJMP PCK
OKT: MOV A,23H
JB ACC.2,RUN_P ;RUN
LJMP PCK
RUN_P: SETB 33H
CLR 34H
SETB P2.2
SETB P2.3
LCALL D80M
CLR P2.0
CLR P2.1
MOV R6,#250
LCALL DLY0
SETB P2.0
SETB P2.4
RPCK: NOP
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
JNB 3BH,PTETX
SETB 39H
CLR 31H
MOV 2CH,#0
MOV 2DH,#0
LCALL PP01
LJMP PCK
PTETX: LCALL DIN
MOV A,23H
JNB ACC.0,R01
CLR 31H
MOV 2CH,#0
MOV 2DH,#0
LCALL P01
LJMP PCK
TNXT: JNB ACC.5,XX4
JNB 31H,JT_1
INC 2CH
MOV A,2CH
CJNE A,#0FFH,XX1
INC 2DH
MOV A,2DH
MOV 2CH,#0
CJNE A,#03H,XX1
MOV 2DH,#0
LJMP JT_1
XX4: CLR 31H
MOV 2CH,#0
MOV 2DH,#0
XX1: LJMP RPCK
JT_1: SETB 31H
CLR P2.4
LCALL P01
LJMP PCK ;;STOP_PROGRAM
R01: ;SETB P2.4
JNB ACC.1,S01
CLR 31H
MOV 2CH,#0
MOV 2DH,#0
LCALL P01
LJMP PCK
S01: JNB ACC.6,P02
CLR 31H
MOV 2CH,#0
MOV 2DH,#0
CLR P2.5
LCALL P01
GN01: LCALL DIN
CLR P2.7
NOP
NOP
NOP
SETB P2.7
MOV A,23H
ANL A,#7FH
JNB ACC.3,GN01
SETB P2.5
LJMP PCK
P02: ;SETB P2.5
JNB ACC.3,XX3
CLR 31H
MOV 2CH,#0
MOV 2DH,#0
LCALL R02
LJMP PCK
XX3: LJMP TNXT
;;*********************** PROGRAM END
D5MS:
MOV R6,#10
LCALL DLY0
RET
D40M:
MOV R6,#80
LCALL DLY0
RET
D200:
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
RET
D400:
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
RET
D500: MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
MOV R6,#200
LCALL DLY0
RET
R02: PUSH PSW ;STOP IMMEDIATELY
PUSH ACC
SETB P2.1
LCALL D40M
LCALL D40M
CLR 33H
SETB 34H
CLR P2.0
CLR P2.2
MOV R6,#100
LCALL DLY0
MOV R6,#100
LCALL DLY0
SETB P2.0
POP ACC
POP PSW
RET
DIN: PUSH PSW ;FROM P1
PUSH ACC
DCN: MOV A,#0FFH
MOV P1,A
NOP
MOV A,P1
JB 00H,DNT
MOV 2FH,A
CPL 00H
MOV R6,#2
LCALL DLY0
LJMP DCN
DNT: CPL 00H
CJNE A,2FH,D0A
MOV 23H,A
LJMP DKO
D0A: MOV 2FH,A
CPL 00H
MOV R6,#02H
LCALL DLY0
LJMP DCN
DKO: POP ACC
POP PSW
RET
P01: PUSH PSW ;WIND_STOP
PUSH ACC
SETB RS1
SETB RS0
SETB 38H
MOV R2,#0BH
LM01: MOV R5,#71H
LP02: MOV R4,#0A6H
LP01: JB 38H,LP03
CLR 35H
LJMP LEND
LP03: DJNZ R4,LP01
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
DJNZ R5,LP02
DJNZ R2,LM01
LEND: LCALL R02
POP ACC
POP PSW
RET
PP01: PUSH PSW ;FILL_STOP
PUSH ACC
SETB RS1
SETB RS0 ;;1 block
CLR 3BH
MOV R3,#0BH
LT01: MOV R5,#71H
LB01: MOV R4,#0A6H
LA01: JB 39H,LC01
LJMP LAND
LC01: DJNZ R4,LA01
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
DJNZ R5,LB01
DJNZ R3,LT01
LAND: CLR 35H
CLR P2.3
SETB P2.1
LCALL D40M
LCALL D40M
MOV R6,#30
LCALL DLY0
CLR 33H
SETB 34H
CLR P2.0
CLR P2.2
MOV R6,#100
LCALL DLY0
MOV R6,#100
LCALL DLY0
SETB P2.0
POP ACC
POP PSW
RET
D80M: LCALL D40M
LCALL D40M
RET
;;********************************
DCK: PUSH PSW
PUSH ACC
PUSH 06H
PUSH 07H
MOV A,P0
ANL A,#00000111B
NEXT: MOV 2EH,A
NOP
NOP
MOV A,P0
ANL A,#00000111B
CJNE A,2EH,NEXT
MOV 2EH,A
CLR P2.6
CJNE A,#02H,DF100
JB 34H,EXIT
JNB 33H,EXIT
CLR 38H
LJMP EXIT
DF100: CJNE A,#04H,DF101
JNB 34H,PTNT
CLR 36H
LJMP EXIT
PTNT: JNB 33H,EXIT
LCALL DIN
MOV A,23H
JB ACC.4,BPIT
SETB 3BH
SETB 39H
CLR P2.3
SETB 40H
LJMP EXIT
BPIT: JB 40H,EXIT
SETB P2.3
CLR 40H
CLR 3BH
LJMP EXIT
DF101: CJNE A,#05H,EXIT
CLR 39H
EXIT: SETB P2.6
POP 07H
POP 06H
POP ACC
POP PSW
RETI
DLY: MOV R6,#100 ;50MS
DLY0: MOV R7,#0F9H ;0.5MS
DLY1: DJNZ R7,DLY1
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
DJNZ R6,DLY0
RET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -