📄 hst1l.asm
字号:
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 + -