SEC EQU 29H
MIN EQU 30H
TCNC EQU 34H
ORG 0000H
SJMP START
ORG 000BH
LJMP INT_T0
START:MOV DPTR,#TAB
MOV SEC,#0
MOV MIN,#0
MOV TCNC,#0
MOV TMOD,#01H
MOV TH0,#(65536-50000)/256
MOV TH0,#(65536-50000)MOD 256
MOV IE,#82H
SETB TR0
LCALL DISPLAY
A1:INC SEC
MOV A,SEC
CJNE A,#60,A1
MOV SEC,#0
LCALL DISPLAY
LJMP K1
K1:INC MIN
MOV A,MIN
CJNE A,#60,K1
MOV MIN,#0
LCALL DISPLAY
LJMP A1
INT_T0:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
INC TCNC
MOV A,TCNC
CJNE A,#20,RETUNE
INC SEC
MOV TCNC,#0
MOV A,SEC
CJNE A,#60,RETUNE
INC MIN
MOV SEC,#0
MOV A,#MIN
CJNE A,#60,RETUNE
MOV MIN,#0
MOV SEC,#0
MOV TCNC,#0
RETUNE:RETI
DISPLAY:MOV A,ESC
MOV B,#10
DIV AB
CLR P3.4
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.4
MOV A,B
CLR P3.5
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.6
MOV A,MIN
MOV B,#10
DIV AB
CLR P3.2
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.2
MOV A,B
CLR P3.3
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
SETB P3.3
RET
DELAY:MOV R6,#10
D1:MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,0F8H,90H,90H
END
|