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

📄 1.asm

📁 定时报警器汇编源程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
       MOV      R0 ,#TIMEBUF
       MOV      R1 ,#02H
       LCALL    WR_PCF8563 
       RET
;************************************
;闹钟设置子程序
;************************************
NAOZHONG_1:
       MOV   R2,#10H
NAOZHONG_11:
       MOV   CLOCK, #03H 
       MOV  R0 ,#CLOCK
       MOV  R1 ,#0DH
       LCALL    WR_PCF8563 
       LCALL    QUANLING
       LCALL    KEY
       JNB   ACC.1,NZMINSZ
       DJNZ  R2,NAOZHONG_11
       LJMP  REREAD
;*******************************************
;闹钟分钟的设置子程序
;*******************************************
NZMINSZ:
       CLR    EA
       MOV    R4,#10H
       LCALL  KEY
NZMINSZ_: 
       MOV  LEDBUF1 ,#14H                ;闹钟分钟的设置?
    
   MOV  LEDBUF2, #14H  
       LCALL    DISPNUMBER      
       LCALL    DELAY                    
       MOV  R7  ,TIMEBUF+7
       LCALL  KEY1
       JNB ACC.1, MIN_1
       JNB  ACC.3,NZHOURSZ
       JB  ACC.0 ,NZMINSZ1   
       LCALL  INC_NZMINSZ
       MOV  TIMEBUF+7,A
NZMINSZ1:  
       MOV  R0, #TIMEBUF+7
       MOV  R1,#09H
       LCALL    WR_PCF8563
       LCALL    QUANLING
       DJNZ     R4  ,NZMINSZ_
       AJMP     REREAD
INC_NZMINSZ:
       MOV  R4,#10H
       MOV   A ,R7
       ADD   A,#01H
       DA    A
       MOV   R7,A
       SUBB  A,#60H
       JC  MINNEXT
       MOV  R7,#00H
MINNEXT:  
       MOV  A,  R7
       RET
MIN_1: LCALL  KEY
       MOV  CNTRL1, #02H 
       MOV  R0 ,#CNTRL1
       MOV  R1 ,#01H
       LCALL   WR_PCF8563 
       LJMP  REREAD
;****************************************
;闹钟时的设置子程序
;****************************************
NZHOURSZ:
       MOV    R4,#10H
       LCALL  KEY
NZHOURSZ_:
       MOV  LEDBUF3,#14H                ;闹钟时的设置?
   
       MOV  LEDBUF4,#14H  
       LCALL    DISPNUMBER      
       LCALL    DELAY                    
       MOV  R7  ,TIMEBUF+8
       LCALL  KEY1
       JNB ACC.1, HOUR_1
       JNB  ACC.3,NZDATSZ
       JB  ACC.0 ,NZHOURSZ1
       LCALL  INC_NZHOURSZ
       MOV  TIMEBUF+8,A
NZHOURSZ1:
       MOV  R0, #TIMEBUF+8
       MOV  R1,#0AH
       LCALL    WR_PCF8563
       LCALL    QUANLING
       DJNZ     R4  ,NZHOURSZ_
       AJMP     REREAD
INC_NZHOURSZ:
       MOV  R4,#10H
       MOV   A ,R7
       ADD   A,#01H
       DA    A
       MOV   R7,A
       SUBB  A,#24H
       JC   HOURNEXT
       MOV  R7,#00H
HOURNEXT:  
       MOV  A,  R7
       RET
HOUR_1:LCALL  KEY
       MOV  CNTRL1, #02H 
       MOV  R0 ,#CNTRL1
       MOV  R1 ,#01H
       LCALL   WR_PCF8563
       LJMP  REREAD
;*******************************************
;闹钟天的设置子程序
;*******************************************
NZDATSZ:
       MOV    R4,#10H
       LCALL  KEY
NZDATSZ_:
       MOV  LEDBUF5,14H                ;闹钟天的设置?
       
       MOV  LEDBUF6,14H  
       LCALL    DISPNUMBER      
       LCALL    DELAY                    
       MOV  R7  ,TIMEBUF+9
       LCALL  KEY1
       JNB ACC.1, DAT_1
       JNB  ACC.3,NZMINSZ11
       JB  ACC.0 ,NZDATSZ1
       LCALL  INC_NZDATSZ
       MOV  TIMEBUF+9,A
NZDATSZ1:
       MOV  R0, #TIMEBUF+9
       MOV  R1,#0BH
       LCALL    WR_PCF8563
       LCALL    QUANLING
       DJNZ     R4  ,NZDATSZ_
       AJMP     REREAD
INC_NZDATSZ:
       MOV  R4,#10H
       MOV   A ,R7
       ADD   A,#01H
       DA    A
       MOV   R7,A
       SUBB  A,#32H
       JC   DATNEXT
       MOV  R7,#00H
DATNEXT:  
       MOV  A,  R7
       RET
NZMINSZ11:
       LCALL KEY
       LJMP  NZMINSZ
DAT_1: LCALL KEY
       MOV  CNTRL1, #02H 
       MOV  R0 ,#CNTRL1
       MOV  R1 ,#01H
       LCALL   WR_PCF8563
       LJMP  REREAD
;************延时程序*******************
;延时程序
;***************************************
DL10MS:
           MOV  R5,  #100
DELAY1:    MOV  R6,  #100
           DJNZ  R6,  $
           DJNZ   R5, DELAY1
                RET
;***********显示年月日子程序*************
;显示年月日子程序
;****************************************
DISP_NUM:
        PUSH            02H
        MOV      R0,#TIMEBUF       ;指向读出数据缓冲区首地址
        LCALL    RD_PCF8563        ;读时钟、日期数据
        MOV      A,TIMEBUF         ;秒单元      
        ANL      A,#7FH            ;屏蔽数据无关位
        MOV      TIMEBUF,A         
        MOV      A,TIMEBUF+1       ;分单元
        ANL      A,#7FH
        MOV      TIMEBUF+1,A
        MOV      A,TIMEBUF+2       ;小时
        ANL      A,#3FH
        MOV      TIMEBUF+2,A
        MOV      A,TIMEBUF+3       ;天
        ANL      A,#3FH
        MOV      TIMEBUF+3,A
        MOV      A,TIMEBUF+4       ;星期
        ANL      A,#07H
        MOV      TIMEBUF+4,A
        MOV      A,TIMEBUF+5       ;月份
        ANL      A,#1FH
        MOV             TIMEBUF+5,A
        MOV             A,TIMEBUF+7
        ANL             A,#7FH
        MOV             TIMEBUF+7,A
        MOV             A,TIMEBUF+8
        ANL             A,#3FH
        MOV             TIMEBUF+8,A
        MOV             A,TIMEBUF+9
        ANL             A,#3FH
        MOV             TIMEBUF+9,A
        MOV     A,TIMEBUF+3      ;对天的处理
        ANL   A,#0FH
        MOV             LEDBUF1,A        ;低四送显示缓冲器                       
        MOV             A,TIMEBUF+3
        SWAP            A
        ANL             A,#0FH    
        MOV             LEDBUF2,A        ;高四位送显示缓冲器
        
        MOV             A,TIMEBUF+5      ;对月的处理
        ANL             A,#0FH
        MOV             LEDBUF3,A 
                      
        MOV      A,TIMEBUF+5
        SWAP     A
        ANL   A,#0FH  
        MOV      LEDBUF4,A
 
        MOV     A,TIMEBUF+6      ;对年的处理
        ANL   A,#0FH
        MOV             LEDBUF5,A         ;低四送显示缓冲器                       
        MOV             A,TIMEBUF+6
        SWAP            A
        ANL             A,#0FH      
        MOV             LEDBUF6,A        ;高四位送显示缓冲器
        
        LCALL    DISPNUMBER      ;调显示程序
        LCALL    DELAY           ;延时 
        POP             02H
        RET
;**************显示时间的子程序************************
;显示时间的子程?
;******************************************************
TIME: 
        PUSH            02H
        MOV      R0,#TIMEBUF       ;指向读出数据缓冲区首地址
        LCALL    RD_PCF8563        ;读时钟、日期数据
        MOV      A,TIMEBUF         ;秒单元      
        ANL      A,#7FH            ;屏蔽数据无关位
        MOV      TIMEBUF,A         
        MOV      A,TIMEBUF+1       ;分单元
        ANL      A,#7FH
        MOV      TIMEBUF+1,A
        MOV      A,TIMEBUF+2       ;小时
        ANL      A,#3FH
        MOV      TIMEBUF+2,A
        MOV      A,TIMEBUF+3       ;天
        ANL      A,#3FH
        MOV      TIMEBUF+3,A
        MOV      A,TIMEBUF+4       ;星期
        ANL      A,#07H
        MOV      TIMEBUF+4,A
        MOV      A,TIMEBUF+5       ;月份
        ANL      A,#1FH
        MOV             TIMEBUF+5,A
        MOV             A,TIMEBUF+7
        ANL             A,#3FH
        MOV             TIMEBUF+7,A
        MOV             A,TIMEBUF+8
        ANL             A,#3FH
        MOV             TIMEBUF+8,A
        MOV             A,TIMEBUF+9
        ANL             A,#3FH
        MOV             TIMEBUF+9,A
      
        JB             FLAG,BUJIASHI
        LJMP           JIASHI
BUJIASHI:
        MOV     A,TIMEBUF+1       ;对分的处理
        ANL   A,#0FH
        MOV             LEDBUF1,A         ;低四送显示缓冲器                       
        MOV             A,TIMEBUF+1
        SWAP            A
        ANL             A,#0FH   
        MOV             LEDBUF2,A        ;高四位送显示缓冲器
        MOV             A,TIMEBUF+2      ;对小时的处理
        ANL             A,#0FH 
        MOV             LEDBUF3,A 
                
        MOV      A,TIMEBUF+2
        SWAP     A
        ANL   A,#0FH 
        MOV      LEDBUF4,A
        MOV     A,TIMEBUF+4      ;对星期的处理
        ANL   A,#0FH
        MOV             LEDBUF5,A         ;低四送显示缓冲器 
                      
        MOV             A,TIMEBUF+4
        SWAP            A
        ANL             A,#0FH   
        MOV             LEDBUF6,A        ;高四位送显示缓冲器
XIANSHI:
        LCALL    DISPNUMBER      ;调显示程序
        LCALL    DELAY           ;延时
        LCALL  DL10MS
        POP     02H
 RET
;***********************************************
;加小数点显示时间
;************************************************
JIASHI:
        MOV     A,TIMEBUF+1       ;对分的处理
        ANL   A,#0FH
        JB              FLAG1,NO_ADD1      ;依据标志位判断是否对小数点进行显示
        ADD             A,#0AH                          
NO_ADD1:
        MOV             LEDBUF1,A         ;低四送显示缓冲器                       
        MOV             A,TIMEBUF+1
        SWAP            A
        ANL             A,#0FH
        JB              FLAG1,NO_ADD2      ;依据标志位判断是否对小数点进行显示
        ADD             A,#0AH                          
NO_ADD2:   
        MOV             LEDBUF2,A        ;高四位送显示缓冲器
        MOV             A,TIMEBUF+2      ;对小时的处理
        ANL             A,#0FH
        JB              FLAG1,NO_ADD3      ;依据标志位判断是否对小数点进行显示
        ADD             A,#0AH                          
NO_ADD3: 
        MOV             LEDBUF3,A 
                
        MOV      A,TIMEBUF+2
        SWAP     A
        ANL   A,#0FH
        JB              FLAG1,NO_ADD4      ;依据标志位判断是否对小数点进行显示
        ADD             A,#0AH                          
NO_ADD4: 
        MOV      LEDBUF4,A
        MOV     A,TIMEBUF+4      ;对星期的处理
        ANL   A,#0FH
        JB              FLAG1,NO_ADD5      ;依据标志位判断是否对小数点进行显示
        ADD             A,#0AH                          
NO_ADD5:
        MOV             LEDBUF5,A         ;低四送显示缓冲器 
                      
        MOV             A,TIMEBUF+4
        SWAP            A
        ANL             A,#0FH
        JB              FLAG1,NO_ADD6      ;依据标志位判断是否对小数点进行显示
        ADD             A,#0AH                          
NO_ADD6:   
        MOV             LEDBUF6,A        ;高四位送显示缓冲器
        CPL      FLAG1            ;标志位取反
        LJMP       XIANSHI
;*************************************************
;显示全零子程序
;***********************************************
QUANLING:
        PUSH            02H
        MOV      R0,#TIMEBUF       ;指向读出数据缓冲区首地址
        LCALL    RD_PCF8563        ;读时钟、日期数据
        MOV      A,TIMEBUF         ;秒单元      
        ANL      A,#7FH            ;屏蔽数据无关位
        MOV      TIMEBUF,A         
        MOV      A,TIMEBUF+1       ;分单元
        ANL      A,#7FH
        MOV      TIMEBUF+1,A
        MOV      A,TIMEBUF+2       ;小时
        ANL      A,#3FH
        MOV      TIMEBUF+2,A
        MOV      A,TIMEBUF+3       ;天
        ANL      A,#3FH
        MOV      TIMEBUF+3,A
        MOV      A,TIMEBUF+4       ;星期
        ANL      A,#07H
        MOV      TIMEBUF+4,A
        MOV      A,TIMEBUF+5       ;月份
        ANL      A,#1FH
        MOV             TIMEBUF+5,A
        MOV             A,TIMEBUF+7
        ANL             A,#7FH
        MOV             TIMEBUF+7,A
        MOV             A,TIMEBUF+8
        ANL             A,#3FH
        MOV             TIMEBUF+8,A
        MOV             A,TIMEBUF+9
        ANL             A,#3FH
        MOV             TIMEBUF+9,A
        MOV     A,TIMEBUF+7       ;对分的处理
        ANL   A,#0FH
        MOV             LEDBUF1,A         ;低四送显示缓冲器                       
        MOV             A,TIMEBUF+7
        SWAP            A
        ANL             A,#0FH   
        MOV             LEDBUF2,A        ;高四位送显示缓冲器
        MOV             A,TIMEBUF+8      ;对小时的处理
        ANL             A,#0FH 
        MOV             LEDBUF3,A 
                
        MOV      A,TIMEBUF+8
        SWAP     A
        ANL   A,#0FH 
        MOV      LEDBUF4,A
        MOV     A,TIMEBUF+9      ;对星期的处理
        ANL   A,#0FH
        MOV             LEDBUF5,A         ;低四送显示缓冲器 
                      
        MOV             A,TIMEBUF+9
        SWAP            A
        ANL             A,#0FH   
        MOV             LEDBUF6,A        ;高四位送显示缓冲器
        LCALL      DISPNUMBER      ;调显示程序
        LCALL      DELAY           ;延时
        POP             02H 
        RET

⌨️ 快捷键说明

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