⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcuclock.txt

📁 实用单片机电子钟的制作汇编源程序,有需要的可以下载,很经典的.
💻 TXT
字号:
新:实用单片机电子钟的制作(汇编程序)
 
查看作者主页   发表时间:2006-5-18 17:12:37    点击:514   
 


 

ORG 0000H
 LJMP START
 ORG 0003H
 RETI         
 ORG 000BH
 LJMP INTT0
 ORG 0013H
 RETI         
 ORG 001BH
 LJMP    INTT1      
 ORG 0023H
 RETI
 ORG 002BH
 RETI         
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;主程序
;&&&&&&&&&&&&&&&&&&&&&&&&&&
START:
        LCALL   DL1S

        CLR     A
        MOV     66H,A       
        MOV     67H,A
        MOV     68H,A       
        MOV     69H,A

        CLR     00H
        CLR     01H
        CLR     02H
        CLR     03H
        CLR     04H
        CLR     05H


        MOV     SP,#27H
        MOV R0,#70H
 MOV R7,#0BH
 ;MOV 20H,#00H
CLEARDISP:
 MOV @R0,#00H
 INC R0
 DJNZ R7,CLEARDISP
        MOV     7AH,#0AH
; 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 P3.7,SETMM1
        JNB     05H,START1

DINGSHIDAO:                 
        JNB     05H,START1
        JNB     05H,START1
        CLR     P1.7
        MOV     P3,#0F0H
        LCALL   BDL1S

        SETB    P1.7
        CLR     05H
 SJMP START1
SETMM1:
 LJMP SETMM;SAOJIAN
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;1秒定时
;&&&&&&&&&&&&&&&&&&&&&&&&&&
INTT0:
 PUSH ACC
 PUSH PSW
 CLR ET0
 CLR TR0
 MOV A,#0B7H
 ADD A,TL0
 MOV TL0,A
 MOV A,#3CH
 ADD 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,76H
        CLR     C
        SUBB    A,66H
        JC      ADDMM1          
        JNZ     ADDMM1
        MOV     A,77H
        CLR     C
        SUBB    A,67H
        JC      ADDMM1          
        JNZ     ADDMM1
        MOV     A,78H
        CLR     C
        SUBB    A,68H
        JC      ADDMM1          
        JNZ     ADDMM1
        MOV     A,79H
        CLR     C
        SUBB    A,69H
        JC      ADDMM1          
        JNZ     ADDMM1
        SETB    05H             
;---------------------------
ADDMM1:
        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:
        JB      03H,OUTT01 
        JB      04H,OUTT01
 MOV 72H,76H    
 MOV 73H,77H
 MOV 74H,78H
 MOV 75H,79H
        AJMP    OUTT02
OUTT01:
        MOV     72H,66H    
        MOV     73H,67H
        MOV     74H,68H
        MOV     75H,69H
OUTT02:
 POP PSW
 POP ACC
 SETB ET0
 RETI
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;生成闪烁……
;&&&&&&&&&&&&&&&&&&&&&&&&&&
INTT1:
 PUSH ACC
 PUSH PSW
 MOV TL1,#0B0H
 MOV TH1,#3CH
 DJNZ R2,INTT1OUT
 MOV R2,#07H
 CPL 02H
        NOP
        NOP
        NOP
        NOP
 JB 02H,FLASH1
        NOP
        NOP
        JB      00H,FLASHH1
        NOP
        NOP
        JB      01H,FLASHH1
        MOV     72H,66H
        MOV     73H,67H
        MOV     74H,68H
        MOV     75H,69H
        AJMP    INTT1OUT
FLASHH1:
 MOV 72H,76H
 MOV 73H,77H
 MOV 74H,78H
 MOV 75H,79H
INTT1OUT:
 POP PSW
 POP ACC
 RETI
FLASH1:
 JNB 00H,FLASH2
 MOV 72H,7AH      
        MOV 73H,7AH
 MOV 74H,78H
 MOV 75H,79H
 AJMP INTT1OUT
FLASH2:
        JNB     01H,FLASH3
 MOV 72H,76H       
 MOV 73H,77H
 MOV 74H,7AH
 MOV 75H,7AH
 AJMP INTT1OUT
FLASH3:
        JNB     03H,FLASH4
        MOV 72H,7AH      
        MOV 73H,7AH
 MOV 74H,68H
 MOV 75H,69H
        AJMP    INTT1OUT
