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

📄 acm6501.asm

📁 一个完整的空调柜机程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                CALL            !PRESS2S
                CALL            !TIMERCHECK
                CALL            !DOG
MAIN4:          BF          TIMERF,$MAIN2
                CLR1        TIMERF
;                BBC         SVANEF,MAIN3
                BT          TRYRUNF,$MAIN3_0
                CALL        !DISVANE
MAIN3:
MAIN2:          BT		TRYRUNF,$MAIN3_0
		CALL            !VANEDO
MAIN3_0:        CALL            !DOG
                CALL            !KEYSCAN_164
                BF          ADKEYSTAF,$REMOTE
                CLR1        ADKEYSTAF
                CALL        !ADKEYDEAL

REMOTE:         BF         RECENDF,$MAIN1
                CLR1        RECENDF
;                SET1            LIGHT10SF
                SET1            LIGHT
                MOV             LIGHT10SC,#0H
                CALL        !RECVDEAL

MAIN1:          CALL            !SLEEP
;                CALL        !KEYSCAN
                BT          TRYRUNF,$NOMAINPRO
                CALL        !MAINPRO
NOMAINPRO:
;                BBS         TRYRUNF,START0
;                BBC         LCDCHF,START0
                BF             DISERRF,$NODISCH
                CALL            !DISERR
                CALL            !DOG

NODISCH:        CALL            !INITIAL
                BF      LIGHT,$NOBUZ
                MOV     A,#00001001B
NOBUZ1:         MOV     B,#09H
                CALL    !LCD_WRITE
                MOV     A,#10001000B    ;IRQ EN
                MOV     B,#09H
                CALL    !LCD_WRITE

;                MOV     A,#00000111B    ;WDT EN
;                MOV     B,#09H
;                CALL    !LCD_WRITE      ;SET ON/OFF LED ON

                BT      LED,$NOLED
                MOV     A,#00001110B
NOLED1:
                MOV     B,#09H
                CALL    !LCD_WRITE

                BT      TRYRUNF,$START0_L
                CALL    !DATAW_INITIAL
                MOVW    HL,#LCDRAM
GORAMTOLCD:     MOV     A,[HL]
                INC     L
                MOV     B,#08H
                CALL      !LCD_WRITE
                MOV     A,L
                CMP     A,#LOW LCDRAM+12
                BNZ     $GORAMTOLCD
START0_L:
                BR              !START0

NOBUZ:          MOV     A,#00001000B
                BR      !NOBUZ1
NOLED:          MOV     A,#00000111B
                BR      !NOLED1

;*********************HOST MAIN PROGRAM*************************
SUB2            CSEG    UNIT
MAINPRO:
                BF             SONF,$OFFMCU
                BR              !ONMCU
OFFMCU:         
                CLR1            LED                    ;ON/OFF LED
                CLR1            SECONDF
                CLR1            DISTMP5SF
                MOV             DISTMP5SC,#0H
;                CLR1            RB.3
                CLR1            SEG15.2

                CLR1            AUTOSECOF
;                CLR1            SETTEMPF
;                CALL            !CLRFLG_AUTO

                CALL            !CLRAUTOFAN

                CLR1            DRYSECOF
                CLR1            DRY30SF
                MOV             DRY30SC,#0H
                CLR1            DRYMF
                CLR1            DRY4MF
                CLR1            DRY10MF
;;;                LDM             DRYMC,#0H
;;;                LDM             DRYMC+1,#0H

                MOV             SEG27,#0H
                SET1            SEG27.3
                MOV             SEG25,#0H
                MOV             SEG23,#0H
                MOV             SEG21,#0H
                MOV             SEG19,#0H
                MOV             SEG17,#0H

;                CLR1            RB.4

                BF              SSLEEPF,$NOSLEEP1
                CLR1            SSLEEPF
;                MOV             SLEEPC,#0H
;                MOV             SLEEPC+1,#0H
;                CALL            !SLETMPLD
                MOV             A,SSTEMP
                MOV             TEMPBUF,A

NOSLEEP1:       CALL            !CLRFLG_COOL
                CALL            !CLRFLG_WARM
                CLR1            VALOFF1MF
                CLR1            P4F
                BF              STF,$NOVALOFF
                SET1            VALOFF1MF

NOVALOFF:       BF             FANOFFF,$GOOFFMCU1
                RET
GOOFFMCU1:      BT             SDRYF,$COOLOFF
                BT             SFANMF,$COOLOFF1
                BT             SAUTOF,$AUTOOFF
                BT             SCOOLF,$COOLOFF
WARMOFF:        CALL            !CLRFLG_AUTO
                CLR1            EXTFAN
                BF              COMP,$FANOFF
                CLR1            COMP
;;;;                CLR1            EXTFAN
                SET1            COMP3MF
                CLR1            COMP3MY
                MOV             COMP3MC,#0H

FANOFF:         BR              $DJROFFFAN
;                BF             FANOFFF,DJROFFFAN
;                RET
AUTOOFF:        SET1            FANOFFF
                BT              GOWARMF,$WARMOFF
                CALL            !CLRFLG_AUTO
COOLOFF:        BF              COMP,$COOLOFF1
                CLR1            COMP
                CLR1            EXTFAN
                SET1            COMP3MF
                CLR1            COMP3MY
                MOV             COMP3MC,#0H
;                RET
COOLOFF1:       SET1            WARMFIRSTF
                CLR1            DJR
                CLR1            HFAN
                CLR1            LFAN
                CLR1            MFAN
                RET
DJROFFFAN:      SET1            FANOFFF
                BT              WARMFIRSTF,$NOOFFAN
                SET1            WARMFIRSTF
                BF              DJR,$OFFFAN
                CLR1            DJR
;                CLR1            SEG27.6
                SET1            FANDELAY10SF
                SET1            LFAN
                CLR1            HFAN
                CLR1            MFAN
                RET
OFFFAN:         BT             PIPERRF,$PIPERRFAN20S

                CMP             PIPTEMP,#0F0H
                BNC             $NOOFFAN

;;;;                LDA             PIPTEMP
                CMP             PIPTEMP,#28
                BC              $NOOFFAN
                CMP             PIPTEMP,#33
                BC              $OFFCUIYURE
PIPERRFAN20S:   SET1            FANDELAY20SF
                RET
;DEFROOFF:       CLR1            DEFROSTF
;                CLR1            SEG5.6
;                BR             OFFFAN
OFFCUIYURE:     SET1            LFAN
                CLR1            HFAN
                CLR1            MFAN
                SET1            FANDELAY20SF
                RET
NOOFFAN:        CLR1            LFAN
                CLR1            HFAN
                CLR1            MFAN
;;;;;;;                CLR1                    RB.3
;                CLR1            RB.4
                CLR1            FANDELAY20SF
                MOV             FANDELAY20SC,#0H
                RET

;;;;;;;ON MCU;;;;;;;;;;;;;;;;;;

ONMCU:          SET1            LED

                CALL            !DISPTEMP
                CALL            !DISPFAN

                CLR1            FANOFFF
                CLR1            FANDELAY10SF
                MOV             FANDELAY10SC,#0H
                CLR1            FANDELAY20SF
                MOV             FANDELAY20SC,#0H

;                BF             AUTOFANF,DISLFAN1
;                MOV             SEG17,#00001100B
;                BR             DISFANEND
;DISLFAN1:       BF             SFANLF,DISHFAN
;                CLR1            SEG17.7
;                CLR1            SEG17.0
;                BR             DISLFAN
;DISHFAN:        SET1            SEG17.7
;                SET1            SEG17.0
;DISLFAN:        SET1            SEG17.1
;                SET1            SEG17.2
;
DISFANEND:      CLR1            FANDELAY10SF
                MOV             FANDELAY10SC,#0H
                CLR1            FANDELAY20SF
                MOV             FANDELAY20SC,#0H

MODESELECT:     BF             SAUTOF,$MODESELECT1
                BR             !SAUTO
MODESELECT1:    BF             SCOOLF,$MODESELECT2
                BR             !SCOOL
MODESELECT2:    BF             SDRYF,$MODESELECT3
                BR             !SDRY
MODESELECT3:    BF             SFANMF,$MODESELECT40
                BR             !SFANMODE
MODESELECT40:   BR             !MODESELECT4
AUTOROMERR_L:   BR              !AUTOROMERR
SAUTO:          CLR1            SEG27.7
                CLR1            SEG25.0
                CLR1            SEG25.1
                CLR1            SEG25.2
                SET1            SEG25.3
                BT             ROMERRF,$AUTOROMERR_L
                BF             P4F,$NOP4
                CLR1           P4F
                CLR1            VALOFF1MF
