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

📄 cd4060数字钟.txt

📁 用CD4060与单片机的定时器中断
💻 TXT
字号:
;=====================================================================
;P0口送数,P2口扫描,共阴8个数码管,P1.0和P1。1为按键设定。
;可以显示年月日至时分秒。P0口送数需要加驱动芯片,74LS541要加上拉电阻。
WEI     EQU     P2                  ;位码
WEICON  EQU     08H                 ;位码缓存 
DUAN    EQU     P0                  ;段码
GESHU   EQU     09H                 ;显示个数
Y0      EQU     01H                 ;延时
Y1      EQU     11H
M0      EQU     12H                 ;计数
M1      EQU     13H
M2      EQU     14H
M3      EQU     15H
MOSHI0  EQU     17H                 ;模式0
MOSHI1  EQU     18H                 ;模式1
JS      EQU     19H                 ;记时
JS2     EQU     1AH
JS4     EQU     16H                 
TINGJI  EQU     1CH                 ;停机5分钟
TIAOL   EQU     1DH                 ;调时差值
TIAOCA  EQU     1EH
TIAOCB  EQU     1FH
TIAOS   EQU     28H
MUOSHI0 EQU     29H
ST0     EQU     2AH
ST1     EQU     2BH
ST2     EQU     2CH
DIS     EQU     20H                 ;显示缓存头地址
SECQ    EQU     40H                 ;秒
MINQ    EQU     41H                 ;分
HOURQ   EQU     42H                 ;小时
DAYQ    EQU     43H                 ;日
MONQ    EQU     44H                 ;月
YEARQ   EQU     45H                 ;年 
JIAN    BIT     2EH.0               ;键盘标志
JIANY   BIT     2EH.1               ;键盘延时标志
JIANCA  BIT     2EH.2
JIANCB  BIT     2EH.3
TIAOD   BIT     2EH.4
MO2     BIT     2EH.5
TS2     BIT     2EH.6
TIAOMAI BIT     2EH.7               ;调点的脉冲
TING    BIT     2FH.0               ;停机
;=====================================================================
        ORG     0000H
        SJMP    START
       	ORG     0003H       ;中断入口地址
	AJMP    BRT0
	ORG     000BH
	AJMP    BRT0
	ORG     0030H
START:  MOV     R0,#02H
        MOV     R1,#100D
STARTM: MOV     @R0,#00H
	INC     R0
	DJNZ    R1,STARTM
	MOV     R0,#00H
        MOV     SP,#60H
        MOV     DAYQ,#01H
        MOV     MONQ,#01H
	MOV     YEARQ,#01H    
        MOV     WEICON,#11111110B   
        MOV     GESHU,#08H
        MOV     IE,#82H
        SETB    EX0
	SETB    IT0
	MOV     M0,#2D
	MOV     M1,#25D
	MOV     M2,#2D
	MOV     M3,#4D
	MOV     ST0,#100D
        MOV     ST1,#20D
        MOV     ST2,#02D
        MOV     JS4,#02H 
	MOV     TINGJI,#05H
        MOV     3EH,#25H 
;---------------------------------------------------------------------
MAIN:   ACALL   LED0                ;好
        ACALL   ZHUAN
	ACALL   MUOSHI
        ACALL   JIANP
	ACALL   STARTJ
        DJNZ    GESHU,MAIN        
	MOV     GESHU,#08H
	SJMP    MAIN
;---------------------------------------------------------------------
STARTJ: JNB     TING,VVV
        DJNZ    ST0,VVV
        MOV     ST0,#100D    
        DJNZ    ST1,VVV 
        MOV     ST1,#40D    
        DJNZ    ST2,VVV
        MOV     ST2,#02D
        CLR     TING
	MOV     MUOSHI0,#00H
	MOV     TIAOS,#00000000B
VVV:    RET
;---------------------------------------------------------------------
MUOSHI: MOV     A,MUOSHI0
        CJNE    A,#00H,Q0
        MOV     20H,35H             ;时
        MOV     21H,34H
	MOV     22H,#0BH
	MOV     23H,33H             ;分
        MOV     24H,32H
	MOV     25H,#0BH
        MOV     26H,31H             ;秒
        MOV     27H,30H
Q0:     CJNE    A,#01H,Q1
        MOV     20H,3BH             ;时
        MOV     21H,3AH
	MOV     22H,#0CH
	MOV     23H,39H             ;分
        MOV     24H,38H
	MOV     25H,#0CH
        MOV     26H,37H             ;秒
        MOV     27H,36H
Q1:     RET
;---------------------------------------------------------------------
LED0:   MOV     WEI,#11111111B      ;关端口
        MOV     A,#1FH              ;传送段码数据
        ADD     A,GESHU
	MOV     R0,A
        MOV     A,@R0
        ACALL   LED1
        MOV     A,WEICON            ;传送位码数据
	RR      A
	MOV     WEICON,A
	JNB     TIAOD,PLL
	ORL     A,TIAOS
PLL:	MOV     WEI,A
	ACALL   DELAY               ;延时
        RET
;---------------------------------------------------------------------
LED1:   ADD     A,#03H
        MOVC    A,@A+PC
        MOV     DUAN,A
	RET
	DB      3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H,20H
;---------------------------------------------------------------------
DELAY:  MOV     Y0,#050D
DEL0:   MOV     Y1,#020D
DEL1:   DJNZ    Y1,DEL1
        DJNZ    Y0,DEL0
	RET
;---------------------------------------------------------------------
JIANP:  JB      JIAN,JIAN4
        JB      JIANY,JIAN2
        SETB    P1.0
	JB      P1.0,JIAN0
        SETB    JIAN
	SETB    JIANY
	SJMP    JIAN4
JIAN0:  CLR     JIANCA
        SETB    P1.1
	JB      P1.1,JIAN1
        SETB    JIAN
	SETB    JIANY
	SJMP    JIAN4
JIAN1:  CLR     JIANCB
JIAN2:  CLR     JIANY
        SETB    P1.0
        JB      P1.0,JIAN3
	JB      JIANCA,JIAN3
	SETB    JIANCA
	ACALL   TIAOA
	CLR     JIANY
JIAN3:  SETB    P1.1
        JB      P1.1,JIAN4
	JB      JIANCB,JIAN4
	SETB    JIANCB
	ACALL   TIAOB
        SETB    TIAOMAI
	CLR     JIANY
JIAN4:  RET
;--------------------------------------------------------------------
TIAOA:  JB      MO2,RP5
        INC     TIAOCA
        MOV     JS,#00H
        MOV     JS2,#00H
        MOV     ST0,#100D    
        MOV     ST1,#40D
        MOV     ST2,#02D    
        MOV     A,TIAOCA
        CJNE    A,#01H,RP0
	MOV     TIAOS,#00000011B
        SETB    TS2
RP0:	CJNE    A,#02H,RP1
	MOV     TIAOS,#00011000B
        SETB    TS2
RP1:	CJNE    A,#03H,RP2
	MOV     TIAOS,#00000011B
        SETB    TS2
        MOV     MUOSHI0,#01H
RP2:	CJNE    A,#04H,RP3
	MOV     TIAOS,#00011000B
        SETB    TS2
RP3:	CJNE    A,#05H,RP4
	MOV     TIAOS,#11000000B
        SETB    TS2
RP4:	CJNE    A,#06H,RP5
        MOV     TIAOCA,#00H
	MOV     TIAOS,#00000000B
	MOV     MUOSHI0,#00H
RP5:    RET
;---------------------------------------------------------------------
TIAOB:  MOV     A,TIAOCA
        CJNE    A,#01H,RG0
        ACALL   HOUR
	MOV     JS2,#00H               ;从新规定5S
        SJMP    QW2     
RG0:	CJNE    A,#02H,RG1
	ACALL   MINUTE
	SETB    TING
	MOV     SECQ,#00H
	MOV     JS2,#00H
        SJMP    QW2
RG1:	CJNE    A,#03H,RG2
	ACALL   YEAR
	MOV     JS2,#00H
        MOV     MUOSHI0,#01H
        SJMP    QW2
RG2:	CJNE    A,#04H,RG3
	ACALL   MONTH
	MOV     JS2,#00H
        SJMP    QW2
RG3:	CJNE    A,#05H,RG4
	ACALL   DAY
	MOV     JS2,#00H
	SJMP    QW2
RG4:    CLR     TING
        INC     MUOSHI0
        MOV     A,MUOSHI0
	CJNE    A,#01H,QW0
	SETB    MO2                ;延时5S
	SJMP    QW2
QW0:    CJNE    A,#02H,QW2
        MOV     MUOSHI0,#00H       
QW2:    MOV     ST0,#100D    
        MOV     ST1,#40D
        MOV     ST2,#02D
        RET
;---------------------------------------------------------------------
BRT0:   PUSH    PSW
        PUSH    ACC
        JNB     JIAN,BRT1
	DJNZ    3EH,BRT2
	CLR     JIAN
BRT1:   MOV     3EH,#2D
BRT2:   DJNZ    M0,RE
        MOV     M0,#4D
	JNB     TIAOMAI,FSF
        DJNZ    JS4,FAF
	MOV     JS4,#02H
        CLR     TIAOMAI
        MOV     TIAOL,#00H
        CLR     JIAN
        CLR     JIANY
        CLR     JIANCB
FAF:    CLR     TIAOD              
        DJNZ    M3,RE
        MOV     M3,#04D
	SJMP    FDF
FSF:    DJNZ    M3,RE
        MOV     M3,#04D
        CPL     TIAOD       
FDF:    DJNZ    M2,RE
	MOV     M2,#2D
	JB      TING,RE
        ACALL   SECOND
	MOV     A,SECQ
	CJNE    A,#00H,RE
        ACALL   MINUTE
	MOV     A,MINQ
	CJNE    A,#00H,RE
	ACALL   HOUR
        MOV     A,HOURQ
        CJNE    A,#00H,RE
        ACALL   DAY
        CJNE    A,#00H,RE
        MOV     DAYQ,#00H
        ACALL   MONTH
	ACALL   YEAR
RE:     POP     ACC
        POP     PSW
        RETI
;---------------------------------------------------------------------
ZHUAN:  MOV     R1,#30H            ;秒30H,31H
        MOV     A,SECQ
        ACALL   ZHUAN0             ;分32H,33H                
        MOV     A,MINQ             
        ACALL   ZHUAN0             ;时34H,35H
	MOV     A,HOURQ         
        ACALL   ZHUAN0             ;日36H,37H  
        MOV     A,DAYQ             
        ACALL   ZHUAN0             ;月38H,39H
        MOV     A,MONQ             
        ACALL   ZHUAN0             ;年3AH,3BH
        MOV     A,YEARQ             
        ACALL   ZHUAN0             ;
	RET
;---------------------------------------------------------------------
ZHUAN0: XCHD    A,@R1
	SWAP    A
	ANL     A,#0FH
	INC     R1
	MOV     @R1,A
	INC     R1
	RET
;---------------------------------------------------------------------    
SECOND: JNB     MO2,FFF
        INC     JS
	MOV     A,JS
	CJNE    A,#05D,FFF
        MOV     JS,#00H
	MOV     MUOSHI0,#00H
	CLR     MO2
FFF:    JNB     TS2,GGG
        INC     JS2
	MOV     A,JS2
	CJNE    A,#30D,GGG
        MOV     JS2,#00H
	MOV     MUOSHI0,#00H
        MOV     TIAOS,#00000000B
        MOV     TIAOCA,#00H
	CLR     TS2
GGG:    INC     SECQ
        CLR     AC
	CLR     C
        MOV     A,SECQ
	DA      A
	MOV     SECQ,A
	CJNE    A,#60H,RE0
	MOV     SECQ,#00H
RE0:    RET
;---------------------------------------------------------------------
MINUTE: INC     TINGJI
        MOV     A,TINGJI
	CJNE    A,#05H,TTT
        MOV     TINGJI,#00H
	CLR     TING
TTT:    INC     MINQ
        CLR     AC
	CLR     C
        MOV     A,MINQ
	DA      A
	MOV     MINQ,A
	CJNE    A,#60H,RE1
	MOV     MINQ,#00H
RE1:    RET
;---------------------------------------------------------------------
HOUR:   INC     HOURQ
        CLR     AC
	CLR     C
        MOV     A,HOURQ
	DA      A
	MOV     HOURQ,A
	CJNE    A,#24H,RE2
	MOV     HOURQ,#00H
RE2:    RET
;---------------------------------------------------------------------
DAY:    MOV     A,MONQ
	ADD     A,#17D
	MOVC    A,@A+PC
	MOV     R2,A
	INC     DAYQ
        CLR     AC
	CLR     C
        MOV     A,DAYQ
	DA      A
	MOV     DAYQ,A
	CJNE    A,02H,RE3
	MOV     DAYQ,#01H
RE3:    RET
        DB      32H,29H,32H,31H,32H,31H,32H,32H,31H
	DB      00H,00H,00H,00H,00H,00H,32H,31H,32H
;---------------------------------------------------------------------
MONTH:  INC     MONQ
        CLR     AC
	CLR     C
        MOV     A,MONQ
	DA      A
	MOV     MONQ,A
	CJNE    A,#13H,RE4
	MOV     MONQ,#01H
RE4:    RET
;---------------------------------------------------------------------
YEAR:   INC     YEARQ
        CLR     AC
	CLR     C
        MOV     A,YEARQ
	DA      A
	MOV     YEARQ,A
RE5:    RET
;---------------------------------------------------------------------
        END

⌨️ 快捷键说明

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