FLASH4:
        JNB     04H,INTT1OUT
        MOV 72H,66H       
 MOV 73H,67H
 MOV 74H,7AH
 MOV 75H,7AH
 AJMP INTT1OUT
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;秒加1程序
;&&&&&&&&&&&&&&&&&&&&&&&&&&
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
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;清零程序
;&&&&&&&&&&&&&&&&&&&&&&&&&&
CLR0:
 CLR A
 MOV @R0,A
 DEC R0
 MOV @R0,A
 RET
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;按键调整 时间 或 定时
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;==========================
;以下为调整时间程序
;==========================
START2:
        LJMP    START1
SETMM:
        LCALL   DL1S
        JB      P3.7,START2
SETMMM:
        JNB     P3.7,SETMMM

        CLR ET0
 CLR TR0

SAOJ:   ;CLR ET0
 ;CLR TR0
        MOV     P3,#0F0H
        MOV     P1,#80H

        MOV     72H,#01H         
        MOV     73H,#00H
        MOV     74H,#0BH
        MOV     75H,#0AH


        LCALL   DISPLAY
        NOP
        MOV     P3,#0F0H
        MOV     P1,#80H
        NOP
        NOP
        NOP
        NOP
        JNB     P3.5,ZFANY
        JNB     P3.4,QUD
        JB      P3.7,SAOJ
        LCALL   DS20MS
        JB      P3.7,SAOJ
SAOJOUT:
        JNB     P3.7,SAOJOUT
        SETB    ET0
        SETB    TR0
        AJMP    START1

ZFANY:  AJMP    FANY
;-------------------------
QUD:
        LCALL   DS20MS
        JB      P3.4,SAOJ
QUDD:
        JNB     P3.4,QUDD


 MOV R2,#0AH

        MOV     72H,76H
        MOV     73H,77H
        MOV     74H,78H
        MOV     75H,79H

 SETB ET1
 SETB TR1
QUDD1:
        CLR     01H
        SETB 00H

QUDSAO: LCALL   DISPLAY       
        JNB     P3.7,QUDEND
        JNB     P3.5,QUDF
        JB      P3.4,QUDSAO

QUDJ:
        LCALL   DS20MS
        JB      P3.4,QUDSAO
QUDJ1:  LCALL   DISPLAY
        JNB     P3.4,QUDJ1
        MOV     R0,#77H
        LCALL   ADD1

 MOV A,R3
 CLR C
 CJNE A,#60H,QUDJ2
QUDJ2:
 JC QUDSAO
 LCALL CLR0
 CLR C
 AJMP QUDSAO
;-------------------------------
QUDF:
 LCALL   DS20MS
        JB      P3.5,QUDSAO
QUDF1:
        JNB     P3.5,QUDF1
        CLR     00H
        SETB    01H

QUDFSAO:
        LCALL   DISPLAY       
        JNB     P3.7,QUDEND
        JNB     P3.5,QUDFF
        JB      P3.4,QUDFSAO

QUDJF:
        LCALL   DS20MS
        JB      P3.4,QUDFSAO
QUDJF1:  LCALL   DISPLAY
        JNB     P3.4,QUDJF1
        MOV     R0,#79H
        LCALL   ADD1

 MOV A,R3
 CLR C
 CJNE A,#24H,QUDJF2
QUDJF2:
 JC QUDFSAO
 LCALL CLR0
 CLR C
 AJMP QUDFSAO

QUDFF:
 LCALL   DS20MS
        JB      P3.5,QUDFSAO
QUDFF1:
        JNB     P3.5,QUDFF1
        AJMP    QUDD1

QUDEND:
        LCALL    DS20MS
        JB       P3.7,QUDSAO
QUDEND1:
        JNB      P3.7,QUDEND1

        CLR  01H
 CLR  00H
 CLR  02H
        CLR  ET1
 CLR  TR1
        
        AJMP     SAOJ        
;============================
;以下为定时程序段
;============================
ZFANY1: AJMP    FANY1
ZSAOJ:  AJMP    SAOJ
FANY:   LCALL   DS20MS         
        JB      P3.5,ZSAOJ

FANYY:
        JNB     P3.5,FANYY
SAOJ1:
        MOV     72H,#02H         
        MOV     73H,#00H
        MOV     74H,#0BH
        MOV     75H,#0AH
        LCALL   DISPLAY
        NOP
        JNB     P3.5,ZFANY1     
        JNB     P3.4,QUD1
        JB      P3.7,SAOJ1
        LCALL   DL1S
        JB      P3.7,SAOJ1
SAOJOUT1:
        JNB     P3.7,SAOJOUT1
        AJMP    START1

QUD1:                          

        LCALL   DS20MS
        JB      P3.4,SAOJ1


DQUDD:
        JNB     P3.4,DQUDD


 MOV R2,#0AH

        MOV     72H,66H
        MOV     73H,67H
        MOV     74H,68H
        MOV     75H,69H

 SETB ET1
 SETB TR1
DQUDD1:
        CLR     04H
        SETB 03H

DQUDSAO: LCALL   DISPLAY       
        JNB     P3.7,DQUDEND
        JNB     P3.5,DQUDF
        JB      P3.4,DQUDSAO

DQUDJ:
        LCALL   DS20MS
        JB      P3.4,DQUDSAO
DQUDJ1: LCALL   DISPLAY
        JNB     P3.4,DQUDJ1
        MOV     R0,#67H
        LCALL   ADD1

 MOV A,R3
 CLR C
 CJNE A,#60H,DQUDJ2
DQUDJ2:
 JC DQUDSAO
 LCALL CLR0
 CLR C
 AJMP DQUDSAO
;-------------------------------
DQUDF:
 LCALL   DS20MS
        JB      P3.5,DQUDSAO
DQUDF1:
        JNB     P3.5,DQUDF1

        CLR     03H
        SETB    04H

DQUDFSAO:
        LCALL   DISPLAY       
        JNB     P3.7,DQUDEND
        JNB     P3.5,DQUDFF
        JB      P3.4,DQUDFSAO

DQUDJF:
        LCALL   DS20MS
        JB      P3.4,DQUDFSAO
DQUDJF1: LCALL   DISPLAY
        JNB     P3.4,DQUDJF1
        MOV     R0,#69H
        LCALL   ADD1

 MOV A,R3
 CLR C
 CJNE A,#24H,DQUDJF2
DQUDJF2:
 JC DQUDFSAO
 LCALL CLR0
 CLR C
 AJMP DQUDFSAO

DQUDFF:
 LCALL   DS20MS
        JB      P3.5,DQUDFSAO
DQUDFF1:
        JNB     P3.5,DQUDFF1
        AJMP    DQUDD1

DQUDEND:
        LCALL    DS20MS
        JB       P3.7,DQUDSAO
DQUDEND1:
        JNB      P3.7,DQUDEND1
        CLR  03H
 CLR  04H
 CLR  02H
        CLR  ET1
 CLR  TR1
        
        AJMP     SAOJ        

ZSAOJ1: AJMP    SAOJ1
FANY1:
        LCALL   DS20MS
        JB      P3.5,ZSAOJ1
FANY1Y:
        JNB     P3.5,FANY1Y
        AJMP    SAOJ
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;显示程序
;&&&&&&&&&&&&&&&&&&&&&&&&&&
DISPLAY:
 MOV R1,#72H
 MOV R5,#01H
PLAYA:
 MOV     A,R5
        ORL     A,#0F0H
 MOV P3,A
 MOV A,@R1
 MOV DPTR,#TAB
 MOVC A,@A+DPTR
 MOV P1,A
        NOP
 LCALL DL1MS

        MOV     P1,#80H
        NOP
        MOV     P3,#0F0H
        NOP

 INC R1
        MOV A,R5
        ANL     A,#0FH
 JB ACC.3,ENDOUT
 RL A
 MOV R5,A
 AJMP PLAYA
ENDOUT:
 MOV     P3,#0F0H
 MOV P1,#80H
 RET
TAB:
 DB  0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,80H,0F9H
;&&&&&&&&&&&&&&&&&&&&&&&&&&
;延时程序
;&&&&&&&&&&&&&&&&&&&&&&&&&&
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
;--------------------------
BDL1S:
 MOV R6,#0FFH
BDL1:
 MOV R7,#0FFH
BDL2:   NOP
        NOP
        NOP
        NOP
        NOP
        NOP
 DJNZ R7,BDL2
 DJNZ R6,BDL1
 RET
;&&&&&&&&&&&&&&&&&&&&&&&&&&
 END
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -