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

📄 zly.asm

📁 开关量检测
💻 ASM
📖 第 1 页 / 共 2 页
字号:

        DIN             BIT     P1.2
        CLK             BIT     P1.4
        LOAD            BIT     P1.3
        M_CANCEL        BIT     P1.6
        M_SET           BIT     P1.7
        BEEPREG         BIT     2FH.7
        CHEND           BIT     2FH.6
        GREND           BIT     2FH.5
        ALARMREG        BIT     2FH.4
        CUALARMR        BIT     2FH.3
        ALARMSER        BIT     2FH.2
        CHALSER         BIT     2FH.1
        BEEP            BIT     P1.5
        LOW_8           BIT     P1.0
        HIGH_8          BIT     P1.1
        EXWDI           BIT     P3.2
        RELAY           BIT     P3.3
        LDATA           EQU     20H
        HDATA           EQU     21H
        INSCAN_RO       EQU     22H
        SERREG          EQU     25H
        SERBIT          EQU     26H
        GR_NUMBER       EQU     23H
        CH_NUMBER       EQU     24H
        DSPREGADD       EQU     27H
        DSPREGBIT       EQU     28H
        SUBGROUP        EQU     29H
        SUBCHAN         EQU     2AH
        TEMPSERREG      EQU     2BH
        LED_BF          EQU     50H
        ORG             0000H
        JMP             MAIN
        ORG             00B0H
        JMP             INTT0
		ORG				0100H
MAIN:        CALL		DELAY8
	     MOV        SP,             #60H
             MOV        58H,            #80H
             CLR        BEEP
             CLR        RELAY
             CLR        LOW_8
             CLR        HIGH_8
             MOV        57H,            #40H
             MOV        2CH,            #08H
             SETB       2EH.6
             CLR        2EH.7
             SETB       2EH.5
;/////////////////////添加组数和路数/////////////////////////////////////
;/////////////////////路数不能为零!/////////////////////////////////////
;////////////////////////////////////////////////////////////////////////
	         MOV        A,              #000H
             MOV        B,              #02H ;组数
             CALL       WE2PROM
             MOV        A,              #001H
             MOV        B,              #30; 第一组路数
             CALL       WE2PROM
             MOV        A,              #002H
             MOV        B,              #01; 第二组路数
             CALL       WE2PROM
             MOV        A,              #003H
             MOV        B,              #01; 第三组路数
             CALL       WE2PROM
             MOV        A,              #004H
             MOV        B,              #01; 第四组路数
             CALL       WE2PROM
;/////////////////////添加组数和路数/////////////////////////////////////
;////////////////////////////////////////////////////////////////////////
             MOV        A,              #000H
             CALL       RE2PROM
             DEC        A
             MOV        SUBGROUP,       A
             MOV        GR_NUMBER,      #01H
             MOV        A,              #001H
             CALL       RE2PROM
             MOV        SUBCHAN,        A
             MOV        CH_NUMBER,      #01H
             CLR        ALARMREG
             CLR        CUALARMR
             CLR        ALARMSER
             CLR        CHALSER
             SETB       BEEPREG
             SETB       CHEND
             SETB       GREND
             SETB       EXWDI
             MOV        SERREG,          #30H
             MOV        SERBIT,          #01H
             MOV        30H,             #000H
             MOV        31H,             #000H
             MOV        32H,             #000H
             MOV        33H,             #000H
             MOV        34H,             #000H
             MOV        35H,             #000H
             MOV        36H,             #000H
             MOV        37H,             #000H
             MOV        38H,             #000H
             MOV        39H,             #000H
             MOV        3AH,             #000H
             MOV        3BH,             #000H
             MOV        3DH,             #000H
             MOV        3EH,             #000H
             MOV        3FH,             #000H
             MOV        R0,              #30H
             MOV        A,               @R0
             MOV        TEMPSERREG,      A
             MOV        TMOD,           #01H
             MOV        TL0,            #17H
             MOV        TH0,            #0FFH
             SETB       TR0
             SETB       ET0
             SETB       EA
             MOV        R0,              #LED_BF
             MOV        @R0,             #46H
             INC        R0
             MOV        @R0,             #5BH
             INC        R0
             MOV        @R0,             #4FH
             INC        R0
             MOV        @R0,             #46H
             CALL       DISPLAY
             SJMP	    $
INTT0:        PUSH       PSW
              PUSH       ACC
              PUSH       B
              PUSH	 DPL
              PUSH	 DPH
              MOV        A,        #18H
              ORL        A,        PSW
              MOV        PSW,      A
              CLR	 TR0
	      CPL        EXWDI
              JNB        2EH.5,        GETCHECKSCAN
              JNB        2EH.6,        GETHSCAN8
              CALL       LOW8_SCAN
              JMP        SCANINPUTEND