NOP4:           BT             COMP,$CLRAUTO
                BT             COMP10MY,$GONOP4
                SET1            COMP30MF
GONOP4:         BF             AUTOSECOF,$GONOP4_11
                BR             !AUTOSECO 
GONOP4_11:      SET1		AUTOFAN30SY
		CLR1		AUTOFAN30SF
		MOV		AUTOFAN30SC,#0H
                SET1            AUTOSECOF
                SET1            WARMFIRSTF
                CMP             ROMTEMP,#0F0H      
                BNC             $HERE11
                MOV             A,ATEMP
                CMP             A,ROMTEMP
                BZ              $AUTOCOOL
                BC              $SCOOL00_13
HERE11:         BT             GOWARMF,$SWARM000
                BF             COMP5MF,$SWARM000
                CLR1           AUTOSECOF
                BR             !AUTOCONSTA
CLRAUTO:        CLR1            COMP30MF
                CLR1            COMP30MY
                CLR1            COMP10MY
                MOV             COMP30MC,#0H
                MOV             COMP30MC+1,#0H
                BR             !GONOP4
SWARM000:                
                BF             GOCOOLF,$SWARM00_1
                CALL            !CLRFLG_COOL
                CALL            !NOCOMP5M
SWARM00_1:      SET1            GOWARMF
                CLR1            GOCOOLF
                BR             !SWARM0
SCOOL00_13:     BT             GOCOOLF,$SCOOL00
                BF             COMP5MF,$SCOOL00
AUTOCONSTA_11:  CLR1           AUTOSECOF
                BR             !AUTOCONSTA                

AUTOCOOL:       BT            COMP5MF,$AUTOCONSTA_11
                BF             GOWARMF,$AUTOWARM0
                CALL            !CLRFLG_WARM
                CALL			!NOCOMP5M
AUTOWARM0:      SET1            GOCOOLF
                CLR1            GOWARMF
;                BF             COMP,SWARM00
;                CLR1            COMP
;                CLR1            EXTFAN
;                SET1            COMP3MF
;                CLR1            COMP3MY
                 BF              STF,$GOSCOOL00
                 SET1                    VALOFF1MF
GOSCOOL00:      BR               !SCOOL0
AUTOROMERR:     CALL            !NOCOMP5M
                CALL            !CLRFLG_COOL
                CALL            !CLRFLG_WARM
                CALL            !CLRFLG_AUTO
                CLR1			AUTOSECOF
                BF             STF,$AUTOROMERR1
                SET1            VALOFF1MF
AUTOROMERR1:    SET1            LFAN
                CLR1            MFAN
                CLR1            HFAN
                SET1            P4F
                CLR1		WAITMCUF
                SET1		SEG27.3
                RET

SWARM00:        BR              !SWARM0                
SCOOL00:        BF             GOWARMF,$SCOOL00_1
                CALL            !CLRFLG_WARM
                CALL            !NOCOMP5M
SCOOL00_1:      SET1            GOCOOLF
                CLR1            GOWARMF
                BF             STF,$SCOOL00_2
                SET1            VALOFF1MF
SCOOL00_2:      BR             !SCOOL0

AUTOSECO:       CMP             ROMTEMP,#0F0H
                BNC             $HERE22
                MOV             A,ATEMP
                CMP             A,ROMTEMP
                BZ              $AUTOCONSTA
                DEC             A
                CMP             A,ROMTEMP
                BZ              $AUTOCONSTA
                BNC             $AUTOSECO1
                INC             A
                INC             A
                CMP             A,ROMTEMP
                BZ              $AUTOCONSTA
                BC              $AUTOSECO2
                BR             !AUTOCONSTA
AUTOSECO1:      BT             GOWARMF,$SWARM00
                MOV             A,ROMTEMP
                ADD             A,#03H
                CMP             A,ATEMP
                BC              $AUTOSECO1_0
HERE22:         BF             COMP30MY,$SET130MF
AUTOSECO1_1:    CALL            !CLRFLG_AUTO
                CALL            !CLRFLG_COOL

⌨️ 快捷键说明

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