📄 idwraccnt.asm
字号:
; NAME count
; $include (LT0219sym.INC)
; $include (LT0219RAM.INC)
;
; CSEG
; extrn TMRremot
; extrn OFF2ON
; extrn ON2OFF
;========================================================================
PUBLIC TMcount
; PUBLIC TIMER
;************************************************************************
;* Module Name: EL001TMC *
;* Function: timer count *
;* Input: f_BAS500,f_BAS50,f_BAS125 *
;* Output: *
;* Break: *
;* stack: *
;************************************************************************
; History:
;
;------------------------------------------------------------------------
TMcount:
BF f_BAS3125,$TMcount2 ;
CLR1 f_BAS3125
CALL !BUZcnt
TNZDEC C_RMT200ms
TNZDEC C_RMTlock
cmp C_RMTroll,#0
BEQ endRMTroll
dec C_RMTroll
cmp C_RMTroll,#0
BNE endRMTroll
MOV C_RMTlock,#0
endRMTroll:
BASICt2:
DEC C_BT125m
BNZ $TMcount2
MOV C_BT125m,#4
NOP
TMcount1:
; BF f_BAS125,$TMcount2 ;
; CLR1 f_BAS125
CALL !CNT125ms
TMcount2:
BF f_BAS500,$TMcount3 ;
CLR1 f_BAS500
CALL !CNT500ms
TMcount3:
RET
;------------------------------------------------------------------------
; Count every 125ms (for control time)
;------------------------------------------------------------------------
CNT125ms:
TNZDEC C_DEF4s
DEC C_BT05s
BNZ $BASICt1
MOV C_BT05s,#4
SET1 f_BAS500
BASICt1:
RESETcnt:
CMP C_RES2s,#0 ;Reset 2 second count for VFD display all
BZ $$+2+2
DEC C_RES2s
CMP C_RMT1s,#0 ;remote 1 sec delay
BZ $$+2+2
DEC C_RMT1s
; CALL !DRYcnt
BF f_BT250ms,$CNT250ms ;250ms count for display and 750ms count
CLR1 f_BT250ms
RET
CNT250ms:
SET1 f_BT250ms
BT f_250mson,$CNT250ms1
SET1 f_250mson
BR $CNT250ms2
CNT250ms1:
CLR1 f_250mson
CNT250ms2:
END250ms:
RET
;------------------------------------------------------------------------
; Count every 500ms (for CLOCK--timer on/off)
;------------------------------------------------------------------------
CNT500ms:
TNZDEC C_AUTstp
TNZDEC C_ERRdisp
CMP C_DSP10sec,#0
BEQ ENDdspCNT
DEC C_DSP10sec
BNE ENDdspCNT
cmp M_LEDdigram,#n_DSPtonSET
BEQ TMRset10SEC
cmp M_LEDdigram,#n_TOFFset
BEQ TMRset10SEC
BRA noTMRset
TMRset10SEC:
CALL !TMRset10s
noTMRset:
MOV M_LEDdigram,#n_TMPrm
ENDdspCNT:
BF f_TIM05s,$CNT1sec
CLR1 f_TIM05s
RET
;------------------------------------------------------------------------
;========================================================================
CNT1sec: ;1 second counter
SET1 f_TIM05s
SET1 f_AD1s
TNZDEC C_ERRheat20sec
TNZDEC C_KEYerr
TNZDEC C_FAN3s
TNZDEC C_FAN60sOFF
TNZDEC C_HEAT15s
TNZDEC C_DEFpipe
TNZDEC C_HOT10s1s
TNZDEC C_AUT20s
TNZDEC C_S42m
TNZDEC C_COM5s
TNZDEC C_FRZ2m
TNZDEC C_COM3mP ;compressor 3 min protect
TNZDEC C_COM7mOFF
TNZDEC C_TRlowTP
TNZDEC C_HTR3mRUN
TNZDEC C_HTR3mP
MOVW AX,C_DEF10m
CMPW AX,#0
BEQ $+2+1
DECW AX
MOVW C_DEF10m,AX
MOVW ax,C_COM6mRUN
CMPW AX,#0
BEQ $+2+1
DECW AX
MOVW C_COM6mRUN,AX
call !DRYcnt ;[his-014]
CALL !ERRocdUP
BF f_SPD60,$NO60SPD ;NOT 60 speed
mov C_DRY1m,#0
MOV C_FAN60sOFF,#0
MOV A,C_COM3mP ;compressor 3 min ->3 sec
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_COM3mP,A
MOV A,C_COM7mOFF
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_COM7mOFF,A
mov A,C_TRlowTP
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_TRlowTP,A
MOV A,C_HTR3mRUN
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_HTR3mRUN,A
MOV A,C_HTR3mP
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_HTR3mP,A
MOV A,C_FRZ2m
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_FRZ2m,A
MOV A,C_S42m
SUB A,#60
BNC $$+2+2
XOR A,A
MOV C_S42m,A
MOV C_TMRsec,#0 ;timer 1min->1sec
MOV C_BT1min,#0 ;basic time 1 min->1 sec
MOVW AX,C_DEF10m
SUBW AX,#60
BNC $$+2+3
MOVW AX,#0
MOVW C_DEF10m,AX
MOVW AX,C_COM6mRUN
subw AX,#60
BNC $$+2+3
MOVW AX,#0
MOVW C_COM6mRUN,AX
;========================================================================
NO60SPD:
DEC C_BT5s
BNZ $CNT5Send
MOV C_BT5s,#n_5s1s
call !CNT5sec
CNT5Send:
CALL !TMRcnt
;========================================================================
CHK1min:
CMP C_BT1min,#0
BZ $CNT1min
DEC C_BT1min
BR CNT1sEND
CNT1min: ;1min counter
MOV C_BT1min,#n_1m1s-1
CALL !SLPcnt
CALL !HEATcnt
DEC C_FLTmin
CMP C_FLTmin,#0
BNE ENDfltCNT
MOV C_FLTmin,#30
MOVW AX,C_FLThour
CMPW AX,#0
BEQ $+2+1
DECW AX
MOVW C_FLThour,AX
ENDfltCNT:
TNZDEC C_TEST90min
TNZDEC C_QUCIK30min
;------------------------------------------------------------------------
CNT1sEND:
RET
;------------------------------------------------------------------------
;************************************************************************
;* Module Name: INTTM80 *
;* Function: interrupt tm80 *
;* Input: *
;* Output: *
;* Break: *
;* stack: *
;************************************************************************
; History:
;
;------------------------------------------------------------------------
INTTM80:
PUSH AX
PUSH HL
; EI
;;------------------------------------------------------------------------
;; BT f_TYPEdigit,$BUZZERdigit
; BF f_BUZon,$BUZoff
;BUZon:
; BT o_BUZ,$BUZoff
; SET1 o_BUZ
; BR $NORtm80
;BUZoff:
; CLR1 o_BUZ
; BR NORtm80
;;------------------------------------------------------------------------
;BUZZERdigit:
; BF f_BUZon,$BUZoff1
;BUZon1:
; BF o_BUZ1,$BUZoff1
; CLR1 o_BUZ1
; BR $NORtm80
;BUZoff1:
; SET1 o_BUZ1
;------------------------------------------------------------------------
NORtm80:
; DEC C_TM8ct1
; BNZ $INT80ret
; MOV C_TM8ct1,#4
CALL !TMRremot
TNZDEC C_STPspeed
JRNE BAScnt2
LD A,#n_14ms500
BTJT f_STPok,norSTPtime
LD A,#8
norSTPtime:
LD C_STPspeed,A
BSET f_STP14ms
BAScnt2:
DEC C_TM8cnt
BNZ $INT80ret
MOV C_TM8cnt,#63 ;65;64;8
SET1 f_BAS3125
SET1 f_KEY3125
INT80ret:
POP HL
POP AX
EI
NOP
RETI
;************************************************************************
;************************************************************************
;========================================================================
; timer count every 1 sec
;========================================================================
TMRcnt:
CMP C_TMRsec,#0
BZ $NEXTmin
DEC C_TMRsec
RET
NEXTmin:
MOV C_TMRsec,#n_1m1s-1
CMP C_TMRmin,#0
BZ $NEXThour
DEC C_TMRmin
ret
NEXThour:
MOV C_TMRmin,#n_1h1m-1
TNZDEC D_TMRon
CALL !TMRctrl
RET
;========================================================================
;------------------------------------------------------------------------
;BUZcnt: ;counter for buzzer mode
; CMP C_BUZcnt,#0
; BZ $BUZdec
; DEC C_BUZcnt
; RET
;BUZdec:
; CMP C_BUZmod,#0
; BZ $BUZend
; DEC C_BUZmod
; MOV C_BUZcnt,#n_02S125
;BUZend:
; RET
;------------------------------------------------------------------------
;========================================================================
CNT5sec:
; TNZDEC C_DEF12m
ret
;------------------------------------------------------------------------
;------------------------------------------------------------------------
DRYcnt: ;counter for DRY STEP
CMP C_DRY1m,#0
BZ $DRYdec
DEC C_DRY1m
RET
DRYdec:
CMP C_DRYtm,#0
BZ $DRYendC
DEC C_DRYtm
MOV C_DRY1m,#n_1m1s
DRYendC:
RET
;------------------------------------------------------------------------
SLPcnt: ;counter for SLEEP STEP
CMP C_SLP1h,#0
BZ $SLPdec
DEC C_SLP1h
RET
SLPdec:
CMP C_SLPstp,#0
BZ $SLPend
DEC C_SLPstp
MOV C_SLP1h,#n_1h1m
SLPend:
RET
;------------------------------------------------------------------------
;========================================================================
;========================================================================
HEATcnt:
BF o_COMon,$NOcntDEF50min
TNZDEC C_DEF44m
NOcntDEF50min:
RET
;========================================================================
;========================================================================
ERRocdUP:
cmp P_ERRcod,#4
BC $NO9UP
MOV P_ERRcod,#0
NO9UP:
MOV B,#4
UPchkERR:
INC P_ERRcod
CMP P_ERRcod,#5
BC $$+2+3
MOV P_ERRcod,#1
MOV A,P_ERRcod
MOV C,A
MOV A,f_FLGerr
CALL !BITAchkA_C
CHKerrC:
BC $ERRfind
DBNZ B,$UPchkERR
MOV P_ERRcod,#0
ERRfind:
RET
;************************************************************************
;* Module Name: BITAchkA_C *
;* Function: check the bit C of A->cy *
;* Input: A,C *
;* Output: cy *
;* Break: A,C,CY,Z *
;* stack: *
;************************************************************************
; History:
;
;------------------------------------------------------------------------
BITAchkA_C:
RORC A,1
DBNZ C,$BITAchkA_C
RET
;------------------------------------------------------------------------
; end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -