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

📄 hst1l.asm

📁 能实现对三相电流的实时检测功能,并具有长延时 短延时 瞬时 接地四断保护功能.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	MOVWF	TBLPTRH
	DECF	TEMP00,1
	RLNCF	TEMP00,0
	ADDWF	TMP2,1
	MOVLW	TABIR1
	ADDWF	TMP2,0	
	MOVWF	TBLPTRL		;ADD THE ENCODER'S OFFSET
	TBLRD*+
	MOVFF	TABLAT,II11
	TBLRD*
	MOVFF	TABLAT,II10	;READ THE STANDARD VALUE OF IR1
	MOVLW	7CH		
	MOVWF	TBLPTRH
	TBLRD*-
	MOVFF	TABLAT,II00
	TBLRD*
	MOVFF	TABLAT,II01	;READ THE 1.15*IR1'S VALUE	
	MOVFF	II11,OPER1
	MOVFF	II10,OPER0
	MOVLW	33H
	MOVWF	OPER3		
	MOVWF	OPER2		;0.2*65536=3333H->OPER3:OPER2
	CALL	WORDMUL
	MOVFF	RES3,LOAD02U
	MOVFF	RES2,LOAD02H
	MOVFF	RES1,LOAD02L
	BTFSS	RES1,7
	BRA		RDPIR16
	INCF	RES2
	BTFSC	STATUS,0
	INCF	RES3	
RDPIR16	BCF	STATUS,0
	RLCF	LOAD02L,1
	RLCF	LOAD02H,1
	RLCF	LOAD02U,1
	MOVFF	LOAD02U,LOAD04
	MOVFF	LOAD02H,LOAD04L		;40%IR1
	BCF		STATUS,0
	RRCF	II11,0
	MOVWF	LOAD05
	RRCF	II10,0
	MOVWF	LOAD05L			;50%IR1
	MOVF	RES2,0
	ADDWF	LOAD04L,0
	MOVWF	LOAD06L
	MOVF	RES3,0
	ADDWFC	LOAD04,0
	MOVWF	LOAD06			;60%IR1
	MOVF	RES2,0
	ADDWF	LOAD05L,0
	MOVWF	LOAD07L
	MOVF	RES3,0
	ADDWFC	LOAD05,0
	MOVWF	LOAD07			;70%IR1
	BCF		STATUS,0
	RLCF	LOAD04L,0
	MOVWF	LOAD08L
	RLCF	LOAD04,0
	MOVWF	LOAD08			;80%IR1
	MOVF	LOAD05L,0
	ADDWF	LOAD04L,0
	MOVWF	LOAD09L
	MOVF	LOAD05,0
	ADDWFC	LOAD04,0
	MOVWF	LOAD09			;90%IR1
RDP10	BSF	SIGN2,7		;SET THE FLAG BIT OF MODIFY Ir1->JUDGE CACALLATE ENERGY?
	;+++++++++++++++++++++tr1++++++++++++++++++++++++++++++++++
RDPTR1
	BSF		PORTE,2
	BCF		PORTE,1
	BCF		PORTE,0		;POINT TO THE ENCODER OF tr1
	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	MOVF	IT1,0
	ANDLW	0F0H
	CPFSEQ	TEMP00
	BRA		RDPTR10		;THE VALUE OF SETTING AT SECOND IS EQUAL IN tr1?
	MOVLW	04H
	CPFSEQ	IT1
	BRA		$+4
	BRA		RDPTR11
RDPTR10	
	MOVLW	0FH
	ANDWF	IT1,0
	IORWF	TEMP00,W
	MOVWF	IT1		;STORE THE NEW VALUE OF tr1 TO IT1
	SWAPF	TEMP00		;THE FIRST ADDRESS OF TR1 IS 7CF0H
	RLNCF	TEMP00,1
	MOVLW	7FH
	MOVWF	TBLPTRH
	MOVLW	0F0H
	ADDWF	TEMP00,0
	MOVWF	TBLPTRL
	TBLRD*+
	MOVFF	TABLAT,TT11
	TBLRD*
	MOVFF	TABLAT,TT10
	BRA		RDPTR12
RDPTR11
	BTFSS	SIGN2,7		;JUDGE THE FLAG BIT OF Ir1
	BRA		RDPIR2
RDPTR12	CALL	ENCALCU		;CALL CALCULATE ENERGY SUBROUTINE->100*tr1*(1.5Ir1)**2
;RDPTR1	BSF	PORTE,2
;	BCF	PORTE,1
;	BCF	PORTE,0		;POINT TO THE ENCODER OF tr1
;	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
;	MOVLW	0F0H
;	ANDWF	TEMP00,1
;	SWAPF	TEMP00,1
;	MOVFF	TEMP00,IT1
;	RLNCF	TEMP00,1
;	MOVLW	7FH
;	MOVWF	TBLPTRH
;	MOVLW	0F0H
;	ADDWF	TEMP00,0
;	MOVWF	TBLPTRL
;	TBLRD*+
;	MOVFF	TABLAT,TT11
;	TBLRD*
;	MOVFF	TABLAT,TT10
;	BRA	RDPTR12
;RDPTR11	BTFSS	SIGN2,7		;JUDGE THE FLAG BIT OF Ir1
;	BRA	RDPIR2
;RDPTR12	CALL	ENCALCU		;CALL CALCULATE ENE

	;+++++++++++++++++++++++Ir2+++++++++++++++++++++++++
RDPIR2	BCF	PORTE,2
	BCF	PORTE,1
	BSF	PORTE,0		;POINT TO THE ENCODER OF IR2
	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	05H
	CPFSEQ	TEMP00		;DISABLE THE FUNCTION OF SHORT DELAY?
	BRA	RDPIR20
	MOVLW	0F0H
	ANDWF	IT2,0		;THE Ir2 IS OFF
	IORWF	TEMP00,0
	MOVWF	IT2
	BRA	RDPIR3		;JUMP TO Ir3
RDPIR20   MOVLW	00H
		CPFSEQ	TEMP00
		BRA		RDPIR21
		BTFSS	PORTG,4
		BRA		ZD4000
		MOVLW	56H
		MOVWF	II21
		MOVLW	22H
		MOVWF	II20
		GOTO	RDPTR2
ZD4000	MOVLW	00H
		CPFSEQ	TMP0
		BRA		ZD4001
		MOVLW	2EH
		MOVWF	II21
		MOVLW	0E0H
		MOVWF	II20
		GOTO	RDPTR2

ZD4001	MOVLW	01H
		CPFSEQ	TMP0
		BRA		ZD5000
		MOVLW	2EH
		MOVWF	II21
		MOVLW	0E0H
		MOVWF	II20
		BRA		RDPTR2
ZD5000	MOVLW	02H
		CPFSEQ	TMP0
		BRA		ZD6300
		MOVLW	3AH
		MOVWF	II21
		MOVLW	098H
		MOVWF	II20
		BRA		RDPTR2
ZD6300
		MOVLW	49H
		MOVWF	II21
		MOVLW	0D4H
		MOVWF	II20
		BRA		RDPTR2
RDPIR21
	MOVLW	0F0H
	ANDWF	IT2,0
	IORWF	TEMP00,0
	MOVWF	IT2		;GET THE OLD ORIGINAL VALUE OF Ir2
	MOVLW	TABKEY
	MOVWF	TBLPTRL
	MOVLW	79H
	MOVWF	TBLPTRH  
	MOVF	TMP0,0	
	ADDWF	TBLPTRL,1	;ADD THE SWITCH'S OFFSET
	TBLRD*
	MOVFF	TABLAT,TMP2
	DECF	TEMP00,1
	RLNCF	TEMP00,0
	ADDWF	TMP2,1	
	MOVLW	TABIR2		;ADD THE ENCODER'S OFFSET
	ADDWF	TMP2,0
	MOVWF	TBLPTRL
	MOVLW	80H
	MOVWF	TBLPTRH  
	TBLRD*+
	MOVFF	TABLAT,II21
	TBLRD*
	MOVFF	TABLAT,II20
	;+++++++++++++++++++++++++tr2++++++++++++++++++++++++++++++
RDPTR2
	BSF		PORTE,2
	BCF		PORTE,1
	BSF		PORTE,0	
							;POINT TO THE ENCODER OF tr2
	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	MOVF	IT2,0
	ANDLW	0F0H
	CPFSEQ	TEMP00
	BRA		RDPTR20		;THE VALUE OF SETTING AT SECOND IS EQUAL IN tr2?
	MOVLW	05H
	CPFSEQ	TEMP00
	BRA		$+4
	BRA		RDPIR3
RDPTR20	MOVLW	0FH
	ANDWF	IT2,0
	IORWF	TEMP00,0
	MOVWF	IT2		;STORE THE NEW VALUE OF tr2 TO IT2
	SWAPF	TEMP00
	MOVLW	81H		;TR2'S FIRST ADDRESS IS 7DF0H
	MOVWF	TBLPTRH
	MOVLW	0F0H
	ADDWF	TEMP00,0
	MOVWF	TBLPTRL
	TBLRD*
	MOVFF	TABLAT,TT20
	;+++++++++++++++++++++++++Ir3+++++++++++++++++++++++++++++++
RDPIR3	
	BCF		PORTE,2
	BSF		PORTE,1
	BCF		PORTE,0		;POINT TO THE ENCODER OF IR3
	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	05H
	CPFSEQ	TEMP00		;DISABLE THE FUNCTION OF SHORT DELAY?
	BRA		RDPIR33
	BCF		FLAG1,2
	MOVLW	0F0H
	ANDWF	IT3,1		;THE Ir3 IS OFF
	BRA		RDPIR4		;JUMP TO Ir4
RDPIR33	 MOVLW	00H
		 CPFSEQ	TEMP00
		 BRA	RDPIR30
		 BSF	FLAG1,2
		MOVLW	00H
		CPFSEQ	TMP0
		BRA		IR34001
		MOVLW	01H
		MOVWF	II31
		MOVLW	0FFH
		MOVWF	II30
		MOVLW	5BH
		MOVWF	NOTIME
		GOTO	RDPIR4
IR34001	MOVLW	01H
		CPFSEQ	TMP0
		BRA		IR35000
		MOVLW	01H
		MOVWF	II31
		MOVLW	0FFH
		MOVWF	II30
		MOVLW	44H
		MOVWF	NOTIME
		GOTO	RDPIR4
IR35000	MOVLW	02H
		CPFSEQ	TMP0
		BRA		IR36300
		MOVLW	01H
		MOVWF	II31
		MOVLW	0FFH
		MOVWF	II30
		MOVLW	56H
		MOVWF	NOTIME
		BRA		RDPIR4
IR36300	
		MOVLW	01H
		MOVWF	II31
		MOVLW	0FFH
		MOVWF	II30
		MOVLW	6CH
		MOVWF	NOTIME
		BRA		RDPIR4

RDPIR30	BSF	FLAG1,2
	MOVLW	0F0H
	ANDWF	IT3,0
	IORWF	TEMP00,0
	MOVWF	IT3		;GET THE OLD ORIGINAL VALUE OF Ir3
	MOVLW	TABKEY
	ADDWF	TMP0,0
	MOVWF	TBLPTRL		;ADD THE SWITCH'S OFFSET
	MOVLW	79H
	MOVWF	TBLPTRH  
	TBLRD*
	MOVFF	TABLAT,TMP2
	DECF	TEMP00,1
	RLNCF	TEMP00,0
	ADDWF	TMP2,0
	MOVWF	TMP1
	MOVLW	TABIR3
	ADDWF	TMP1,0	
	MOVWF	TBLPTRL		;ADD THE ENCODER'S OFFSET
	MOVLW	82H
	MOVWF	TBLPTRH
	TBLRD*+
	MOVFF	TABLAT,II31
	TBLRD*
	MOVFF	TABLAT,II30
	MOVLW	7BH		;GET THE IR3'S AD VALUE
	MOVWF	TBLPTRH
	RRNCF	TMP2,1
	MOVLW	TABAD
	ADDWF	TMP2,0 
	ADDWF	TEMP00,0	
	MOVWF	TBLPTRL		;ADD THE ENCODER'S OFFSET
	TBLRD*
	MOVFF	TABLAT,NOTIME
	;+++++++++++++++++Ir4+++++++++++++++++++++++++++++
RDPIR4
	BCF		PORTE,2
	BSF		PORTE,1
	BSF		PORTE,0		;POINT TO THE ENCODER OF IR4
	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	04H
	CPFSEQ	TEMP00		;DISABLE THE FUNCTION OF GROUND FAIL DELAY
	BRA		RDPIR5
	MOVLW	0F0H
	ANDWF	IT4,0		;THE Ir4 IS OFF
	IORWF	TEMP00,0
	MOVWF	IT4
	BRA		RDPEND	
RDPIR5   
	 MOVLW	00H
	CPFSEQ	TEMP00
	BRA		RDPIR40
	MOVLW	00H
	CPFSEQ	TMP0

	BRA		IR44002
	MOVLW	03H
	MOVWF	II41
	MOVLW	0E8H
	MOVWF	II40
	GOTO	RDPTR4
IR44002
	MOVLW	01H
	CPFSEQ	TMP0
	BRA 	IR45000
	MOVLW	03H
	MOVWF	II41
	MOVLW	0E8H
	MOVWF	II40
	GOTO	RDPTR4
IR45000
	MOVLW	02H
	CPFSEQ	TMP0
	BRA		TR46300
	MOVLW	04H
	MOVWF	II41
	MOVLW	0E2H
	MOVWF	II40
	GOTO	RDPTR4
TR46300
	MOVLW	06H
	MOVWF	II41
	MOVLW	27H
	MOVWF	II40


RDPIR40		
	MOVLW	0F0H
	ANDWF	IT4,0
	IORWF	TEMP00,0
	MOVWF	IT4		;GET THE OLD ORIGINAL VALUE OF Ir4
RDPIR6
	MOVLW	79H
	MOVWF	TBLPTRH 
	MOVLW	TABKEY
	ADDWF	TMP0,0	
	MOVWF	TBLPTRL		;ADD THE SWITCH'S OFFSET
	TBLRD*
	MOVFF	TABLAT,TMP2
	DECF	TEMP00,1
	RLNCF	TEMP00,0
	ADDWF	TMP2,1
	MOVLW	TABIR4
	ADDWF	TMP2,0
	MOVWF	TBLPTRL		;ADD THE ENCODER'S OFFSET
	MOVLW	83H
	MOVWF	TBLPTRH 
	NOP
	NOP
	TBLRD*+
	NOP
	NOP
	MOVFF	TABLAT,II41
	NOP
	TBLRD*
	NOP
	MOVFF	TABLAT,II40
;	+++++++++++++++++++++++++tr4++++++++++++++++++++++++++++++
RDPTR4
	BSF		PORTE,2
	BSF		PORTE,1
	BCF		PORTE,0		;POINT TO THE ENCODER OF tr4
	MOVFF	PORTE,TEMP00	;SAVE TO WORK CELL:TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	MOVF	IT4,0
	ANDLW	0F0H
	MOVWF	IT41
;	CPFSEQ	TEMP00
;	BRA		RDPTR40		;THE VALUE OF SETTING AT SECOND IS EQUAL IN tr4?
	MOVLW	04H
	CPFSEQ	IT41
	BRA		$+4
	BRA		RDPEND
	MOVLW	0FH
	ANDWF	IT4,0
	IORWF	TEMP00,0
	MOVWF	IT4		;STORE THE NEW VALUE OF tr4 TO IT4
	SWAPF	TEMP00
	MOVLW	84H
	MOVWF	TBLPTRH
	MOVLW	0F0H
	ADDWF	TEMP00,0
	MOVWF	TBLPTRL
	TBLRD*
	MOVFF	TABLAT,TT40
RDPEND	RETURN			;END THE RDP SUBROUTINE
;*****************ERRCHCK SUBROUTINE  **************************
ERRCHCK1
	BCF		INTCON3,0
	BCF		INTCON3,3
	MOVLW	0X85
	MOVF	TMR3H
	MOVLW	0XED
	MOVF	TMR3L
	BSF		PIE2,TMR3IE
	BSF		T3CON,0
	RETURN
	
ERRCHCK2 
	
	BCF		PIE2,TMR3IE
	BCF		PIR2,TMR3IF
;	BRA		GZFH
	BCF		PORTE,2
	BSF		PORTE,1
	BSF		PORTE,0
	MOVFF	PORTE,TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	04H
	CPFSEQ	TEMP00
	BRA		GZI
	BCF		PORTE,2
	BSF		PORTE,1
	BCF		PORTE,0
	MOVFF	PORTE,TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	05H
	CPFSEQ	TEMP00
	BRA		GZI
	BCF		PORTE,2
	BCF		PORTE,1
	BSF		PORTE,0
	MOVFF	PORTE,TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	05H
	CPFSEQ	TEMP00
	BRA		GZI
	BCF		PORTE,2
	BCF		PORTE,1
	BCF		PORTE,0
	MOVFF	PORTE,TEMP00
	MOVLW	0F0H
	ANDWF	TEMP00,1
	SWAPF	TEMP00
	MOVLW	04H	
	CPFSEQ	TEMP00
	BRA		GZI
	MOVLW	04H
	CPFSEQ	GZA0
	BRA		$+8
	CLRF	GZA0
	SETF	EEADDR
	GOTO	CSH
	MOVLB	00H
	BCF		PIR2,TMR3IF
	BCF		T3CON,0
	BTFSC	PORTB,1
	BRA		$+6
	BSF		INTCON3,3
	RETURN
	INCF	GZA0
	BSF		INTCON3,3
	RETURN
	
	
GZI
	BCF		PIR2,TMR3IF
	BCF		T3CON,0
	BTFSC	PORTB,1
	BRA		GZIR
	BSF		INTCON3,3
	RETURN
GZIR
	MOVLW	00H	
	CPFSEQ	GZA0
	BRA		GZIR0
    MOVLW	01H
	MOVWF	EEADR
	CALL	RD_EEPROM
	MOVFF	EEDATA1,A0
	INCF	GZA0
	BRA		GZ
GZIR0    
	MOVLW	01H
	CPFSEQ	GZA0
	BRA		GZIR1
	MOVLW	11H
	MOVWF	EEADR
	CALL	RD_EEPROM
	MOVFF	EEDATA1,A0
	INCF	GZA0
	BRA		GZ
GZIR1	
	MOVLW	02H
	CPFSEQ	GZA0
	BRA 	GZIR2
	MOVLW	21H
	MOVWF	EEADR
	CALL	RD_EEPROM
	MOVFF	EEDATA1,A0
	INCF	GZA0
	BRA		GZ
GZIR2
	MOVLW	03H
	CPFSEQ	GZA0
	BRA		GZIR3
	MOVLW	31H
	MOVWF	EEADR
	CALL	RD_EEPROM
	MOVFF	EEDATA1,A0
	INCF	GZA0
	BRA		GZ

GZIR3
	MOVLW	04H
	CPFSEQ	GZA0
	BRA	    GZIR
	MOVLW	41H
	MOVWF	EEADR
	CALL	RD_EEPROM
	MOVFF	EEDATA1,A0
	CLRF	GZA0
	BRA		GZ
GZ	;CALL	RD_EEPROM
	MOVFF	EEDATA1,PDBACK
	MOVLW	0EH
	CPFSEQ	PDBACK
	BRA		IR2GZ
	BSF		PORTF,1
	BSF		PORTF,2
	BSF		PORTF,3
	BSF		PORTF,4
	BCF		PORTF,0
	BSF		PORTF,6
	BRA		GZFH
IR2GZ	
	MOVLW	0DH
	CPFSEQ	PDBACK
	BRA		IR3GZ
	BSF		PORTF,0
	BSF		PORTF,2
	BSF		PORTF,3
	BSF		PORTF,4
	BCF		PORTF,1
	BSF		PORTF,6
	BRA		GZFH
IR3GZ
	MOVLW	0BH
	CPFSEQ	PDBACK
	BRA		IR4GZ
	BSF		PORTF,0
	BSF		PORTF,1
	BSF		PORTF,3
	BCF		PORTF,2
	BSF		PORTF,6
	BRA		GZFH
IR4GZ
	MOVLW	07H
	CPFSEQ	PDBACK
	BRA		IR5GZ
	BSF		PORTF,0
	BSF		PORTF,1
	BSF		PORTF,2
	BCF		PORTF,3
	BSF		PORTF,6
	BRA		GZFH
IR5GZ
     	BSF		PORTF,0
		BSF		PORTF,1
		BSF		PORTF,2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -