我有个,不过你需要改一下。就只有时间调整的,没有报时提醒,调时是用LED指示,有小时调整和分钟ASD EQU 22H ;分显示BSD EQU 23H ;十分显示CSD EQU 24H ;小时显示 DSD EQU 25H ;十小时显示 ID EQU 28H ;标志位 ORG 0 AJMP START ORG 0BH AJMP TIME0 ;定时器0标志位 ORG 30HSTART: CLR ;秒闪烁 SETB SETB MOV ID,#0 MOV 26H,#0 MOV 27H,#0 SETB EA ;开总中断 SETB ET0 ;开TR0中断 MOV TMOD,#01H ;T0工作模式1 MOV SP,#50H ;移开堆栈 MOV 20H,#0 ;百毫秒清0 MOV 21H,#0 ;毫秒清0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0DISP: JNB ACALL STLP JMP DISPDIS1: ACALL DELAY10 JNB ,$ CLR TR0 CLR EADDS: ACALL STLP JB ACALL DELAY10 JB INC ID MOV A,ID CJNE A,#3,REL MOV ID,#0REL: JNB ,$ MOV A,ID CJNE A,#0,IS0 CLR JB ACALL DELAY10 JNB ,$ INC 27H MOV A,27H CJNE A,#24,IUT0 MOV 27H,#0IUT0: AJMP DDSIS0: CJNE A,#1,IS1 SETB CLR JB ACALL DELAY10 JNB ,$ INC 26H MOV A,26H CJNE A,#60,IUT1 MOV 26H,#0IUT1: AJMP DDSIS1: CJNE A,#2,IS2 SETB CLR SETB EA SETB TR0 AJMP DISPIS2: AJMP DDSSTLP: MOV A,26H MOV B,#10 DIV AB MOV BSD,A MOV ASD,B MOV A,27H MOV B,#10 DIV AB MOV DSD,A MOV CSD,B MOV DPTR,#ABCD MOV A,ASD MOVC A,@A+DPTR MOV P0,A CLR ACALL DELAY1 SETB MOV A,BSD MOVC A,@A+DPTR MOV P0,A CLR ACALL DELAY1 SETB MOV A,CSD MOVC A,@A+DPTR MOV P0,A CLR ACALL DELAY1 SETB MOV A,DSD MOVC A,@A+DPTR MOV P0,A CLR ACALL DELAY1 SETB RETTIME0: PUSH PSW PUSH ACC INC 21H MOV A,21H CJNE A,#20,AGAIN CPL INC 20H MOV A,20H CJNE A,#60,NEXT INC 26H MOV A,26H CJNE A,#60,NEX1 INC 27H MOV A,27H CJNE A,#23,NEX2 MOV 27H,#0NEX2: MOV 26H,#0 NEX1: MOV 20H,#0NEXT: MOV 21H,#0AGAIN: MOV TH0,#3CH MOV TL0,#0B0H POP ACC POP PSW RETIDELAY1: MOV R7,#10D1: MOV R6,#200 DJNZ R6,$ DJNZ R7,D1 RETDELAY10: MOV R7,#20D2: MOV R6,#250 DJNZ R6,$ DJNZ R7,D2 RETABCD: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END