MOV P2,#0EFH
JB P2.3,KK1 //用作调定时时间 ;K13 秒个位增一 ACALL DELAY1 ACALL TK1
KK1:JB P2.2,KK2 ;K14 秒十增一 ACALL DELAY1 ACALL TK2
KK2:JB P2.1,KK3 ;K15 分个位增一 ACALL DELAY1 ACALL TK3
KK3:JB P2.0,KE1 ;K16 分十位增一 ACALL DELAY1 ACALL TK4
KE1:MOV P2,#0DFH ;P2.5行 JB P2.3,KK4 ;K9 时个位增一 ACALL DELAY1 ACALL TK5
KK4:JB P2.2,KK5 ;K10 时十位增一 ACALL DELAY1 INC 35H MOV R3,35H CJNE R3,#03H,HH0 MOV 35H,#00H LJMP KK5
HH0:CJNE R3,#02H,HH1 LJMP KK5 HH1:CJNE R3,#01H,HH2 LJMP KK5 HH2:MOV 35H,#00H KK5:JB P2.1,KK6
ACALL DELAY1 ;K11 开/关蜂鸣器 CPL P3.2
KK6:JB P2.0,KE2 ;K12 秒表暂停 MOV 42H,#00H
KE2:MOV P2,#0BFH ;P.6行
JB P2.3,KK7 ;K5 时钟暂停/取消暂停 ACALL DELAY1 CPL ET0
KK7:JB P2.2,KK8 ;K6 显示/休眠/流水灯 ACALL DELAY2 INC 40H
MOV R3,40H CJNE R3,#04H,KK8 MOV 40H,#01H KK8:JB P2.1,KK9
// ACALL DELAY3 ;K7 秒表清0 MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV 48H,#00H MOV 49H,#00H
KK9:JB P2.0,KE3 ;K8 秒表开始跑 MOV 42H,#01H
KE3:MOV P2,#7FH ;P2.7行
JB P2.3,KK10 ;K1 秒十位减一 ACALL DELAY1 MOV R3,31H CJNE R3,#00H,JA1 LJMP KK10 JA1:DEC 31H
KK10:JB P2.2,KK11 ;K2 分个位减一 ACALL DELAY1 MOV R3,32H CJNE R3,#00H,JA2 LJMP KK11 JA2: DEC 32H
KK11:JB P2.1,KK12 ;K3 分十位减一 ACALL DELAY1 MOV R3,33H CJNE R3,#00H,JA3 LJMP KK12 JA3:DEC 33H
KK12:JB P2.0,KK13 ;K4 时个位减一 ACALL DELAY1 MOV R3,34H CJNE R3,#00H,JA4 LJMP KK13 JA4:DEC 34H
KK13:RET
//=====流水灯子程序=========================== LED: MOV A,#0feH
MOV 41H,#08H MOV P0,#0FFH LED1: MOV P1,A MOV R3,#100 D0: ACALL DELAY DJNZ R3,D0 MOV R3,41H DJNZ R3,AAA LJMP BB AAA:RL A MOV 41H,R3 ACALL KEY LJMP LED1 BB:
MOV 41H,#07H CC: MOV P1,A MOV R3,#30 D1: ACALL DELAY DJNZ R3,D1 MOV R3,41H DJNZ R3,DD LJMP LED0 DD:RR A MOV 41H,R3 ACALL KEY LJMP CC
LED0:RET
//=====延时子程序============================== DELAY:MOV R1,#250 DEL1:NOP NOP NOP NOP
DJNZ R1,DEL1 RET
//====调用时钟显示作延时======================== DELAY1:MOV R2,#20 DELA3: ACALL MAIN2 DJNZ R2,DELA3 RET
//====调用秒表显示作延时========================
DELAY3:MOV R2,#20 DELA5:ACALL MAIN3 DJNZ R2,DELA5 RET
//====调用延时子程序作延时====================== DELAY2:MOV R2,#100 DELA4:ACALL DELAY DJNZ R2,DELA4 RET
//======共阳数码管段码表================================= TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,87H END