MOV R2,#8 WRTC2:CLR SCLK RRC A
MOV P2.1,C NOP
SETB SCLK DJNZ R2,WRTC2 INC R0
DJNZ R3,WRTC1 CLR CE RET
****************************************************** 闹钟显示
****************************************************** DISPLAY1:MOV R3,#01H MOV A,B
CJNE A,#0AH,DISPLAYD MOV R0,#40H MOV A,R3 SWAP A LOOP1:CLR C OR A,@R0 MOV P1,A INC R0 MOV A,R3 SWAP A RLC A
JNC LOOP1 DISPLAYD:RET
******************************************************* 时钟显示
******************************************************** DISPLAY2:MOV R3,#01H MOV A,B
CJNE A,#11,DISPLAYT MOV R0,#30H MOV A,R3 SWAP A LOOP2:CLR C OR A,@R0 MOV P1,A INC R0 MOV A,R3 SWAP A RLC A
JNC LOOP2 DISPLAYT:RET
*************************************************** 等待程序
*************************************************** HOLD:
MOV A,P1 CJNE A,7FH,$ RET
*************************************************** 音乐程序
*************************************************** SOUND:
MOV TMOD,#00000001B MOV IE,10000011B JB P3.2,$ CALL DELAY1 JNB P3.2, $
32
MOV 31H,#00H START0:
MOV 30H,#LOW SONG NEXT:MOV A,30H
MOV DPTR,#TABLE MOVC A,@A+DPTR MOV R2,A JZ END0 ANL A,#0FH MOV R5,A MOV A,R2 SWAP A
ANL A,#0FH JNZ SING CLR TR0 JMP D1 SING: DEC A
MOV 22H,A RL A
MOV DPTR,#TABLE MOVC A,@A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A
MOVC A,@A+DPTR MOV TL0,A MOV 20H,A SETB TR0 D1: CALL DELAY INC 30H JMP NEXT END0:
MOV A,31H CLR TR0
XRL A,#00H JNZ END1 JB P3.2,$ CALL DELAY1 JNB P3.2,$ INC 31H
MOV 30H,#LOW SONG1 JMP NEXT TIME0:
PUSH ACC PUSH PSW SETB RS0 CLR RS1 MOV TL0,20H MOV TH0,21H CPL P1.7 POP PSW POP ACC RETI XINT0:
PUSH ACC PUSH PSW JMP ST POP PSW POP ACC RETI
33
DELAY: MOV R7,#02 D2: MOV R4,#125 D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY RET
DELAY1:MOV R4,#20 D4: MOV R3,#248 DJNZ R3,$ DJNZ R4,D4 RET
ORG 0300H TABLE:
DW 64260,64400,64524,64580 DW 64684,64777,64820,64898 DW 64968,65030,65058,65110 DW 65157,65178,65217 SONG1: ; 生日快乐 ;1
DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H ;2
DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H DB 00H
34