📄 noname1.asm
字号:
MH EQU 30H
ML EQU 31H
SH EQU 32H
SL EQU 33H
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
LJMP TOS
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
CLEAR: MOV SL, #00H
MOV SH, #00H
MOV ML, #00H
MOV MH, #09H
MOV R0, #2FH
CLR P3.5
CLR P3.4
RET
WELCOME: MOV P1, #0FH
RET
START: ACALL CLEAR
AJMP START
MAIN: LCALL KEYWORK
CJNE R0, #30H, NEXT0
LCALL SHOW3
NEXT0: CJNE R0, #31H, NEXT1
LCALL SHOW2
NEXT1: CJNE R0, #32H, NEXT2
LCALL SHOW1
NEXT2: CJNE R0, #32H, MAIN
LCALL SHOW0
AJMP MAIN
KEYWORK: MOV P3, #0FFH
LCALL DELAY3
JNB P3.0, KEY0
LCALL DELAY3
JNB P3.1, KEY1
RET
KEY0: INC R0
CJNE R0, #34H, OUT
AJMP RUN
OUT: RET
KEY1: INC @R0
RET
RUN: AJMP TIMER
SETB P1.0
TIMER: MOV SP, #6FH
MOV TMOD, #01H
MOV TH0, #3CH
MOV TL0, #0C2H
MOV IE, #82H
MOV R2, #00H
SETB TR0
LOOP0: MOV R3, SL
CJNE R3, #00H, OUT0
MOV R3, SH
CJNE R3, #00H, OUT1
MOV R3, ML
CJNE R3, #00H, OUT2
MOV R3, MH
CJNE R3, #00H, OUT3
LCALL BEEP
OUT0: SJMP LOOP0
OUT1: MOV SL, #0AH
DEC SH
LOOP1: MOV R3, SL
CJNE R3, #0AH, DISPLAY
SJMP LOOP1
DISPLAY: SJMP LOOP0
OUT2: MOV SH, #06H
DEC ML
SJMP LOOP0
OUT3: MOV ML, #0AH
DEC MH
SJMP LOOP0
TOS: PUSH PSW
PUSH ACC
INC R2
CJNE R2, #06H, NEX
SETB P1.4
NEX: CJNE R2, #14H, NEXT
MOV R2, #00H
INC R4
PUSH PSW
PUSH ACC
POP ACC
POP PSW
DEC SL
LCALL SHOW0
NEXT: MOV TH0, #3CH
MOV TL0, #0C2H
POP ACC
POP PSW
RETI
SHOW0: MOV A, SL
ORL A, #0E0H
MOV P1, A
RET
SHOW1: MOV A, SH
ORL A, #0D0H
MOV P1, A
RET
SHOW2: SETB P1.5
MOV A, ML
ORL A, #0B0H
MOV P1, A
RET
SHOW3: SETB P1.6
MOV A, MH
ORL A, #70H
MOV P1, A
RET
BEEP: SETB P3.7
CLR TR0
RET
DELAY0: NOP
NOP
RET
DELAY1: ACALL DELAY0
DJNZ R1, DELAY1
MOV R1, #0FFH
RET
DELAY2: ACALL DELAY1
DJNZ R4, DELAY2
RET
DELAY3: MOV R1, #0FFH
MOV R4, #0FFH
ACALL DELAY2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -