;******************************************************************************
;* ˜Ë(bi¨¡o)î}: ëŠ×Ó•r(sh¨ª)犵ijÌÐò
;* Îļþ: clock.asm
;* ÈÕÆÚ: 2014Äê4ÔÂ7ÈÕ08:27:48
;* °æ±¾: 1.0
;* ×÷Õß: Ã÷ÁÁ
;* à]Ïä: success20120116@sina.cn.com
;* ¾W(w¨£ng)Õ¾: http://www.tsinghua.edu.cn
;******************************************************************************
;* ÃèÊö:
;* ëŠ×Ó•r(sh¨ª)犵ijÌÐò
;******************************************************************************¡¡
WELA BIT P2.0 ;”µ(sh¨´)´a¹Üλßx¿ØÖÆÐÅÌ–¾€
DULA BIT P2.1 ;”µ(sh¨´)´a¹Ü¶Îßx¿ØÖÆÐÅÌ–¾€
S_SET BIT P3.5 ; SECOND°´âoλ
M_SET BIT P3.6 ; MINUTE°´âoλ
H_SET BIT P3.7 ; HOUR°´âoλ
SECOND EQU 30H ; ÃëÓ‹(j¨¬)”µ(sh¨´)ֵ׃Á¿¡¡
MINUTE EQU 31H ; ·ÖÓ‹(j¨¬)”µ(sh¨´)ֵ׃Á¿¡¡
HOUR EQU 32H ; С•r(sh¨ª)Ó‹(j¨¬)”µ(sh¨´)ֵ׃Á¿¡¡
TCNT EQU 34H ; 1Ã붨•r(sh¨ª)Ó‹(j¨¬)”µ(sh¨´)Æ÷
ORG 00H ; ÆðʼµØÖ·
JMP START
ORG 0BH ; Timer 0ÖДàÏòÁ¿µØÖ·
JMP INT_T0
ORG 30H
START:
MOV DPTR,#TABLE ; ÑbÆß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)±íTABLE
MOV HOUR,#0 ; Ó‹(j¨¬)”µ(sh¨´)ֵȫ²¿Çå0
MOV MINUTE,#0
MOV SECOND,#0
MOV TCNT,#0
MOV TMOD,#01H ; Timer 0×÷¶¨•r(sh¨ª)Æ÷£¬Ä£Ê½1
MOV TH0,#3CH ; ÑbÓ‹(j¨¬)”µ(sh¨´)³õʼֵ
MOV TL0,#0B0H
MOV IE,#82H ; ÖДàʹÄÜ
SETB TR0 ; †¢„ÓTimer 0
; ÒÔÏÂÊÇÅДàSECOND¡¢MINUTE¡¢HOUR°´âoÊÇ·ñ±»°´ÏÂ
A1:
CALL DISPLAY
JNB S_SET,S1 ; ÅДàSECOND°´âo
JNB M_SET,S2 ; ÅДàMINUTE°´âo
JNB H_SET,S3 ; ÅДàHOUR°´âo
JMP A1 ; Ñh(hu¨¢n)™zœy
S1:
CALL DELAY ; È¥¶¶„Ó
JB S_SET,A1
INC SECOND ; ÃëλӋ(j¨¬)”µ(sh¨´)Öµ¼Ó1
MOV A,SECOND ; A=SECOND
CJNE A,#60,J0 ; ÅДàÊÇ·ñµ½60Ãë
MOV SECOND,#0 ; Èç¹ûµ½Á˾ÍÇå0ÃëλӋ(j¨¬)”µ(sh¨´)Öµ
JMP K1 ; Ìøµ½K1¶Î
S2:
CALL DELAY
JB M_SET,A1
K1:
INC MINUTE ; ·ÖλӋ(j¨¬)”µ(sh¨´)Öµ¼Ó1
MOV A,MINUTE ; A=MINUTE
CJNE A,#60,J1 ; ÅДàÊÇ·ñµ½60·Ö
MOV MINUTE,#0 ; Èç¹ûµ½Á˾ÍÇå0·ÖλӋ(j¨¬)”µ(sh¨´)Öµ
JMP K2 ; Ìøµ½K2¶Î
S3:
CALL DELAY
JB H_SET,A1
K2:
INC HOUR ; С•r(sh¨ª)Ó‹(j¨¬)”µ(sh¨´)Öµ¼Ó1
MOV A,HOUR ; A=HOUR
CJNE A,#24,J2 ; ÅДàÊÇ·ñµ½24С•r(sh¨ª)
MOV HOUR,#0 ; Èç¹ûµ½Á˾ÍÇå0Ãë¡¢·Ö¡¢Ð¡•r(sh¨ª)λӋ(j¨¬)”µ(sh¨´)Öµ
MOV MINUTE,#0
MOV SECOND,#0
JMP A1
; ÒÔϳÌÐòµÈ´ýSECOND¡¢MINUTE¡¢HOUR°´âo·Åé_
J0:
JB S_SET,A1
CALL DISPLAY
JMP J0
J1:
JB M_SET,A1
CALL DISPLAY
JMP J1
J2:
JB H_SET,A1
CALL DISPLAY
JMP J2
; Timer 0ÖДà·þ„Õ(w¨´)×Ó³ÌÐò, ßM(j¨¬n)ÐÐÃë¡¢·Ö¡¢Ð¡•r(sh¨ª)µÄÓ‹(j¨¬)•r(sh¨ª)
INT_T0:
MOV TH0,#3CH ; ÑbÓ‹(j¨¬)”µ(sh¨´)³õʼֵ
MOV TL0,#0B0H
INC TCNT ; 1ÃëÓ‹(j¨¬)”µ(sh¨´)Æ÷Ôö¼Ó1
MOV A,TCNT ; A=TCNT
CJNE A,#20,RETUNE ; Ó‹(j¨¬)•r(sh¨ª)1Ãë
INC SECOND ; ÃëÓ‹(j¨¬)”µ(sh¨´)Æ÷Ôö¼Ó1
MOV TCNT,#0 ; ÇåÁãTCNT
MOV A,SECOND ; A=SECOND
CJNE A,#60,RETUNE ; Ó‹(j¨¬)•r(sh¨ª)60Ãë
INC MINUTE ; ·ÖÓ‹(j¨¬)”µ(sh¨´)Æ÷Ôö¼Ó1
MOV SECOND,#0 ; ÇåÁãSECOND
MOV A,MINUTE ; A=MINUTE
CJNE A,#60,RETUNE ; Ó‹(j¨¬)•r(sh¨ª)60·Ö
INC HOUR ; С•r(sh¨ª)Ó‹(j¨¬)”µ(sh¨´)Æ÷Ôö¼Ó1
MOV MINUTE,#0 ; ÇåÁãMINUTE
MOV A,HOUR ; A=HOUR
CJNE A,#24,RETUNE ; Ó‹(j¨¬)•r(sh¨ª)24С•r(sh¨ª)¡¡
MOV HOUR,#0 ; Ãë¡¢·Ö¡¢Ð¡•r(sh¨ª)Ó‹(j¨¬)”µ(sh¨´)ÖµÇå0
MOV MINUTE,#0
MOV SECOND,#0
MOV TCNT,#0
RETUNE:
RETI ; ÖДà·þ„Õ(w¨´)×Ó³ÌÐò½Y(ji¨¦)Êø
; ÒÔÏžéÆß¶Î”µ(sh¨´)´a¹Üï@ʾµÄ×Ó³ÌÐò
DISPLAY:
MOV A,SECOND ; A=SECOND£¬ï@ʾÃë
MOV B,#10 ; B=10
DIV AB ; A³ýÒÔB
MOV P1,#0BFH
SETB P2.0
CLR P2.0
MOVC A,@A+DPTR ; Æß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)ÑbÈëA
MOV P1,A ; ÄP1¿ÚÝ”³ö
SETB P2.1
CLR P2.1
CALL DELAY
MOV A,B ; A=B
MOV P1,#07FH
SETB P2.0
CLR P2.0
MOVC A,@A+DPTR ; Æß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)ÑbÈëA
MOV P1,A ; ÄP1¿ÚÝ”³ö
SETB P2.1
CLR P2.1
CALL DELAY
MOV P1,#0DFH
SETB P2.0
CLR P2.0
MOV P1,#40H ; ï@ʾ¶Ì¾€·Ö¸ô·û
SETB P2.1
CLR P2.1 ; ÄP1¿ÚÝ”³ö
CALL DELAY
MOV A,MINUTE ; A=MINUTE£¬ï@ʾ·Ö
MOV B,#10 ; B=10
DIV AB ; A³ýÒÔB
MOV P1,#0F7H
SETB P2.0
CLR P2.0
MOVC A,@A+DPTR ; Æß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)ÑbÈëA
MOV P1,A ; ÄP1¿ÚÝ”³ö
SETB P2.1
CLR P2.1
CALL DELAY
MOV A,B ; A=B
MOV P1,#0EFH
SETB P2.0
CLR P2.0
MOVC A,@A+DPTR ; Æß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)ÑbÈëA
MOV P1,A ; ÄP1¿ÚÝ”³ö
SETB P2.1
CLR P2.1
CALL DELAY
MOV P1,#0FBH
SETB P2.0
CLR P2.0
MOV P1,#40H ; ï@ʾ¶Ì¾€·Ö¸ô·û
SETB P2.1
CLR P2.1 ; ÄP1¿ÚÝ”³ö
CALL DELAY
MOV A,HOUR ; A=HOUR£¬ï@ʾС•r(sh¨ª)
MOV B,#10 ; B=10
DIV AB ; A³ýÒÔB
MOV P1,#0FEH
SETB P2.0
CLR P2.0
MOVC A,@A+DPTR ; Æß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)ÑbÈëA
MOV P1,A ; ÄP1¿ÚÝ”³ö
SETB P2.1
CLR P2.1
CALL DELAY
MOV A,B ; A=B
MOV P1,#0FDH
SETB P2.0
CLR P2.0
MOVC A,@A+DPTR ; Æß¶Î”µ(sh¨´)´a¹Ü¶Î´a”µ(sh¨´)“þ(j¨´)ÑbÈëA
MOV P1,A ; ÄP1¿ÚÝ”³ö
SETB P2.1
CLR P2.1
CALL DELAY
RET
TABLE:
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
DELAY:
MOV R6,#9
D1:
MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
END
ÊÖ™C(j¨©)°æ|СºÚÎÝ|51ºÚëŠ×ÓÕ“‰¯
|
¹ÜÀí†TQQ:125739409;¼¼Ðg(sh¨´)½»Á÷QQȺ281945664
Powered by †ÎƬ™C(j¨©)½Ì³Ì¾W(w¨£ng)