📄 action1.inc
字号:
;***************************************************************
; 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 + -