ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT
ORG 30H
MAIN:
MOV SP,#60H
MOV R4,#20
MOV TMOD,#01H
MOV TH0,#03CH;12M晶振时定时初值
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
MOV R0,#20
DISP:
MOV A,26H
MOV B,#10
DIV AB
MOV 20H,B ;余数(百分秒位数)
MOV 21H,A ;商(十分秒位数)
MOV A,27H
MOV B,#10
DIV AB
MOV 22H,B ;余数(秒个位数)
MOV 23H,A ;商(秒十位数)
MOV A,28H
MOV B,#10
DIV AB
MOV 24H,B ;余数(分个位数)
MOV 25H,A ;商(分十位数)
MOV A,20H ;秒
ACALL SEG7
MOV P1,A
CLR P2.0
ACALL DLY
SETB P2.0
MOV A,21H ;十秒
ACALL SEG7
MOV P1,A
CLR P2.1
ACALL DLY
SETB P2.1
MOV P1,#40H ;"-"
CLR P2.2
ACALL DLY
SETB P2.2
MOV A,22H ;分
ACALL SEG7
MOV P1,A
CLR P2.3
ACALL DLY
SETB P2.3
MOV A,23H ;十分
ACALL SEG7
MOV P1,A
CLR P2.4
ACALL DLY
SETB P2.4
MOV P1,#40H ;"-"
CLR P2.5
ACALL DLY
SETB P2.5
MOV A,24H ;时
ACALL SEG7
MOV P1,A
CLR P2.6
ACALL DLY
SETB P2.6
MOV A,25H ;十时
ACALL SEG7
MOV P1,A
CLR P2.7
ACALL DLY
SETB P2.7
AJMP DISP
T0INT:
MOV TH0,#03CH
MOV TL0,#0B0H
DJNZ R0,T0INTR
MOV R0,#20
INC 26H ;
MOV A,26H
CJNE A,#60,T0INTR ;未1S,跳出中断。
MOV 26H,#0
INC 27H ;秒+1
CPL 7FH
MOV A,27H
CJNE A,#60,T0INTR
MOV 27H,#0
INC 28H
MOV A,28H
CJNE A,#60,T0INTR
MOV 28H,#0
T0INTR:
RETI
DLY:
MOV R7,#2
D1:
MOV R6,#40
DJNZ R6,$
DJNZ R7,D1
RET
SEG7:
INC A
MOVC A,@A+PC
RET
DB 03FH ;0 共阴
DB 006H ;1
DB 05BH ;2
DB 04FH ;3
DB 066H ;4
DB 06DH ;5
DB 07DH ;6
DB 007H ;7
DB 07FH ;8
DB 06FH ;9
END