📄 danpianji.txt
字号:
程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP SECTION1
ORG 000BH
LJMP TIME
ORG 0013H
LJMP SECTION2
;************ MAIN PROGRAM ***************
ORG 0100H
MAIN: MOV SP,#50H
MOV TCON,#05H ;定义中断方式
MOV 20H,#0FH ;BIN SECOND
MOV 21H,#03H ;BIN MINUTE
MOV 22H,#0AH ;BIN HOUR
MOV 23H,#00H
MOV 24H,#0FH ;BCD SECOND
MOV 25H,#03H ;
MOV 26H,#0AH ;BCD MINUTE
MOV 27H,#0FFH ;
MOV 30H,#00H ;BCD HOUR
MOV 31H,#01H
MOV TMOD,#01H ;16位计数器
MOV TH0,#03CH
MOV TL0,#0B0H
MOV IE,#10000111B
SETB TR0 ;T0启动计数
MOV R2,#0AH
MOV P2,#0FFH
ML1: ACALL DISP
MOV A,23H
CJNE A,#00H,X1
SETB P1.2
CLR P1.3
CLR P1.4
CLR P1.5
CLR P1.6
SETB P1.7
X1: CJNE A,#01H,X2
CLR P1.2
SETB P1.3
CLR P1.4
CLR P1.5
SETB P1.6
CLR P1.7
X2: CJNE A,#02H,X3
CLR P1.2
CLR P1.3
SETB P1.4
SETB P1.5
CLR P1.6
CLR P1.7
X3: CJNE A,#01H,X4
CLR P1.2
SETB P1.3
CLR P1.4
CLR P1.5
SETB P1.6
CLR P1.7
X4: JNB 2FH.0,ML2
SETB P1.2
CLR P1.3
CLR P1.4
SETB P1.5
CLR P1.6
CLR P1.7
AJMP X4
ML2: JB TR0,ML1
ACALL DISP
MOV A,27H
CJNE A,#00H,X11
SETB P1.2
CLR P1.3
CLR P1.4
CLR P1.5
CLR P1.6
SETB P1.7
X11: CJNE A,#01H,X21
CLR P1.2
SETB P1.3
CLR P1.4
CLR P1.5
SETB P1.6
CLR P1.7
X21: CJNE A,#02H,X31
CLR P1.2
CLR P1.3
SETB P1.4
SETB P1.5
CLR P1.6
CLR P1.7
X31:
JB P1.0,M1
M1: MOV C,P1.0 ;按键消振
JC M2
M2: LCALL DELAY
MOV C,P1.0
JC ML10
STOP1: MOV C,P1.0
JNC STOP1
LCALL DELAY
MOV C,P1.0
JNC STOP1
MOV R0,#20H
MOV R1,#24H
MOV A,27H ;加一
MOV 23H,A
CLR C
ADD A,R1
MOV R1,A
CLR C
MOV A,23H
ADD A,R0
MOV R0,A
INC @R1
MOV A,@R1
CJNE A,#100,H1
MOV A, #00H
MOV @R1,A
H1: MOV @R0,A
MOV B,#0AH
DIV AB
MOV 31H,A
MOV 30H,B
ACALL DISP
ML10: JB P1.1,M3
M3: MOV C,P1.1 ;按键消振
JC M4
M4: LCALL DELAY
MOV C,P1.1
JC ML2
STOP2: MOV C,P1.1
JNC STOP2
LCALL DELAY
MOV C,P1.1
JNC STOP2
MOV R0,#20H
MOV R1,#24H
MOV A,27H ; 减一
MOV 23H,A
CLR C
ADD A,R1
MOV R1,A
CLR C
ADD A,R0
MOV R0,A
DEC @R1
MOV A,@R1
CJNE A,#0FFH,H2
MOV A, #99
MOV @R1,A
H2: MOV @R0,A
MOV B,#0AH
DIV AB
MOV 31H,A
MOV 30H,B
ACALL DISP
LJMP ML1
DELAY:MOV R4,#14H
DL00: MOV R5,#0FFH
DL11: DJNZ R5,DL11
DJNZ R4,DL00
RET
;*********** TIME PROCESS **************
TIME: PUSH ACC
PUSH PSW
MOV TH0,#03CH
MOV TL0,#0B0H
DJNZ R2,RET0
MOV R2,#0AH
MOV A,23H
CJNE A,#00H,L1
MOV A,20H
CLR C
DEC A
CJNE A,#0FFH,GO11
MOV A,23H
CLR C
INC A
MOV 23H,A
MOV A,24H
MOV 20H,A
LJMP L1
GO11: MOV 20H,A
MOV B,#0AH
DIV AB
MOV 31H,A
MOV 30H,B
LJMP RET0
L1: MOV A,23H
CJNE A,#01H,L2
MOV A,21H
CLR C
DEC A
CJNE A,#0FFH,GO12
MOV A,23H
CLR C
INC A
MOV 23H,A
MOV A,25H
MOV 21H,A
LJMP L2
GO12: MOV 21H,A
MOV B,#0AH
DIV AB
MOV 31H,A
MOV 30H,B
LJMP RET0
L2: MOV A,23H
CJNE A,#02H,L4
MOV A,22H
CLR C
DEC A
CJNE A,#0FFH,GO13
MOV A,23H
CLR C
INC A
MOV 23H,A
MOV A,26H
MOV 22H,A
LJMP L4
GO13: MOV 22H,A
MOV B,#0AH
DIV AB
MOV 31H,A
MOV 30H,B
RET0: POP PSW
POP ACC
RETI
L4: MOV A,23H
CJNE A,#03H,RET0
MOV A,21H
CLR C
DEC A
CJNE A,#0FFH,GO14
MOV A,#00H
MOV 23H,A
MOV A,25H
MOV 21H,A
LJMP RET0
GO14: MOV 21H,A
MOV B,#0AH
DIV AB
MOV 31H,A
MOV 30H,B
LJMP RET0
;;;////*******--DISPLAY PART---+++++
DISP: MOV R0,#30H
MOV R3,#0FEH
MOV A,R3
PLAY: MOV P2,A
MOV A,@R0
MOV DPTR,#DSEG1
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1
MOV P2,#0FFH
MOV A,R3
RL A
JNB ACC.2,LD1
INC R0
MOV R3,A
LJMP PLAY
LD1: RET
;;;;;;;;;;;;;;;DELAY
DL1: MOV R7,#05H
DL: MOV R6,#0FFH
DL6: DJNZ R6,$
DJNZ R7,DL
RET
DSEG1:DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
;///////***//////*******/////////////
SECTION1:PUSH ACC
PUSH PSW
MOV C,P3.2 ;按键消振
JC PPP
ACALL DELAY
MOV C,P3.2
JC PPP
STOP3: MOV C,P3.2
JNC STOP3
ACALL DELAY
MOV C,P3.2
JNC STOP3
CLR TR0
MOV A,27H
CJNE A,#02H,PPP
MOV A,#0FFH
MOV 27H,A
SETB TR0
AJMP PP1
PPP: INC 27H
PP1: POP PSW
POP ACC
RETI
SECTION2: PUSH ACC
PUSH PSW
MOV C,P3.3 ;按键消振
JC PPP
ACALL DELAY
MOV C,P3.3
JC PPP
STOP0: MOV C,P3.3
JNC STOP0
ACALL DELAY
MOV C,P3.3
JNC STOP0
CPL 2FH.0
POP PSW
POP ACC
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -