Á¢¼´×¢ƒÔ µÇä›
·µ»ØÊ×í“

uid:65574µÄ‚€ÈË¿Õég

ÈÕÖ¾

ëŠ×Ó犡ª¡ª±¼ÅÜ

ÒÑÓÐ 1032 ´Îé†×x2014-8-29 12:16

 

 

 

;******************************************************************************

;*  ˜Ë(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

        

        

   


·ß^

ëuµ°

õr»¨

ÎÕÊÖ

À×ÈË

ÔuÕ“ (0 ‚€ÔuÕ“)

ÊÖ™C(j¨©)°æ|СºÚÎÝ|51ºÚëŠ×ÓÕ“‰¯ |51ºÚëŠ×ÓÕ“‰¯6Ⱥ QQ ¹ÜÀí†TQQ:125739409;¼¼Ðg(sh¨´)½»Á÷QQȺ281945664

Powered by †ÎƬ™C(j¨©)½Ì³Ì¾W(w¨£ng)

·µ»Øí”²¿