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

📄 wdt4msystemprotect.s43

📁 射频卡水表源代码 射频卡水表源代码
💻 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 + -