📄 617.asm
字号:
ORG 00H
MOV A,#00H
MOV DPTR,#WENDU
MOVC A,@A+DPTR
MOV 30H,A
MOV A,#01H
MOVC A,@A+DPTR
MOV 31H,A
MOV 32H,#0FFH
MOV R1,#70
START: MOVX @R0,A
WAIT: JNB P2.1,SET0
JB P2.0,ADC
JMP WAIT
ADC: MOVX A,@R0
MOV 33H,A
CLR C
SUBB A,32H
JC TDOWN
TUP: MOV A,33H
CLR C
SUBB A,30H
JNC POFF
JMP LOOP
POFF: SETB P3.0
SETB P2.4
JMP LOOP
TDOWN: MOV A,33H
CLR C
SUBB A,31H
JC PON
JMP LOOP
PON: CLR P3.0
CLR P2.4
JMP LOOP
LOOP: MOV 32H,33H
MOV A,33H
CALL L1
CALL DISP
CLR A
MOV R4,#0FFH
DJNZ R4,$
JMP START
L1: CLR C
MOV 20H,#00H
MOV 21H,#00H
MOV R3,#08H
NEXT: RLC A
MOV R2,A
MOV A,20H
ADDC A,20H
DA A
MOV 20H,A
MOV A,21H
ADDC A,21H
MOV 21H,A
MOV A,R2
DJNZ R3,NEXT
MOV R7,#02
L2: MOV A,20H
ADD A,20H
DA A
MOV 20H,A
MOV A,21H
ADDC A,21H
DA A
MOV 21H,A
DJNZ R7,L2
RET
DISP: MOV A,20H
ANL A,#0F0H
SWAP A
MOV 22H,A
MOV A,21H
ANL A,#0FH
SWAP A
ORL A,22H
MOV 23H,A
MOV P1,A
MOV R7,#0FFH
DJNZ R7,$
RET
WENDU: DB 0E1H
DB 64H
SET0: CALL DELAY
JNB P2.1,$
CALL DELAY
A2: CJNE R1,#0FFH,A1
MOV R1,#70
A1: MOV A,R1
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
MOV 24H,A
MOV R5,#4FH
D4: MOV R7,#0FFH
D2: MOV R6,#0FFH
D1: JNB P2.1,SET1
DJNZ R6,D1
DJNZ R7,D2
DJNZ R5,D4
JMP KONG
SET1: CALL DELAY
JNB P2.1,$
CALL DELAY
DEC R1
JMP A2
KONG: CLR C
MOV A,24H
SUBB A,33H
JNC OFF
SETB P3.0
OFF: CLR P3.0
JMP START
DELAY: MOV R7,#60
D3: MOV R6,#248
DJNZ R6,$
DJNZ R7,D3
RET
TABLE: DB 21H,22H,23H,24H,25H,26H,27H,28H,29H,30H
DB 31H,32H,33H,34H,35H,36H,37H,38H,39H,40H
DB 41H,42H,43H,44H,45H,46H,47H,48H,49H,50H
DB 51H,52H,53H,54H,55H,56H,57H,58H,59H,60H
DB 61H,62H,63H,64H,65H,66H,67H,68H,69H,70H
DB 71H,72H,73H,74H,75H,76H,77H,78H,79H,80H
DB 81H,82H,83H,84H,85H,86H,87H,88H,89H,90H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -