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

📄 action1.inc

📁 使用三菱芯片开发的空调程序,具有低压保护功能
💻 INC
📖 第 1 页 / 共 4 页
字号:
;***************************************************************
; Init_action     Zhang You Lin MR 99.11.27
;
;
;***************************************************************
Init_Sfr:
        [port0]   = Initport0
        [p0dir]   = Initp0dir

        [port1]   = Initport1
        [p1dir]   = Initp1dir

        [port2]   = Initport2
        [p2dir]   = Initp2dir

        [p3dir]   = Initp3dir

        [port4]   = Initport4
        [p4dir]   = Initp4dir

        [MISRG]   = InitMISRG   ;0010H



        [BAUDRG]  =  InitBAUDRG          ;                                chen
        [SIO1CON]  =  InitSIO1CON
        [UART1CON] =  InitUART1CON

        [WDTCON]  = InitWDTCON         ;001EH   Watchdog timer control register  zanshi

        [TCSS]    = InitTCSS
        [PRE12]   = InitPRE12   ;0020H   Prescaler 12
        [Timer1]  = InitTimer1         ;0021H
        [Timer2]  = InitTimer2  ;0022H
        [Txymode] = InitTxymode ;0023H   TimerXY mode register

        [PREX]    = InitPREX    ;0024H   Prescaler X
        [TimerX]  = InitTimerX  ;0025H

        [PREY]    = InitPREY         ;0026H   Prescaler Y
        [TimerY]  = InitTimerY       ;0027H

        [IREQ1]   = InitIREQ1   ;003CH Interrupt request register 1
        [IREQ2]   = InitIREQ2  ;003DH Interrupt request register 2
        [ICON1]   = InitICON1   ;003EH Interrupt control register 1
        [ICON2]   = InitICON2   ;003FH Interrupt control register 2

        [PWMCON]  = 00H         ;002BH   PWM control register
        [PREPWM]  = 00H         ;002CH   PWM prescaler
        [PWM_Reg] = 00H         ;002DH   PWM Register

        [ADCON]   = RoomADCon   ;0034H   AD/DA control register

        [AD1]     = 00H         ;0035H   A-D conversion register1
        [AD2]     = 00H         ;0038H   A-D conversion register2

        [INTEDGE] = InitINTEDGE ;003AH Interrupt edge selection register
        [ICON2]=CommRxdCON2
        RTS
Init_Variable:
        NOP
        X=00H
        do
                [40h,X] = 00h       ;clear page 0
                X=++X
        ;while X!=0baH             ;20040914
        while X!=0bfH
        NOP
        X = 00h
        do
                [100h,X] = 00h       ;clear page 0
                X=++X
        while X!=0f0H
        [m_del3ssave]        =       00H
        [m_start3sec]        =       00h
        [CompStopMinute]     =       04H
        [CompStopSecond]     =       0F0H
        [modetime]           =       0B5H
        [m_AutoMode]         =       RUN_FAN
        [Run_mode3]          =       RUN_AUTO
        [run_mode]           =       RUN_AUTO
        [read_mode]          =       RUN_FAN
        [oldmode]            =       RUN_FAN
        [heatoffsecond]      =       78H
        [settempval]         =       25
        [mRoomActSec]        =       215;40
        [M_RoomFan]          =       30h
	[m_AutoADtime]       =       0F0h
	[rongliangselsec]    =       00h
	[nofan3min] = 00h
	[mFanChangetime] = 180         ; 20041225
	[ir1_light] = 1
	LDM     #00h,savepowertime
	NOP
        NOP
        LDM     #05H,M_20MSUP
        LDM     #01H,ADDSECOND
        LDM     #3CH,SECONDUP
        [m_Coolsave]=0B4H
        [m_CoolMin]= 0ah
        LDM     #0F0h,m_AutoADtime
;        LDM     #25H,m_20msec
        SEB     Autodel_flag
        SEB     bTestTypefirst
	[m_LEDflashCount] = 00H
	SEB	b_LEDflash

        RTS

;---------------------------------system off-------------------------
Fun_SystemStop:
            clb     Out_FanHigh

            clb     Heat
;            [ir1_sleep] = 0   ;2005-10-27 20:33
            clb     M_fan
            clb     L_fan
            clb     H_fan
																				            ;seb     fulizi  rw zht
            CLB     ice_flag
            ;CLb     recool_flag          ;20050111
            ;CLB     b_defrostFlag        ;20050825
            clb     Htemp_flag
            clb     b_stopoutfan
            LDM     #00H,coolTemp             ; 20050930
            LDM     #00h,savepowertime
            ;LDM     #00H,DefrostSec
            LDM     #00H,m_pipeLow38Sec
            [Ltemp5D_flag] = 0
            [nofan3min] = 00h       ;20050109
            [sleepMinute] = 00H
             [Lfanrunmin] = 00h     ;20050109
             [Lfanrunmin1] = 00h     ; 20050109
            [firstautofan_f] = 0
            [mRoomFanoldauto] = 0

            [runfan_flag] = 0
            [first43d_flag] = 0
            [min3_flag] = 0
            [Lfanrun] = 0
            [CaseC2s] = 0
            [Lfanrun5] = 0
            [F_41D] = 0




            ldm	    #00h,m_pipeupsec


            ldm     #00h,m_InDefrostSec


            ldm     #00h,M_DefrostMin
            ldm	    #00h,m_TpNodownSec


            [CompRunSecond] = 00H
            [m_PipeUp20Sec] = 00H
            [m_TpNodownMin] = 00h

            seb     Ltemp_flag
            ;CLB     NewAir_motor
            if [Comp] ==1
                   ldm     #00h,CompOnminute
                   SEB     b_CompStop
                   clb     Comp
            endif
            if [CompStopSecond] >= 120
                    clb     Four_valve
            endif
            rts
Outheatclearflagsub:

            CLB     b_defrostFlag
            LDM     #00H,m_pipeLow38Sec
            ldm	    #00h,m_pipeupsec
            clb     ice_flag
            clb     b_defrostFlag
            ldm     #00h,m_InDefrostSec
            ldm	    #00h,m_Defrostsec
            LDM     #00H,m_defrostCon
            ldm     #00h,M_DefrostMin
            ldm	    #00h,m_TpNodownSec

            [M_CompSumMin] = 00h
            [CompRunSecond] = 00H
            [m_PipeUp20Sec] = 00H
            [m_TpNodownMin] = 00h

            [Outdefrost_flag] = 0
            [NOcaseC38minS] = 00h
            [NOcaseC38min] = 00h



    rts


Fun_Watdog:
        if  [sigercool] == 1
                if  [m_sigercool] <= 80H
                        inc     m_sigercool
                        if  [m_sigercool] >= 10
                                 [b_SigerCool] = 0  ; 0
                         endif
                endif
        else
                [m_sigercool] = 00H
        endif
        if  [m_sigercool] <= 6
               [b_SigerCool] = 1    ; 1
        endif
        ;if [Out_watchdog] == 0
               ; seb     Out_watchdog
       ; else
               ; clb     Out_watchdog
       ; endif
        RTS

Fun_TestMode:
        CLB     M_fan           ;       .equ    2,port1
        CLB     L_fan           ;       .equ    1,port1
        SEB     H_fan           ;       .equ    3,port1
        SEB     Out_FanHigh     ;       .equ    5,port5
        SEB     Comp            ;       .equ    1,port5
        ;SEB     NewAir_motor    ;       .equ    0,port1
        RTS

TestCoolMode:
        CLB     Four_valve
        CLB     Heat            ;       .equ    4,port1
        JSR     Fun_TestMode
        RTS

TestHeatMode:
        SEB     Four_valve      ;       .equ    4,port5
        SEB     Heat            ;       .equ    4,port1
        JSR     Fun_TestMode
        RTS

;----------------------- Program action ---------------------
;  Main Program for air Conditioner
;  function: turnweit  --- turn on Mode stop 3 minuter
;------------------------------------------------------------
Fun_Action:
       if   [CompOnminute] >= 5 && [Comp] == 1
                ldm     #00h,M_LVCCount
                clb     TxdCompIflag     ;04.5.8
       endif
       if   [Comp]==1 && [m_AutoMode] == RUN_HEAT
              if [port0] & RoomFAN_Enable != 0
                 if  [b_onepulltwo] == 1     ;2006-1-3 13:42
                    if [CaseC2s] >= 2
                        seb   ice_flag
                    endif
                 endif
              endif
       endif
;       if   [irduster]==1												zht
;            if [port0] & RoomFAN_Enable != 0
;                 clb  fulizi
;             else
;                 seb  fulizi
;            endif
;       endif
       ;**************************************************感温包故障保护子程序
       if [b_sencerErrorGUAN] == 1 || [b_sencerErrorHUAN] == 1          ;20050909  add zht
                ;jsr     Fun_CompStop

                 if [Comp] == 1
			clb	Comp
			SEB     b_CompStop             ;it is no use by my determinate
                endif

       endif
       ;******************************************************************
       switch  [run_mode]
                case    RUN_AUTO        ; 0
                        if [read_mode] == RUN_AUTO
                                jsr  Fun_AutoMode
                        endif
                        break
                case  RUN_COOL          ; 1
                        SEB  Autodel_flag
                        ldm     #00H,m_AutoADtime    ;20050915
                        jsr  Fun_CoolMode
                        [m_AutoMode] = RUN_COOL      ;20050728
                        break
                case  RUN_DRY           ; 2
                        SEB     Autodel_flag
                        ldm     #00H,m_AutoADtime
                        jsr  Fun_DryMode
                        [m_AutoMode] = RUN_COOL
                        break
                case  RUN_FAN           ; 3
                        SEB     Autodel_flag
                        ldm     #00H,m_AutoADtime
                        jsr  Fun_FanMode
                        [m_AutoMode] = RUN_COOL
                        break
                case  RUN_HEAT          ; 4
                        SEB     Autodel_flag
                        ldm     #00H,m_AutoADtime
                        jsr  Fun_HeatMode
                        [m_AutoMode] = RUN_COOL
                        break
                default
                        LDM     #00H,run_mode

                        break
         ends

outact:
        rts

Fun_NewAir:

        ;IF [m_irelse] & 30h != 0  && [m_FanAction] !=0
               ; SEB     NewAir_motor
        ;else
                ;CLB     NewAir_motor
        ;endif
        RTS

turnweit:
        if [run_mode] == RUN_HEAT
             if [oldmode] ==RUN_COOL || [oldmode] == RUN_DRY
                       [modetime]=[CompStopSecond]
                       jsr   off_fan
                       seb   Ltemp_flag
             endif
             if [oldmode]== RUN_AUTO && [M_RoomTempsel] > 20
                       [modetime]=[CompStopSecond]
                       jsr   off_fan
                       seb   Ltemp_flag
             endif
         endif
         if [oldmode]== RUN_HEAT && [Comp]==1
                if [run_mode]== RUN_COOL || [run_mode]== RUN_DRY
                       [modetime]=[CompStopSecond]
                endif
         endif
         if [run_mode] == RUN_AUTO && [M_RoomTempsel] < 20           ; 1AH  2000,6,28
             if [oldmode] == RUN_COOL || [oldmode] == RUN_DRY
                       [modetime]=[CompStopSecond]
             endif
         endif
         if [run_mode]== RUN_AUTO && [M_RoomTempsel] >= 20
                if [oldmode] == RUN_HEAT  && [Comp]==1
                      [modetime]=[CompStopSecond]
                endif
         endif
         clb    trun_mode
         rts



;--------------------comp action----------------------------
Fun_CompStart:
          if [Comp_Iflag]==0 && [CompStopMinute] >= 3&& [b_sencerErrorGUAN] == 0 && [b_sencerErrorHUAN] == 0			;add zht
                if  [M_LVCCount] <= 2
                        seb     Comp
                        CLB     b_CompStop
                        clb     TxdCompIflag   ;04.5.8
                        [M_RoomTemp1] = [M_RoomTemp]             ;20050721
                        [CompStopSecond] = 00h
                        [CompStopMinute] = 00h
                endif
          endif
          RTS
;***********************************************************
; Fun_RoomFan: Power On Run 8 Minute In High
;              then Run In set_fan
;***********************************************************
Fun_RoomFan:
    lif [ir_sleep] == 0
        if  [irStrongMan] == 1 && [b_hrp] == 1
             clb     L_fan
             clb     M_fan
             seb     H_fan
             [fanspeed] = 5
        lelse
            switch   [M_RoomFan]
                case  00
                        if [firstautofan_f] == 0
                             [mRoomActSec] = 215
                             [firstautofan_f] = 1
                        endif
                        if [mRoomActSec] >= 210 && [ADconend_flag] == 1
                                JSR     Fun_AutoFan
                                ;ldm     #00h,mRoomActSec
                        endif
                        if  [port0]& 11100000B != [mRoomFanoldauto]
                              ldm     #00h,mRoomActSec
                        endif
                        [mRoomFanoldauto]= [port0]& 11100000B
                        if [mRoomFanoldauto] == 0
                             [mRoomActSec] = 215
                        endif
                        [fanspeed] = 7
                break
                case  10H
                        clb     M_fan
                        clb     H_fan
                        seb     L_fan
                        [fanspeed] = 9
                        [firstautofan_f] = 0
                        [mRoomFanoldauto] = 0
                break
                case  20H
                        clb     L_fan
                        clb     H_fan
                        seb     M_fan
                        [firstautofan_f] = 0
                        [fanspeed] = 7
                        [mRoomFanoldauto] = 0
                break
                case  30H

⌨️ 快捷键说明

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