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

📄 时钟程序0701.asm

📁 一个很好用的时钟程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
          MOV    4AH,#01H
          MOV    4BH,#01H
          MOV    4CH,#01H
          JMP    MUSIC_QU
 MUSIC_1: MOV    4AH,#0FFH
          JMP    MUSIC_QU
 MUSIC_2: MOV    4AH,#0FFH
          MOV    4BH,#0FFH
 MUSIC_QU:RET

;************************************************************************************
XS_OUT:   MOV    R4,#08H
XS_OUT_1: RRC    A
          MOV    DI,C
          SETB   CK
          CLR    CK
          DJNZ   R4,XS_OUT_1
          RET
;*************************************************************************************

;*************************************************************************************
WU_NUMBER:INC    49H


WU_1:     MOV    A,INTENSITY
          XRL    A,#1
          JNZ    WU_2
          MOV    A,49H
          XRL    A,#2
          JNZ    WU_1A
          CLR    WUQI           ;雾化10毫秒后停止雾化
          JMP    WU_QU
WU_1A:    MOV    A,49H
          XRL    A,#10
          JNZ    WU_QU
          MOV    49H,#00H       ;停止40毫秒后清计数开始10毫秒雾化
          SETB   WUQI

WU_2:     MOV    A,INTENSITY
          XRL    A,#2
          JNZ    WU_3
          MOV    A,49H
          XRL    A,#4
          JNZ    WU_2A
          CLR    WUQI           ;雾化20毫秒后停止雾化
          JMP    WU_QU
WU_2A:    MOV    A,49H
          XRL    A,#10
          JNZ    WU_QU
          MOV    49H,#00H       ;停止30毫秒后清计数开始20毫秒雾化
          SETB   WUQI

WU_3:     MOV    A,INTENSITY
          XRL    A,#3
          JNZ    WU_4
          MOV    A,49H
          XRL    A,#6
          JNZ    WU_3A
          CLR    WUQI           ;雾化30毫秒后停止雾化
          JMP    WU_QU
WU_3A:    MOV    A,49H
          XRL    A,#10
          JNZ    WU_QU
          MOV    49H,#00H       ;停止20毫秒后清计数开始30毫秒雾化
          SETB   WUQI

WU_4:     MOV    A,INTENSITY
          XRL    A,#4
          JNZ    WU_5
          MOV    A,49H
          XRL    A,#8
          JNZ    WU_4A
          CLR    WUQI           ;雾化35毫秒后停止雾化
          JMP    WU_QU
WU_4A:    MOV    A,49H
          XRL    A,#10
          JNZ    WU_QU
          MOV    49H,#00H       ;停止15毫秒后清计数开始35毫秒雾化
          SETB   WUQI

WU_5:     MOV    A,INTENSITY
          XRL    A,#5
          JNZ    WU_QU
          MOV    49H,#00H        ;第五档全高电平脉宽控制雾化
          SETB   WUQI


WU_QU:    RET
;**************************************************************************************
;************************************
;************************************
WWDT:   CLR    SCK
        SETB   EECS
        CLR    EECS
        MOV    A,#06H
        NOP
        CALL    WRITE
        CLR     SCK
        SETB    EECS
        CLR     EECS
        MOV     A,#01H
        CALL    WRITE
        MOV     A,#18H
        CALL    WRITE
        CLR     SCK
        SETB    EECS
        PUSH    07H
        MOV     R7,#200
WRITEB: CALL    READA
        JNB     ACC.0,ITEB
        DJNZ    R7,WRITEB
ITEB:   NOP
        NOP
        POP     07H
        RET
;*********************************************
;*********************************************
READA:  CLR     SCK
        CLR     EECS
        MOV     A,#05H
        NOP
        NOP
        CALL    WRITE
        NOP
        NOP
        CALL    READ
        CLR     SCK
        SETB    EECS
        RET
;*********************************************
;*********************************************
REEPROM:MOV     A,#03H
        CLR     SCK
        CLR     EECS
        CALL    WRITE
        MOV     A,R0
        CALL    WRITE
READC:  CALL    READ
        MOV     @R0,A
        INC     R0
        DJNZ    R6,READC
        CLR     SCK
        SETB    EECS
        RET
;*********************************************
;*********************************************
WEEPROM:CLR     SCK
        CLR     EECS
        MOV     A,#06H
        CALL    WRITE
        SETB    EECS
        CLR     EECS
        MOV     A,#02H
        CALL    WRITE
        MOV     A,R0
        CALL    WRITE
WEER:   MOV     A,@R0
        CALL    WRITE
        INC     R0
        DJNZ    R6,WEER
        CLR     SCK
        SETB    EECS
        PUSH    07H
        MOV     R7,#200
WEEP:   CALL    READA
        JB      ACC.0,WROM
        DJNZ    R7,WEEP
WROM:   NOP
        NOP
        POP     07H
        RET

;*****************************************
;*****************************************
READ:   PUSH    07H
        SETB    SO
        MOV     R7,#08H
READ1:  SETB    SCK
        CLR     SCK
        MOV     C,SO
        RLC     A
        DJNZ    R7,READ1
        POP     07H
        RET

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

WRITE:  PUSH    07H
        MOV     R7,#08H
WRIT1:  CLR     SCK
        RLC     A
        MOV     SI,C
        SETB    SCK
        DJNZ    R7,WRIT1
        CLR     SI
        POP     07H
        RET
;**************************************************************************************
TEST_EEPROM:
          MOV    2FH,#01H
          MOV    A,2FH
          MOV    B,A
          MOV    R0,#2FH
          MOV    R6,#1
          CALL   WEEPROM
          NOP
          NOP
          MOV    2FH,#00H
          NOP
          NOP
          MOV    R0,#2FH
          MOV    R6,#1
          CALL   REEPROM
          MOV    A,B
          XRL    A,2FH
          JZ     TEST_EEPROM_QU
          MOV    30H,#00H          ;第1位数码管内容
          MOV    31H,#9EH          ;第2位数码管内容
          MOV    32H,#0AH          ;第3位数码管内容
          MOV    33H,#60H          ;第4位数码管内容
          MOV    34H,#00H          ;秒闪亮与不亮
          MOV    40H,#0BFH         ;点亮第1位数码管
          MOV    41H,#0DFH         ;点亮第2位数码管
          MOV    42H,#0EFH         ;点亮第3位数码管
          MOV    43H,#0F7H         ;点亮第4位数码管
          MOV    44H,#0DFH         ;秒闪指示
          MOV    45H,#0FFH         ;点亮时间指示灯(0FB)
          MOV    46H,#0FFH         ;点亮总时间指示灯0FD)
          MOV    47H,#0FFH         ;点亮温度指示灯(0FE)
          MOV    48H,#0FFH
          JMP    TEST_EEPROM
TEST_EEPROM_QU:
          RET
;*******************************************
TEST_TEMP:
          JB     P0.1,TEST_TEMP_QU
          MOV    30H,#00H          ;第1位数码管内容
          MOV    31H,#9EH          ;第2位数码管内容
          MOV    32H,#0AH          ;第3位数码管内容
          MOV    33H,#0DAH          ;第4位数码管内容
          MOV    34H,#00H          ;秒闪亮与不亮
          MOV    40H,#0BFH         ;点亮第1位数码管
          MOV    41H,#0DFH         ;点亮第2位数码管
          MOV    42H,#0EFH         ;点亮第3位数码管
          MOV    43H,#0F7H         ;点亮第4位数码管
          MOV    44H,#0DFH         ;秒闪指示
          MOV    45H,#0FFH         ;点亮时间指示灯(0FB)
          MOV    46H,#0FFH         ;点亮总时间指示灯0FD)
          MOV    47H,#0FFH         ;点亮温度指示灯(0FE)
          MOV    48H,#0FFH
          JMP    TEST_TEMP
TEST_TEMP_QU:
          RET
;*******************************************
TEST_WATER:
          JNB    P3.5,TEST_WATER_QU
          MOV    30H,#00H          ;第1位数码管内容
          MOV    31H,#9EH          ;第2位数码管内容
          MOV    32H,#0AH          ;第3位数码管内容
          MOV    33H,#0F2H          ;第4位数码管内容
          MOV    34H,#00H          ;秒闪亮与不亮
          MOV    40H,#0BFH         ;点亮第1位数码管
          MOV    41H,#0DFH         ;点亮第2位数码管
          MOV    42H,#0EFH         ;点亮第3位数码管
          MOV    43H,#0F7H         ;点亮第4位数码管
          MOV    44H,#0DFH         ;秒闪指示
          MOV    45H,#0FFH         ;点亮时间指示灯(0FB)
          MOV    46H,#0FFH         ;点亮总时间指示灯0FD)
          MOV    47H,#0FFH         ;点亮温度指示灯(0FE)
          MOV    48H,#0FFH
          JMP    TEST_WATER
TEST_WATER_QU:
          RET
;**************************************************************************************
BEGIN:    MOV    20H,#00H
          MOV    21H,#00H          ;开机在时间档
          MOV    22H,#01H           ;按键不能有变化
          MOV    23H,#01H
          MOV    24H,#01H
          MOV    25H,#01H
          MOV    26H,#01H
          MOV    27H,#01H
          MOV    28H,#01H
          MOV    29H,#01H

          MOV    49H,#00H          ;49H为20MS中断次数计数单元
          MOV    4AH,#01H          ;音乐片终止软延时时限
          MOV    4BH,#01H
          MOV    4CH,#01H
          MOV    4EH,#01H          ;开机返回时限到时间显示
          MOV    4FH,#01H
          MOV    53H,#0FCH
          MOV    54H,#0FCH
          MOV    57H,#0FCH
          MOV    58H,#0FCH
          MOV    2EH,#01H
          MOV    2FH,#01H
          NOP
          NOP
          MOV    R0,#60H
          MOV    R6,#8
          CALL   REEPROM           ;开机复位读EEPROM数据
          MOV    R0,#68H
          MOV    R6,#8
          CALL   REEPROM
          NOP
          NOP
          NOP
          NOP
          MOV    30H,#0FEH          ;第1位数码管内容
          MOV    31H,#0FEH          ;第2位数码管内容
          MOV    32H,#0FEH          ;第3位数码管内容
          MOV    33H,#0FEH          ;第4位数码管内容
          MOV    34H,#01H          ;秒闪亮与不亮

          MOV    40H,#0BFH         ;点亮第1位数码管
          MOV    41H,#0DFH         ;点亮第2位数码管
          MOV    42H,#0EFH         ;点亮第3位数码管
          MOV    43H,#0F7H         ;点亮第4位数码管
          MOV    44H,#0DFH         ;秒闪指示
          MOV    45H,#0FBH         ;点亮时间指示灯(0FB)
          MOV    46H,#0FDH         ;点亮总时间指示灯0FD)
          MOV    47H,#0FEH        ;点亮温度指示灯(0FE)
          MOV    48H,#7FH
          CALL   DELAY
          CALL   DELAY
          CALL   DELAY            ;整机复位时测试数码管
          NOP
          NOP
          SETB   TIME              ;档位指示灯处理
          SETB   EA
          SETB   PT2
          CLR    PT0
          CLR    PT1
          SETB   ET0
          SETB   TR0
          SETB   ET1
          CLR    TR1
          SETB   ET2
          CLR    TR2
          ;SETB   00H              ;开机为待机状态
          CLR    02H              ;运行状态标志
          CLR    03H              ;开机暂停状态
          CLR    05H              ;开机没有调整时间
          CLR    06H              ;防抖标志
          SETB   07H              ;开机秒闪指示灯亮
          MOV    34H,#01H
          CLR    PTC              ;开机关PTC
          CLR    WUZH             ;雾化转换
          CLR    MOTOR            ;开机关风扇
          CLR    WUQI             ;开机关雾化
          CLR    BEE              ;关音乐

          RET
;*****************************************************************************
;*****************************************************************************
 MED_TIME:
          MOV    A,MED_H
          XRL    A,#00H
          JNZ    MED_TIME_1       ;药量高字节为0?
          MOV    A,MED_L
          XRL    A,#0
          JZ     MED_TIME_NO      ;高低字节都为0清时间
MED_TIME_1:
          MOV    A,INTENSITY
          XRL    A,#1
          JNZ    MED_TIME_2
          CALL   MED_TIME_1A
          RET
MED_TIME_2:
          MOV    A,INTENSITY
          XRL    A,#2
          JNZ    MED_TIME_3
          CALL   MED_TIME_2A
          RET
MED_TIME_3:
          MOV    A,INTENSITY
          XRL    A,#3
          JNZ    MED_TIME_4
          CALL   MED_TIME_3A
          RET
MED_TIME_4:
          MOV    A,INTENSITY
          XRL    A,#4
          JNZ    MED_TIME_5
          CALL   MED_TIME_4A
          RET
MED_TIME_5:
          MOV    A,INTENSITY
          XRL    A,#5
          JNZ    MED_TIME_QU
          CALL   MED_TIME_5A
          RET

          JMP    MED_TIME_QU
MED_TIME_NO:
          MOV    A,#00H
          MOV    MINUTE_STEP,A           ;没有药量清时间
          MOV    MINUTE_SET,A
MED_TIME_QU:
          RET
;****************************
MED_TIME_1A:                          ;档位一的药量转换为时间的计算
          CALL   MED_TIME_MUL10     ;X10后再转换为十六进制
          MOV    R4,3AH
          MOV    R5,3BH
          MOV    R7

⌨️ 快捷键说明

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