MOV 40H,#01H ;数码管休眠值 /流水灯/秒表开关数 MOV 41H,#08H ;流水灯循环值 MOV 42H,#00H ;秒表暂停 // ACALL T11
//----------------------------------------------- MAIN1: MOV P0,#0FFH MOV P1,#0FFH MOV R0,40H CJNE R0,#01H,ACL1
ACALL MAIN2 ;时钟显示 ACL1:CJNE R0,#02H,ACL2 ACALL MAIN3 ;秒表 ACL2:CJNE R0,#03H,ACL3 ACALL LED ;流水灯 ACL3:ACALL KEY ;按键扫描 // ACALL BAO ;定时报警 LJMP MAIN1
//=======报警子程序============================ BAO:MOV R4,33H CJNE R4,#03H,YY1 CLR P3.2 ACALL KEY LJMP YY2
YY1:CJNE R4,#05H,YY2 SETB P3.2 ACALL KEY YY2:RET
//======时钟扫描子程序======================= MAIN2:
MOV A,30H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.0 ACALL DELAY MOV A,31H MOV DPTR,#TAB MOVC A,@A+ DPTR MOV P0,A
CLR P1.1 SETB P1.0 ACALL DELAY MOV A,32H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.2 SETB P1.1 ACALL DELAY MOV A,33H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.3 SETB P1.2 ACALL DELAY MOV A,34H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.4 SETB P1.3 ACALL DELAY MOV A,35H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.5 SETB P1.4 ACALL DELAY MOV P0,#7FH MOV P1,#0EBH ACALL DELAY MOV P1,#0FFH RET
//========秒表扫描子程序========================= MAIN3:
MOV A,44H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A
CLR P1.0 ACALL DELAY MOV A,45H MOV DPTR,#TAB MOVC A,@A+ DPTR MOV P0,A CLR P1.1 SETB P1.0 ACALL DELAY MOV A,46H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.2 SETB P1.1 ACALL DELAY MOV A,47H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.3 SETB P1.2 ACALL DELAY MOV A,48H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.4 SETB P1.3 ACALL DELAY MOV A,49H MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A CLR P1.5 SETB P1.4 ACALL DELAY MOV P0,#7FH MOV P1,#0EBH ACALL DELAY MOV P1,#0FFH RET
//=======定时器T0中断服务======================== T00:MOV TH0,#0D8H MOV TL0,#0F0H INC R7 CJNE R7,#64H,AA MOV R7,#00H
//-------时钟跑值-------------------------------- TK1:INC 30H ;每秒钟秒个位增一 MOV R6,30H CJNE R6,#0AH,AA MOV 30H,#00H TK2:INC 31H MOV R6,31H CJNE R6,#06H,AA MOV 31H,#00H TK3:INC 32H MOV R6,32H CJNE R6,#0AH,AA MOV 32H,#00H TK4:INC 33H MOV R6,33H CJNE R6,#06H,AA MOV 33H,#00H TK5:INC 34H MOV R5,34H MOV R6,35H CJNE R5,#04H,TK6 CJNE R6,#02H,TK6 MOV 34H,#00H MOV 35H,#00H TK6:CJNE R5,#0AH,AA MOV 34H,#00H INC 35H
//-------秒表跑值---------------------- AA:
MOV R5,42H CJNE R5,#01H,TK7 INC 44H TK7:MOV R5,44H CJNE R5,#0AH,AA1 MOV 44H,#00H INC 45H
MOV R5,45H CJNE R5,#0AH,AA1 MOV 45H,#00H INC 46H MOV R5,46H CJNE R5,#0AH,AA1 MOV 46H,#00H INC 47H MOV R5,47H CJNE R5,#06H,AA1 MOV 47H,#00H INC 48H MOV R5,48H CJNE R5,#0AH,AA1 MOV 48H,#00H INC 49H MOV R5,49H CJNE R5,#06H,AA1 MOV 49H,#00H AA1:RETI
//====定时器T1中断服务子程序==================== //T11:MOV TH1,#0F0H // MOV TL1,#0B0H
// RETI
//******定时时间调整子程序*************************// TBAO:
MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H
MOV R3,50H DJNZ 30H,RET1 RET1: RET
//======键盘扫描子程序========================== KEY:MOV P2,#0F0H MOV R3,P2 CJNE R3,#0F0H,KE0 LJMP KK13
KE0:CJNE R3,#0E0H,KE1 ;P2.4行