GETHSCAN8:    CALL       HIGH8_SCAN
              JMP        SCANINPUTEND
GETCHECKSCAN: CALL       SAVESCAN
SCANINPUTEND: JB         ALARMREG,        NOCHANGE
              SETB       BEEPREG
              CLR        BEEP
              CLR        RELAY
             MOV        A,               #01H
             MOV        R0,              #LED_BF
             MOV        @R0,             A
             INC        R0
             MOV        @R0,             A
             INC        R0
             MOV        @R0,             A
             INC        R0
             MOV        @R0,             A
             CALL       DISPLAY
             CALL       KEY_SCAN
             CJNE       A,               #00H,       RNRESET
             CALL   RESSETTING
             MOV     R0,     #LED_BF
             MOV     A,      #7FH
             MOV     @R0,    A
             INC     R0
             MOV     @R0,    A
             INC     R0
             MOV     @R0,    A
             INC     R0
             MOV     @R0,    A
             CALL    DISPLAY
             JMP     RKEYPRESS
RNRESET:     CJNE       A,               #0C0H,      RKEYPRESS
             CALL       FORREAL
             CALL       CH_ALARM
             JNB        ALARMREG,          NOCHANGE
             MOV        58H,               #80H
NOCHANGE:    JB         BEEPREG,        BNOCHANGE
             CLR        BEEP
BNOCHANGE:   CALL       KEY_SCAN
             CALL       DEPOSEKEY
RKEYPRESS:   DEC        58H
             MOV        A,              58H
             JZ         COMPLETE3S
             JMP        INTRET
COMPLETE3S:  MOV        58H,            #80H
             CALL       FORREAL
             CALL       CH_ALARM
INTRET:      MOV        TMOD,           #01H
             MOV        TL0,            #9BH
             MOV        TH0,            #0FFH
             SETB       TR0
             SETB       ET0
             SETB       EA
             POP	DPH
             POP	DPL
             POP        B
             POP        ACC
             POP        PSW
             RETI
DISPLAY:        CALL   PREW7219
                CALL   OUTLED
                RET
PREW7219:       MOV     A,  #0BH
                MOV     B,  #03H
                CALL   W_7219
                MOV     A,  #09H
                MOV     B,  #00H
                CALL   W_7219
                MOV     A,  #0AH
                MOV     B,  #09H
                CALL   W_7219
                MOV     A,  #0CH
                MOV     B,  #01H
                CALL   W_7219
                RET
OUTLED:         MOV     R0,   #LED_BF
                MOV     R2,   #01H
                MOV     R1,   #04H
C_DISPLAY:      MOV     A,    @R0
                MOV     B,    A
                MOV     A,    R2
                CALL   W_7219
                INC     R0
                INC     R2
                DJNZ    R1,     C_DISPLAY
                RET
W_7219:         CLR     LOAD
                CALL   SD_7219
                MOV     A,      B
                CALL   SD_7219
                SETB    LOAD
                RET
SD_7219:        MOV     R3,     #08H
C_SD:           NOP
                NOP
                CLR     CLK
                RLC     A
                MOV     DIN,    C
                NOP
                NOP
                SETB    CLK
                DJNZ    R3,     C_SD
                RET
BCDTODSP:       MOV	    DPTR,	#DSPTAB
                MOVC    A,      @A+DPTR
                RET
KEY_SCAN:       SETB    M_CANCEL
                SETB    M_SET
                MOV     R0,      #0AH
                MOV     A,       P1
                MOV     B,       #0C0H
                ANL     A,       B
                MOV     R1,      A
RKEYSCAN:       MOV     A,       P1
                ANL     A,       B
                ANL     A,       R1
                DJNZ    R0,      RKEYSCAN
                RET
DEPOSEKEY:      CJNE    A,      #40H,   CHECKKEY1
                JNB     ALARMREG,       DESPKEYEND
                CALL   SAVESET
                CLR     ALARMREG
                MOV     R0,     #LED_BF
                MOV     A,      #01H
                MOV     @R0,    A
                INC     R0
                MOV     @R0,    A
                INC     R0
                MOV     @R0,    A
                INC     R0
                MOV     @R0,    A
                CALL   DISPLAY
                JMP    DESPKEYEND
CHECKKEY1:      CJNE    A,      #00H,   CHECKKEY2
                CALL   RESSETTING
                MOV     R0,     #LED_BF
                MOV     A,      #7FH
                MOV     @R0,    A
                INC     R0
                MOV     @R0,    A
                INC     R0
                MOV     @R0,    A

⌨️ 快捷键说明

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