ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
LJMP INTT0
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 0023H
RETI
START: LCALL ST
MOV R0, #70H
MOV R7, #0BH
CLEARDISP: MOV @R0, #00H
INC R0
DJNZ R7,CLEARDISP
MOV 20H,#00H
MOV 7AH,#0AH
MOV TMOD,#11H
MOV TL0, #0B0H
MOV TH0, #3CH
MOV TL1, #0B0H
MOV TH1, #3CH
SETB EA
SETB ET0
SETB TR0
MOV R4,#14H
START1: LCALL DISPLAY
JNB P1.0,SETMM1
JNB P1.1,FUNSS
JNB P1.2,FUNPT
SJMP START1
SETMM1: LJMP SETMM
FUNSS:LCALL DS20MS
JB P1.1,START1
WAIT11:JNB P1.1,WAIT11
CPL 03H
MOV 70H,#00H
MOV 71H,#00H
MOV 76H,#00H
MOV 77H,#00H
MOV 78H,#00H
MOV 79H,#00H
AJMP START1
FUNPT:LCALL DS20MS
JB P1.2,START1
WAIT22:JNB P1.2,WAIT21
CLR ET0
CLR TR0
WAIT33:JB P1.2,WAIT31
LCALL DS20MS
JB P1.2,WAIT33
WAIT66:JNB P1.2,WAIT61
MOV R0,#00H
MOV R7,#0AH
CLEARP: MOV @R0,#00H
INC R0
DJNZ R7,CLEARP
WAIT44:JB P1.2,WAIT41
LCALL DS20MS
JB P1.2,WAIT44
WAIT55:JNB P1.2,WAIT51
SETB ET0
SETB TR0
AJMP START1
WAIT21:LCALL DISPLAY
AJMP WAIT22
WAIT31:LCALL DISPLAY
AJMP WAIT33
WAIT41:LCALL DISPLAY
AJMP WAIT44
WAIT51:LCALL DISPLAY
AJMP WAIT55
WAIT61:LCALL DISPLAY
AJMP WAIT66
INTT0: PUSH ACC
PUSH PSW
CLR ET0
CLR TR0
JB 03H,FSS
MOV A,#0B7H
ADD A,TL0
MOV TL0,A
MOV A,#3CH
ADDC A,TH0
MOV TH0,A
SETB TR0
DJNZ R4, OUTT0
ADDSS: MOV R4,#14H
MOV R0,#71H
ACALL ADD1
MOV A,R3
CLR C
CJNE A,#60H,ADDMM
ADDMM: JC OUTT0
ACALL CLR0
MOV R0,#77H
ACALL ADD1
MOV A,R3
CLR C
CJNE A,#60H,ADDHH
ADDHH: JC OUTT0
ACALL CLR0
MOV R0,#79H
ACALL ADD1
MOV A,R3
CLR C
CJNE A,#24H,HOUR
HOUR: JC OUTT0
ACALL CLR0
OUTT0: MOV 72H,76H
MOV 73H,77H
MOV 74H,78H
MOV 75H,79H
POP PSW
POP ACC
SETB ET0
RETI
FSS:MOV A,#0F7H
ADD A,TL0
MOV TL0,A
MOV A,#0D8H
ADDC A,TH0
MOV TH0,A
SETB TR0
MOV R0,#71H
ACALL ADD1
CLR C
MOV A,R3
JZ FSS
SETB C
FSS1: AJMP ADDMM
INTT1: PUSH ACC
PUSH PSW
MOV TL1, #0B0H
MOV TH1, #3CH
DJNZ R2,INTT1OUT
MOV R2,#06H
CPL 02H
JB 02H,FLASH1
MOV 72H,76H
MOV 73H,77H
MOV 74H,78H
MOV 75H,79H
INTT1OUT: POP PSW
POP ACC
RETI
FLASH1: JB 01H,FLASH2
MOV 72H,7AH
MOV 73H,7AH
MOV 74H,78H
MOV 75H,79H
AJMP INTT1OUT
FLASH2: MOV 72H,76H
MOV 73H,77H
MOV 74H,7AH
MOV 75H,7AH
AJMP INTT1OUT
ADD1: MOV A,@R0
DEC R0
SWAP A
ORL A,@R0
ADD A,#01H
DA A
MOV R3,A
ANL A,#0FH
MOV @R0,A
MOV A,R3
INC R0
SWAP A
ANL A,#0FH
MOV @R0,A
RET
SUB1: MOV A,@R0
DEC R0
SWAP A
ORL A,@R0
JZ SUB11
DEC A
SUB111:MOV R3,A
ANL A,#0FH
CLR C
SUBB A,#0AH
SUB1111:JC SUB1110
MOV @R0,09H
SUB110:MOV A,R3
INC R0
SWAP A
ANL A,#0FH
MOV @R0,A
RET
SUB11: MOV A,#59H
AJMP SUB111
SUB1110:MOV A,R3
ANL A,#0FH
MOV @R0,A
AJMP SUB110
SUBB1:MOV A,@R0
DEC R0
SWAP A
ORL A,@R0
JZ SUBB11
DEC A
SUBB111:MOV R3,A
ANL A,#0FH
CLR C
SUBB A,#0AH
SUBB1111:JC SUBB1110
MOV @R0,#09H
SUBB110: MOV A,R3
INC R0
SWAP A
ANL A,#0FH
MOV @R0,A
RET
SUBB11:MOV A,23H
AJMP SUBB111
SUBB1110:MOV A,R3
ANL A,#0FH
MOV @R0,A
AJMP SUBB110
CLR0: CLR A
MOV @R0,A
DEC R0
MOV @R0,A
RET
SETMM: CLR ET0
CLR TR0
LCALL DL1S
JB P3.7,CLOSEDIS
MOV R2,#06H
SETB ET1
SETB TR1
SET2: JNB P3.7,SET1
SETB 00H
SET4: JB P3.7,SET3
LCALL DL05S
JNB P3.7,SETHH
MOV R0,#77H
LCALL ADD1
MOV A,R3
CLR C
CJNE A,#60H,HHH
HHH: JC SET4
LCALL CLR0
CLR C
AJMP SET4
CLOSEDIS: SETB ET0
SETB TR0
CLOSE: JB P3.7,CLOSE
LCALL DISPLAY
JB P3.7,CLOSE
WAITH: JNB P3.7,WAITH
LJMP START1
SETHH: CLR 00H
SETHH1: JNB P3.7,SET5
SETB 01H
SET6: JB P3.7,SET7
LCALL DL05S
JNB P3.7,SETOUT
MOV R0,#79H
LCALL ADD1
MOV A,R3
CLR C
CJNE A,#24H,HOUU
HOUU: JC SET6
LCALL CLR0
AJMP SET6
SETOUT: JNB P3.7,SETOUT1
LCALL DISPLAY
JNB P3.7,SETOUT
CLR 01H
CLR 00H
CLR 02H
CLR TR1
CLR ET1
SETB TR0
SETB ET0
LJMP START1
SET1: LCALL DISPLAY
AJMP SET2
SET3: LCALL DISPLAY
AJMP SET4
SET5: LCALL DISPLAY
AJMP SETHH1
SET7: LCALL DISPLAY
AJMP SET6
SETOUT1: LCALL DISPLAY
AJMP SETOUT
FUNSUB:LCALL DISPLAY
JB P1.1,SET41
FUNSUB1:JNB P1.1,FUNSUB1
MOV R0,#77H
LCALL SUB1
LJMP SET4
SET41:LJMP SET4
FUNSUBB:LCALL DISPLAY
JB P1.1,SET61
FUNSUBB1:JNB P1.1,FUNSUBB1
MOV R0,#79H
LCALL SUBB1
LJMP SET6
SET61:LJMP SET6
DISPLAY: MOV R1,#70H
MOV R5,#0FEH
PLAY: MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,R5
JB ACC.1,LOOP5
CLR P0.7
LOOP5:JB ACC.3,LOOP6
CLR P0.7
LOOP6:LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.0,ENDOUT
RR A
MOV R5,A
MOV P0,#0FFH
AJMP PLAY
ENDOUT: MOV P2,#0FFH
MOV P0,#0FFH
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
SDISPLAY:MOV R5,#0DFH
SPLAY: MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TABS
MOVC A,@A+DPTR
MOV P0,A
MOV A,R5
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.0,ENDOUTS
RR A
MOV R5,A
AJMP SPLAY
ENDOUTS:MOV P2,#0FFH
MOV P0,#0FFH
RET
TABS: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
STAB:DB 0AH,0AH,0AH,0AH,0AH,0AH,0AH,0AH,08H,00H,0CH,00H,01H,0C,05H,00H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH,0AH,0AH,0AH,
ST: MOV R0,#40H
MOV R2,#20H
MOV R3,#00H
CLR A
MOV DPTR,#STAB
SLOOP: MOVC A,@A+DPTR
MOV @R0,A
MOV A,R3
INC A
MOV R3,A
INC R0
DJNZ R2,SLOOP
MOV R1,#5AH
MOV R3,#1BH
SSLOOP: MOV R2,#32H
SSLOOP1:LCALL SDISPLAY
DJNZ R2,SSLOOP11
MOV A,R1
SUBB A,#07H
MOV R1,A
DJNZ R3,SSLOOP
RET
SSLOOP11:MOV A,R1
SUBB A,#06H
MOV R1,A
AJMP SSLOOP1
DL1MS: MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
DS20MS: ACALL DISPLAY
ACALL DISPLAY
ACALL DISPLAY
RET
DL1S: LCALL DL05S
LCALL DL05S
RET
DL05S: MOV R3,#20H
DL05S1: LCALL DISPLAY
DJNZ R3,DL05S1
RET
END
正文
电子时钟表 自己试着做的 还好2005-10-10 15:02:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/niao0311/5861.html
阅读(2532) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论