📄 wdt4msystemprotect.s43
字号:
#include "WDT4MDefination.h"
extern StartOpeningValve
extern StartClosingValve
extern StopValve
extern DLY100ms
//******************************* System Protection ***************************//
PUBLIC SystemProtect
RSEG CODE
//******************************* System Protection ***************************//
SystemProtect
CALL #VotageDetect
CALL #DosageControl ;The lowest mount user can use
CALL #AntiStealing
CALL #ValveManage
CALL #CheckDataValid
SystemProtectRTN
RET
//********************************** Dosage control ***************************//
DosageControl
//sjh:040817 move --->
/*
biT #ExtraCardFG //置临时卡标记
JZ DSCNXTB
BIT #NFG
JNZ DSCNXTA
cmp #0,&LcdL
jhs DSCNXTB
DSCNXTA
bic #ExtraCardFG //置临时卡标记
mov.b #00H,&CardNumH
mov.b #00H,&CardNumM
mov.b #00H,&CardNumL
mov &RegOddment,&Oddment
mov &RegQ_YL,&Q_YL
mov &RegLcdL,&LcdL
mov &RegState,&State
bis #CloseValveFG
jmp DSCNXT2
*/
//<--- sjh:040817 move
DSCNXTB
bic #ALARMFG
//BIT #OVDRAFG
//JNZ DSCNXT1
bit #UserCardFG
jz DSCNXT0
bis #OpenValveFG
DSCNXT0
bit #NFG
jnz DSCNXT3
bic #RemindFG1
cmp #5,&Q_YL
jhs DSCRTN
jmp DSCNXT2
DSCNXT3
bit #RemindFG1
jnz DSCNXT4
bis #RemindFG1
jmp DSCNXT1
DSCNXT4
cmp #1,&Q_YL
jhs DSCNXT6
bic #RemindFG3
cmp #5000,&LcdL
jhs DSCNXT5
bic #RemindFG2
jmp DSCNXT2
DSCNXT5
bit #RemindFG2
jnz DSCNXT2
bis #RemindFG2
jmp DSCNXT1
DSCNXT6
bic #OVDRAFG
cmp #2,&Q_YL
jlo DSCNXT7
bis #OVDRAFG
jmp DSCNXT1
DSCNXT7
bit #RemindFG3
jnz DSCNXT8
bis #RemindFG3
jmp DSCNXT1
DSCNXT8
cmp #5000,&LcdL
jhs DSCNXT9
bic #RemindFG4
jmp DSCNXT2
DSCNXT9
bit #RemindFG4
jnz DSCNXT2
bis #RemindFG4
DSCNXT1
bis #CloseValveFG
DSCNXT2
bis #ALARMFG ;置告警标志
bis #DSPFG
DSCRTN
RET
//******************************* Anti Stealing ******************************//
AntiStealing
bit #LOSEFG
jz AntiStealingRTN
bit #POARFG ;出现窃用信号
jnz ASLoop
bis #DSPFG ;首次窃用
mov #12,&PORTIME ;初始化计时器
bis #CloseValveFG
bis #POARFG
//040817 mov.b #1,&BUZTM ;蜂鸣器鸣叫一声
// BuzOn
// call #DLY100ms
mov.b #DSPTM_,&DSPTM ;显示4分钟
JMP AntiStealingRTN
;****************窃用恢复****************
ASLoop ;已经在窃用状态
bic.b #POAR,&P2DIR
bit.b #POAR,P2IN
jnz AntiStealingRTN
bis #POENDFG
cmp #0,&PORTIME ;恢复窃用时间
jnz AntiStealingRTN
bic #POARFG
bic #LOSEFG
bic #POENDFG
bis #DSPFG
AntiStealingRTN
RET
//******************************* Valve Manage ******************************//
ValveManage
bit #ValveOperatingFG
jz VMNXT2
jmp VMRTN
VMNXT2
bit #CloseValveFG
jz VMNXT3
bic #CloseValveFG
bit #CloseValve2FG
jz VMNXT2close
//040817 bic #CloseValve2FG
bic #VALVEFG
VMNXT2close
bit #VALVEFG
jnz VMRTN
bis #ValveOperatingFG
MOV #05555H,&ValveState
mov.b #T_V_TIM1_,&T_V_TIM
//040817 mov.b #0,&CHVTM
CALL #StartClosingValve
//040817 cmp.b #0H,&VCCOUNT
//040817 jeq VMRTN
bit #CloseValve2FG ;040817
jz VMRTN ;040817
bic #CloseValve2FG ;040817
mov.b #T_V_TIM2_,&T_V_TIM
jMP VMRTN
VMNXT3
bit #OpenValveFG
jz VMRTN
bic #OpenValveFG
bit #VLFG
jnz VMRTN
bit #POARFG ;出现窃用信号 //sjh
jnz VMRTN ;sjh
bit #OVDRAFG ;040817
jnz VMRTN ;040817
clr.b &VCCOUNT ;sjh
clr.b &VCP1INT ;sjh
bit #VALVEFG
jz VMRTN
MOV #0AAAAH,&ValveState
bis #ValveOperatingFG
mov.b #T_V_TIM_,&T_V_TIM
CALL #StartOpeningValve
//040817 bis.B #SenPWR,&P1OUT
VMRTN
RET
//******************************* VotageDetect ******************************//
VotageDetect
//040608 bit #TIMFG ;1秒钟到标志进行电压检测
bit #VolDectFG ;1秒钟到标志进行电压检测 040608
jz VDRTN
bic #VolDectFG ;040608
bit #VLFG
jz VDTNXT2
bit.b #VTEST,&P1IN
jnz VDTNXT1 ;High Voltage
cmp.b #00H,&LowVatageTCount
jeq VDRTN
dec.b &LowVatageTCount
jnz VDRTN
bis #CloseValveFG
jmp VDRTN
VDTNXT1
bic #VLFG
mov.b #DSPTM_,&DSPTM
BIT #OVDRAFG
JNZ VDRTN
cmp.b #175,&LowVatageTCount ;040611
jhs VDRTN ;040611
bis #OpenValveFG
jmp VDRTN
VDTNXT2
bit.b #VTEST,&P1IN
jnz VDRTN ;High Voltage
bis #VLFG ;Low Voltage flag
mov.b #180,&LowVatageTCount
bis #NEWRFG
VDRTN
RET
//******************************* Check Data Valid ******************************//
CheckDataValid
CMP &LcdL,&OldLcdL
JLO CDVNXT1
MOV &OldLcdL,AX
SUB &LcdL,AX
CMP #5000,AX
JHS CDVNXT2
JMP CDVRTN
CDVNXT1
MOV &LcdL,AX
SUB &OldLcdL,AX
CMP #5000,AX
JLO CDVRTN
CDVNXT2
BIS #NEWRFG
CDVRTN
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -