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

📄 hst1l.asm

📁 能实现对三相电流的实时检测功能,并具有长延时 短延时 瞬时 接地四断保护功能.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	MOVFF	IBMAXH,IBH
	MOVFF	IBMAXL,IBL
	BRA	ADI4
ADI3	MOVFF	IBMINH,IBH
	MOVFF	IBMINL,IBL
ADI4	BTFSS	SIGN2,3		;JUDGE THE HIGH/LOWER CHANEL OF IC
	BRA	ADI5
	MOVFF	ICMAXH,ICH
	MOVFF	ICMAXL,ICL
	BRA	ADI6
ADI5	MOVFF	ICMINH,ICH
	MOVFF	ICMINL,ICL
ADI6	BTFSS	SIGN2,4		;JUDGE THE HIGH/LOWER CHANEL OF IN
	BRA	ADI7
	MOVFF	INMAXH,INH
	MOVFF	INMAXL,INL
	GOTO	ADI8
ADI7	MOVFF	INMINH,INH
	MOVFF	INMINL,INL
ADI8	BTFSS	SIGN2,5		;JUDGE THE HIGH/LOWER CHANEL OF IG
	BRA	ADI9
	MOVFF	IGMAXH,IGH
	MOVFF	IGMAXL,IGL
	BRA	ADI10
ADI9	MOVFF	IGMINH,IGH
	MOVFF	IGMINL,IGL
ADI10	CALL	ACTION2		
	BTFSC	NOTM,3
	BRA	AD11	
	CLRF	IAMAXH		;CLEAR THE REGESTER
	CLRF	IAMAXL
	CLRF	IAMINH
	CLRF	IAMINL
	CLRF	IBMAXH		
	CLRF	IBMAXL
	CLRF	IBMINH
	CLRF	IBMINL
	CLRF	ICMAXH		
	CLRF	ICMAXL
	CLRF	ICMINH
	CLRF	ICMINL
	CLRF	INMAXH		
	CLRF	INMAXL
	CLRF	INMINH
	CLRF	INMINL
	CLRF	IGMAXH
	CLRF	IGMAXL
	CLRF	IGMINH
	CLRF	IGMINL
	BRA	AD11
AD10	CALL	ACTION2		
	BTFSS	SIGN2,1		
	BRA	TG4
;	BCF		ADCON0,5
;	BCF		ADCON0,4
;	BCF		ADCON0,3
;	BCF		ADCON0,2
	MOVLW	01H
	MOVWF	ADCON0
	BSF	PORTC,0		;SELECT THE CHANEL OF IAMAX
	BCF	PORTC,1
	BCF	PORTC,2
	MOVLW	01H
	MOVWF	CHANEL		;POINT TO NEXT CHANEL:IAMAX
	NOP
	
	BRA	TGD1
TG4	;BCF		ADCON0,5
	;BCF		ADCON0,4
	;BCF		ADCON0,3
	;BCF		ADCON0,2
	MOVLW	01H
	MOVWF	ADCON0
	BCF	PORTC,0		;SELECT THE CHANEL OF IAMIN
	BCF	PORTC,1
	BCF	PORTC,2
	MOVLW	00H
	MOVWF	CHANEL		;POINT TO NEXT CHANEL:IAMIN
	NOP
			
TGD1	BCF	PIE1,6						
	RETURN
AD11	CLRF	ADRESH		;CLEAR THE RESULT OF AD CONVERTER
	CLRF	ADRESL
;	BCF		ADCON0,5
;	BCF		ADCON0,4
;	BCF		ADCON0,3
;	BCF		ADCON0,2
	MOVLW	01H		;SELECT THE AN0---CURRENT CHANEL
	MOVWF	ADCON0
	BCF	PORTC,0		;POINT TO CHANEL OF IAMIN---THE ORIGINAL STATUS
	BCF	PORTC,1
	BCF	PORTC,2
	CLRF	CHANEL
	NOP
	
	BCF	PIE1,6		;OPEN THE INTERRUPT OF AD
	RETURN	

;***********VIRTUAL VALUE CONVERSION AND COMPARE SUBROUTINE**************************
COMP MOVLB	00H
	MOVLW	79H
	MOVWF	TBLPTRH
	BTFSS	SIGN2,1		;JUDGE THE IA
	BRA	CMP0		;BE LITTLE CHANEL 
	MOVLW	30H		;BE BIG CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0		
	ADDWF	TBLPTRL,1	;ADD THE OFFSET OF THE SWITCH
	TBLRD*+			;READ THE TABLE
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	IAH,OPER1	
	MOVFF	IAL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IA01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IA00
	BRA	CMP1
CMP0	MOVLW	60H		;BE LITTLE CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	IAH,OPER1
	MOVFF	IAL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IA01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IA00
CMP1	BTFSS	SIGN2,2		;JUDGE THE IB
	BRA	CMP2		;BE LITTLE CHANEL
	MOVLW	30H		;BE BIG CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	IBH,OPER1
	MOVFF	IBL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IB01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IB00
	BRA	CMP3
CMP2	MOVLW	60H		;BE LITTLE CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	IBH,OPER1
	MOVFF	IBL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IB01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IB00
CMP3	BTFSS	SIGN2,3		;JUDGE THE IC
	BRA	CMP4		;BE LITTLE CHANEL
	MOVLW	30H		;BE BIG CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	ICH,OPER1
	MOVFF	ICL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IC01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IC00
	BRA	CMP5
CMP4	MOVLW	60H		;BE LITTLE CHANEL		
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	ICH,OPER1
	MOVFF	ICL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IC01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IC00
CMP5	BTFSS	SIGN2,4		;JUDGE THE IN
	BRA	CMP6		;BE LITTLE CHANEL
	MOVLW	30H		;BE BIG CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	INH,OPER1
	MOVFF	INL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IN01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IN00
	BRA	CMP7
CMP6	MOVLW	60H		;BE LITTLE CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	INH,OPER1
	MOVFF	INL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IN01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IN00	
CMP7	BTFSS	SIGN2,5		;JUDGE THE IG
	BRA	CMP8		;BE LITTLE CHANEL
	MOVLW	90H		;BE BIG CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	IGH,OPER1
	MOVFF	IGL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IG01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IG00
	BRA	CMP9
CMP8	MOVLW	0F0H		;BE LITTLE CHANEL
	MOVWF	TBLPTRL
	RLNCF	TMP0,0
	ADDWF	TMP0,0
	ADDWF	TBLPTRL,1
	TBLRD*+
	MOVFF	TABLAT,OPER3
	TBLRD*+
	MOVFF	TABLAT,OPER2
	MOVFF	IGH,OPER1
	MOVFF	IGL,OPER0
	CALL	WORDMUL
	TBLRD*
	MOVFF	TABLAT,TEMP06
	CALL	WORDIV
	MOVFF	TEMP08,IG01	;GET THE VIRTUAL VALUE OF THE CURRENT
	MOVFF	TEMP07,IG00	
CMP9	MOVLW	0C1H
	ANDWF	SIGN2,1
CMPEND	RETURN			
;***********SHUTTING OFF OF THE SHORT,LONG AND GND FAIL SUBROUTINE********************
ACTION1	MOVLB	00H
	MOVF	TT20,0		
	CPFSLT	TT40
	BRA	ACT20
	MOVF	IT4,0		;JUDGE THE Ir4 = OFF?
	ANDLW	0FH
	MOVWF	TEM00
	MOVLW	04H
	CPFSEQ	TEM00
	BRA	ACT21		;GND FAIL IR4
	BRA	ACT22		
ACT21	MOVFF	IGeH,COM1H
	MOVFF	IGeL,COM1L
	MOVFF	II41,COM0H
	MOVFF	II40,COM0L
	CALL	FIBJ
	BTFSC	FLAG1,1
	BRA	ACT23		;SHUT OFF OF IG
	CLRF	TR4COUNT
ACT22	MOVF	IT2,0
	ANDLW	0FH
	MOVWF	TEM00
	MOVLW	05H
	CPFSEQ	TEM00		;JUDGE THE Ir2=OFF??
	BRA	ACT24
	BRA	ACT25		;GO TO LONG DELAY
ACT24	MOVFF	IeH,COM1H
	MOVFF	IeL,COM1L
	MOVFF	II21,COM0H
	MOVFF	II20,COM0L
	CALL	FIBJ
	BTFSC	FLAG1,1
	BRA	ACT26		;SHUT OFF OF Ir2
	CLRF	TR2COUNT
	BRA	ACT25		;GO TO LONG DELAY
ACT20	MOVF	IT2,0
	ANDLW	0FH
	MOVWF	TEM00
	MOVLW	05H
	CPFSEQ	TEM00		;JUDGE THE Ir2=OFF??
	BRA	ACT27
	BRA	ACT28
ACT27	MOVFF	IeH,COM1H	;THE CURRENT OF SAMPLING >=Ir2??
	MOVFF	IeL,COM1L
	MOVFF	II21,COM0H
	MOVFF	II20,COM0L
	CALL	FIBJ
	BTFSC	FLAG1,1
	BRA	ACT26		;SHUT OFF OF IR2
	CLRF	TR2COUNT
ACT28	MOVF	IT4,0		;JUDGE THE Ir4 = OFF?
	ANDLW	0FH
	MOVWF	TEM00
	MOVLW	04H
	CPFSEQ	TEM00
	BRA	ACT29
	BRA	ACT25		;GO TO LONG DELAY
ACT29	MOVFF	IGeH,COM1H
	MOVFF	IGeL,COM1L
	MOVFF	II41,COM0H
	MOVFF	II40,COM0L
	CALL	FIBJ
	BTFSC	FLAG1,1		;JUDGE: IG>=Ir4?
	BRA	ACT23		;SHUT OFF OF IG
	CLRF	TR4COUNT
	BRA	ACT25		;GO TO LONG DELAY
ACT26	INCF	TR2COUNT	;THE TIME OF Ir2 IS OVER?
	MOVF	TT20,0
	CPFSGT	TR2COUNT
	BRA	ACTEND
	BSF	SIGN1,5
	BSF	PDBACK,0	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,1
	BCF	PORTF,1
	CLRF	TR2COUNT
	BRA	ACTOFF
ACT23	INCF	TR4COUNT	;THE TIME OF IG IS OVER?
	MOVF	TT40,0
	CPFSGT	TR4COUNT
	BRA	ACTEND
	BSF	SIGN1,7
	BSF	PDBACK,0	
	BSF	PDBACK,1
	BSF	PDBACK,2	
	BCF	PDBACK,3
	BCF	PORTF,3
	CLRF	TR4COUNT
	BRA	ACTOFF
	;+++++++++++++++ENTER Ir1+++++++++++++++++++
ACT25	MOVF	IT1,0		;THE Ir1 = OFF?
	ANDLW	0FH
	MOVWF	TEM00
	MOVLW	00H
	CPFSEQ	TEM00
	BRA	ACTIR10
	BRA	ACTEND
ACTIR10	
	MOVFF	IeL,COM10L
 	MOVFF	IeH,COM10H	;THE CURRENT OF SAMPLING >1.15*Ir1??

	MOVFF	II01,COM00H
	MOVFF	II00,COM00L
	CALL	CFIBJ
	BTFSS	FLAG1,0	
	BRA	ACTIR11		;I<1.15*Ir1
	;********GET THE TIME OF FAIL****************************
I2CIR10
	CLRF	PORTD		;SHOW ALL OF THE LOAD LIGHT
	BSF		SIGN1,6		;SET THE FLAG BIT OF ENTER LONG DELAY FAILURE
	MOVFF	IeH,OPER3
	MOVFF	IeL,OPER2
	MOVFF	IeH,OPER1
	MOVFF	IeL,OPER0
	CALL	WORDMUL
	MOVF	RES0,0		;THE ENERGY ADD UP
	ADDWF	ENERGY5,1
	MOVF	RES1,0
	ADDWFC	ENERGY6,1
	MOVF	RES2,0
	ADDWFC	ENERGY7,1
	MOVF	RES3,0
	ADDWFC	ENERGY8,1
	BTFSS	STATUS,0
	BRA		ACTIR12
	INCF	ENERGY9
ACTIR12
	MOVF	ENERGY4,0
	CPFSGT	ENERGY9
	BRA	ACTIR14
	BSF	PDBACK,1	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,0
	BCF	PORTF,0
	BRA	ACTOFF		;SHUT OFF
ACTIR14	CPFSEQ	ENERGY9
	BRA	ACTIR13		;THE ENERGY IS NOT ENOUGH TO SHUT OFF
	MOVF	ENERGY3,0
	CPFSGT	ENERGY8
	BRA	ACTIR15
	BSF	PDBACK,1	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,0
	BCF	PORTF,0
	BRA	ACTOFF		;SHUT OFF
ACTIR15	CPFSEQ	ENERGY8
	BRA	ACTIR13		;THE ENERGY IS NOT ENOUGH
	MOVF	ENERGY2,0
	CPFSGT	ENERGY7
	BRA	ACTIR16
	BSF	PDBACK,1	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,0
	BCF	PORTF,0
	BRA	ACTOFF		;SHUT OFF
ACTIR16	CPFSEQ	ENERGY7
	BRA	ACTIR13		;THE ENERGY IS NOT ENOUGH
	MOVF	ENERGY1,0
	CPFSGT	ENERGY6
	BRA	ACTIR17
	BSF	PDBACK,1	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,0
	BCF	PORTF,0
	BRA	ACTOFF		;SHUT OFF
ACTIR17	CPFSEQ	ENERGY6
	BRA	ACTIR13		;THE ENERGY IS NOT ENOUGH
	MOVF	ENERGY0,0
	CPFSGT	ENERGY5
	BRA	ACTIR18
	BSF	PDBACK,1	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,0
	BCF	PORTF,0
	BRA	ACTOFF		;SHUT OFF
ACTIR18	CPFSEQ	ENERGY5
	BRA	ACTIR13		;THE ENERGY IS NOT ENOUGH
	BSF	PDBACK,1	
	BSF	PDBACK,2
	BSF	PDBACK,3	
	BCF	PDBACK,0
	BCF	PORTF,0
ACTOFF	BCF	PIE1,6
	BCF	PIE1,2
	BCF	PORTB,4
	BCF	SIGN2,0
	BCF	PORTB,5		;SHUT OFF
	BCF	PORTF,6	;SHOW THE LIGHT OF SHUT OFF
	CALL	DELAY10
	BSF	PORTB,5
	BSF	PORTB,4
	BTFSS	BZW,1
	CALL	ACT12		;WRITE EEPROM 
	BCF	SIGN2,0	
	BCF		BZW,1
	GOTO	LOOP1
ACTIR13	BSF	PDBACK,0
	BSF	PORTF,0		;THE ENERGY IS NOT ENOUGH TO SHUT OFF
	INCF	COUNT1		;10ms++
	MOVLW 	64H
	CPFSEQ	COUNT1
	BRA	ACTEND
	CLRF	COUNT1		
	INCF	COUNT2		;1"++
	CPFSEQ	COUNT2
	BRA	ACTEND
	CLRF	COUNT2
	INCF	COUNT3		;100"++
	BSF	PIE1,2
ACTEND	BSF	PIE2,2
	BSF	PORTA,4
	RETURN
;*****************************************************8.16
CFIBJ
;	MOVLB 	0
	MOVF	COM10H,0
	CPFSGT	COM00H		;COM0>COM1
	BRA	FIBJ31
	BRA	FIBJ11
FIBJ31	CPFSEQ	COM00H
	BRA	FIBJ21
	MOVF	COM10L,0
	CPFSLT	COM00L
	BRA	FIBJ11
FIBJ21	BSF	FLAG1,0		;COM0<COM1
	RETURN
FIBJ11	BCF	FLAG1,0 	;COM0>=COM1
	RETURN
;****************************************************8.16
ACTIR11	BTFSS	SIGN1,6		;ENTER THE HOT MEMORY??
	BRA	ACTIR30
	MOVFF	ENERGY6,ENERGY10	;1/255*ENERGY(9~5)->ENERGY(10~12)
	MOVFF	ENERGY7,ENERGY11
	MOVFF	ENERGY8,ENERGY12
	MOVFF	ENERGY9,ENERGY13
	CALL	THERMO
	BRA	ACTEND
ACTIR30	CLRF	COUNT1
	CLRF	COUNT2
	CLRF	COUNT3
	CLRF	ENERGY9
	CLRF	ENERGY8
	CLRF	ENERGY7
	CLRF	ENERGY6
	CLRF	ENERGY5	
	BSF	PIE1,2
	RETURN
;***********30'HOT MEMORY SUBROUTINE OF LONG DELAY**************************************
THERMO	MOVLB	00H
	INCF	COUNT5		;COUNT5+10ms
	MOVLW	64H
	CPFSEQ	COUNT5
	BRA	THEREND
	CLRF	COUNT5
	INCF	COUNT6		;COUNT6+1S
	MOVLW	07H
	CPFSEQ	COUNT6		;7S IS GONE
	BRA	THEREND
	CLRF	COUNT6
	MOVLW	00H		;COMPARE ENERGY
	CPFSEQ	ENERGY9
	BRA	THER0
	MOVF	ENERGY13,0
	CPFSGT	ENERGY8
	BRA	THER1
	BRA	THER0
THER1	CPFSEQ	ENERGY8
	BRA	THERCLR
	MOVF	ENERGY12,0
	CPFSGT	ENERGY7
	BRA	THER2
	BRA	THER0
THER2	CPFSEQ	ENERGY7
	BRA	THERCLR
	MOVF	ENERGY11,0
	CPFSGT	ENERGY6
	BRA	THER3
	BRA	THER0
THER3	CPFSEQ	ENERGY6
	BRA	THERCLR
	MOVF	ENERGY10,0
	CPFSGT	ENERGY5
	BRA	THER4
	BRA	THER0
THER4	CPFSEQ	ENERGY5
	BRA	THERCLR
THER0	MOVF	ENERGY10,0	;THE ENERGY IS DECREASING
	SUBWF	ENERGY5,1
	MOVF	ENERGY11,0
	SUBWFB	ENERGY6,1
	MOVF	ENERGY12,0
	SUBWFB	ENERGY7,1
	MOVF	ENERGY13,0
	SUBWFB	ENERGY8,1
	BTFSC	STATUS,0
	BRA	THEREND
	DECF	ENERGY9
THERCLR	BCF	SIGN1,6		;CLEAR THE FLAG BIT OF LONG DELAY
	CLRF	ENERGY5		;CLEAR THE MEMORY OF ENERGY
	CLRF	ENERGY6
	CLRF	ENERGY7
	CLRF	ENERGY8
	CLRF	ENERGY9
	CLRF	ENERGY10
	CLRF	ENERGY11
	CLRF	ENERGY12
	CLRF	ENERGY13
	CLRF	COUNT5		;CLEAR THE COUNT
	CLRF	COUNT6
THEREND	RETURN
;***********16B - 16B SUBROUTINE : (OPER3:OPER2-OPER1:OPER0=OPER3:OPER2) ***************
WORDSUB	COMF	OPER0		;5 ROWS BLOW WILL BE COMPLEMENT
	INCF	OPER0
	BTFSC	STATUS,2
	DECF	OPER1
	COMF	OPER1
;***********16 B + 16 B SUBROUTINE :(OPER3:OPER2+OPER1:OPER0=OPER3:OPER2)****************
WORDADD	MOVF	OPER0,0
	ADDWF	OPER2		;ADD THE LOWER 8 BIT
	BTFSC	STATUS,0	;ADD THE CARRY
	INCF	OPER3
	MOVF	OPER1,0
	ADDWF	OPER3
	RETLW	0		;THE END
;**************************MY FILTER SUBRO

⌨️ 快捷键说明

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