📄 swing.inc
字号:
;*****************************************************************
; Swing Motor Driver Program: Orger Yellow Red Blue
; Stepper motor Port Define PORT1 bit6 bit5 bit4 bit3
;
;
;*****************************************************************
TABStepperPhase: ; 01111000B
.BYTE 01001000B
.BYTE 00001000B
.BYTE 00011000B
.BYTE 00010000B
.BYTE 00110000B
.BYTE 00100000B
.BYTE 01100000B
.BYTE 01000000B
.BYTE 01001000B
.BYTE 00001000B
.BYTE 00011000B
.BYTE 00010000B
.BYTE 00110000B
.BYTE 00100000B
.BYTE 01100000B
.BYTE 01000000B
.BYTE 00000000B
.BYTE 00000000B
FunSwingStepper:
if [ir1_onoff] == 1 ;20050913
if [ir1_swing] == 0
if [Re_former] == 1
if [Re_now] == 0
[bOpenDoormSwingStatus] = 1
[mStepperStatus] = 0
endif
endif
if [Re_former] == 0
if [Re_now] == 1
[bOpenDoormSwingStatus] = 1
[mStepperStatus] = 0
endif
endif
if [m_AutoModeold] == RUN_HEAT ;20050903
if [m_AutoMode] != RUN_HEAT
[bOpenDoormSwingStatus] = 1
[mStepperStatus] = 0
endif
else
if [m_AutoMode] == RUN_HEAT
[bOpenDoormSwingStatus] = 1
[mStepperStatus] = 0
endif
endif
[m_AutoModeold] = [m_AutoMode] ;20050903
endif
[m_ir1modeformer] = [m_ir1mode] & 00000100
endif
switch [mStepperStatus]
case 0 ;KAIMEN
if [bOpenDoormSwingStatus] == 1
JSR FunStepper35Open
endif
break
case 1
JSR FunSwingAction
break
case 2
IF [bCloseDoormSwingStatus] == 1
JSR Fun35SWingClose
ENDIF
break
Default
ldm #00H,mStepperStatus
break
ends
RTS
FunSteppFowardUP:
LDA port1
AND #StepperPort
STA mswingdrivetemp
LDX mStepPhote
LDA TABStepperPhase,X
ORA mswingdrivetemp
STA port1
inc mStepPhote ;20050728
if [mStepPhote] >= 16 ;
[mStepPhote] = 0
if [mSwingStepCon] <= 0F0H
INC mSwingStepCon
endif
endif
RTS
FunSteppBackUP:
if [mStepPhote] > 00H
DEC mStepPhote
else
[mStepPhote] = 15
if [mSwingStepCon] <= 0F0H
INC mSwingStepCon
endif
endif
if [mStepPhote] >= 16
[mStepPhote] = 0
endif
LDA port1
AND #StepperPort
STA mswingdrivetemp
LDX mStepPhote
LDA TABStepperPhase,X
ORA mswingdrivetemp
STA port1
RTS
FunSteppBackSuB:
if [mStepPhote] > 00H
DEC mStepPhote
else
[mStepPhote] = 15
if [mSwingStepCon] > 0
DEC mSwingStepCon
endif
endif
if [mStepPhote] >= 16
[mStepPhote] = 0
endif
LDA port1
AND #StepperPort
STA mswingdrivetemp
LDX mStepPhote
LDA TABStepperPhase,X
ORA mswingdrivetemp
STA port1
RTS
FunSteppForwardSuB:
inc mStepPhote
if [mStepPhote] >= 16
[mStepPhote] = 0
if [mSwingStepCon] > 0
DEC mSwingStepCon
endif
endif
LDA port1
AND #StepperPort
STA mswingdrivetemp
LDX mStepPhote
LDA TABStepperPhase,X
ORA mswingdrivetemp
STA port1
RTS
FunStepper35Open:
if [bOpenSwingOpen] == 1
if [mSwingStepCon] <= [SwingtoD];41H ;48h xiang xia kai dao zui da weizhi d
JSR FunSteppFowardUP
else
CLB bOpenSwingOpen
SEB bOpenSwingClose
endif
endif
if [bOpenSwingOpen] == 0
if [bOpenSwingClose] == 1
if [mSwingStepCon] > [SwingtoL];20H ;hui dao L weizhi
JSR FunSteppBackSuB
if [ir1_swing] == 1 ;20050803 linshi
CLB bOpenDoorflag
INC mStepperStatus
endif
else
if [mSwingStepCon] < [SwingtoL]
JSR FunSteppFowardUP
endif
if [mSwingStepCon] == [SwingtoL]
jsr FunStepperStep ;20050821
; if [ir1_swing] == 1 ;20050803 linshi
; CLB bOpenDoorflag
; INC mStepperStatus
; endif
endif
endif
endif
endif
RTS
FunSwingAction:
LDA port0
AND #RoomFAN_Enable
BEQ FunStepperStep ;ExitSwingACt
JSR Fun35SwingAction
ExitSwingACt:
RTS
FunStepperStep:
LDA port1
AND #StepperPort
STA port1
RTS
Fun35SwingAction:
if [bStepperOnmFanStatus] == 1
if [bOpenSwingOpen] == 1
if [bOpenSwingClose] == 0
if [mSwingStepCon] <= [SwingtoD]
JSR FunSteppFowardUP
else
CLB bOpenSwingOpen
SEB bOpenSwingClose
endif
endif
endif
if [bOpenSwingOpen] == 0
if [bOpenSwingClose] == 1
if [mSwingStepCon] >= [SwingtoL]
JSR FunSteppBackSuB
else
CLB bOpenSwingClose
SEB bOpenSwingOpen
endif
endif
endif
else
JSR FunStepperStep
endif
RTS
Fun35SWingClose:
if [bCloseDoormSwingStatus] == 1
if [mSwingStepConclose] < 55H
JSR FunSteppBackSuBclose
else
CLB bCloseDoormSwingStatus
JSR FunStepperStep
[mSwingStepCon] = 00H
[mSwingStepConclose] = 00H
endif
endif
RTS
FunSteppBackSuBclose:
if [mStepPhote] > 00H
DEC mStepPhote
else
[mStepPhote] = 15
if [mSwingStepConclose] < 55H
[mSwingStepConclose] = [mSwingStepConclose] + 1
ELSE
[mSwingStepCon] = 00H
rts
endif
endif
if [mStepPhote] >= 16
[mStepPhote] = 0
endif
LDA port1
AND #StepperPort
STA mswingdrivetemp
LDX mStepPhote
LDA TABStepperPhase,X
ORA mswingdrivetemp
STA port1
RTS
Fun35StartClose:
if [mStartSwingStep] > 00H
if [mStepPhote] > 00H
DEC mStepPhote
else
[mStepPhote] = 16;15 linshi
DEC mStartSwingStep
endif
if [mStepPhote] > 16;>= 16
[mStepPhote] = 00h
endif
JSR Fun_DriveStep
else
CLB bCloseDoorflag
SEB bStartClose
JSR FunStepperStep
endif
RTS
Fun_DriveStep:
LDA port1
AND #StepperPort
STA mswingdrivetemp
LDX mStepPhote
LDA TABStepperPhase,X
ORA mswingdrivetemp
STA port1
RTS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -