ORG 0003H ;中斷0入口地址
ACALL DEL
AJMP INTA ;跳轉到中斷0服務程序
ORG 0013H ;中斷1入口地址
ACALL DEL
AJMP INTB ;跳轉到中斷1服務程序
STRAT:SETB EA
SETB EX0
SETB EX1
SETB IT0
SETB IT1
;*****************************************
A8:MOV R6,#0 ;24進制計數器
MOV R5,#0
MOV 25H,#3FH ;時十位
A7:MOV R4,#0
MOV 24H,#3FH ;時個位
A6:MOV R3,#0
MOV 23H,#3FH ;分十位
A5:MOV R2,#0
MOV 22H,#3FH ;分個位
A4:MOV R1 ,#0
;MOV 21H,#3FH; ;秒十位
SETB 21H.0
SETB 21H.1
SETB 21H.2
SETB 21H.3
SETB 21H.4
SETB 21H.5
CLR 21H.6
CLR 21H.7
A3:MOV R0,#0
MOV 20H,#3FH ;秒個位
;**********************************************
A2:MOV A,R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 20H,A
MOV A,R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 21H,A
MOV A,R2
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 22H,A
MOV A,R3
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 23H,A
MOV A,R4
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 24H,A
MOV A,R5
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV 25H,A
;**********************************
MOV 31H,#21
B1:MOV 30H ,#0F0H
A1:MOV P0,20H ;點亮秒個位數碼管
CLR P1.3
ACALL DEL
SETB P1.3
MOV P0,21H ;點亮秒十位數碼管
CLR P1.2
ACALL DEL
SETB P1.2
MOV P0,22H ;點亮分個位數碼管
CLR P1.1
ACALL DEL
SETB P1.1
MOV P0,23H ;點亮分十位數碼管
CLR P1.0
ACALL DEL
SETB P1.0
MOV P0,24H ;點亮時個位數碼管
CLR P2.7
ACALL DEL
SETB P2.7
MOV P0,25H ;點亮時十位數碼管
CLR P2.6
ACALL DEL
SETB P2.6
DJNZ 30H,A1
DJNZ 31H,B1
;************************************
INC R0
CJNE R0,#10,A2
INC R1
CJNE R1,#6,A3
INC R2
;****************************
SETB P1.4 ;1分鐘後關定時
CJNE R2,#0,A11;分個位定時
CJNE R3,#0,A11;分十位定時
CJNE R6,#19,A11;時位定時
CLR P1.4 ;開定時
;****************************
A11:CJNE R2,#10,A44
INC R3
A12:CJNE R3,#6,A55
INC R6
CJNE R6,#24,A9
AJMP A8
A9:INC R4
CJNE R4,#10,A66
INC R5
CJNE R5,#3,A77
AJMP A8
A44:AJMP A4
A55:AJMP A5
A66:AJMP A6
A77:AJMP A7
;**************************************
DEL:MOV R7,#0AH ;延時子程序
AA:DJNZ R7,AA
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
INTA: INC R2 ;中斷0服務程序
CJNE R2, #10,B2
MOV R2,#0
INC R3
CJNE R3,#6,B2
MOV R3,#0
B2:RETI
INTB:INC R6 ;中斷1服務程序
CJNE R6,#24,B4
MOV R6,#0
MOV R4,#0
MOV R5,#0
AJMP B3
B4:INC R4
CJNE R4, #10,B3
MOV R4,#0
INC R5
CJNE R5,#3,B3
MOV R5,#0
B3:RETI
END