📄 sub_func.inc
字号:
;-----------------------------------------------------------
;SubFunction
;-----------------------------------------------------------
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sub_Bit16:
comf Temp1,F
incf Temp1,F
btfsc STATUS,Z
decf Temp2,F
comf Temp2,F
movf Temp1,W
addwf Temp3,F
btfsc STATUS,C
incf Temp4,F
movf Temp2,W
addwf Temp4,F
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Serial_Number_Check:
btfsc Serial3,3
goto Serial_Number_All_Zero
movf Serial3,W
andlw b'00001111'
iorwf Serial2,W
iorwf Serial1,W
iorwf Serial0,W
skpz
goto Serial_Number_No_Zero
Serial_Number_All_Zero:
bcf STATUS,C
return
Serial_Number_No_Zero:
bsf STATUS,C
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Serial_Number_Compare:
movf Key_Temp_Address,W
addlw d'4'
movwf Eeprom_Address
movlw RKE_Syn_Temp1
movwf FSR
movlw d'4'
movwf Eeprom_Number
call Read_Eeprom
movf Serial0,W
subwf RKE_Syn_Temp1,W
skpz
goto Serial_Number_Compare_Not_Same
movf Serial1,W
subwf RKE_Syn_Temp2,W
skpz
goto Serial_Number_Compare_Not_Same
movf Serial2,W
subwf RKE_Syn_Temp3,W
skpz
goto Serial_Number_Compare_Not_Same
movf Serial3,W
andlw b'00001111'
subwf RKE_Syn_Temp4,W
andlw b'00001111'
skpz
goto Serial_Number_Compare_Not_Same
Serial_Number_Compare_Same:
bcf STATUS,C
return
Serial_Number_Compare_Not_Same:
bsf STATUS,C
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hop_Tran:
movf Hop_Recieve1,W
movwf HOP1
movf Hop_Recieve2,W
movwf HOP2
movf Hop_Recieve3,W
movwf HOP3
movf Hop_Recieve4,W
movwf HOP4
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Decrypt_Key_Tran:
movf Key_Temp_Address,W
addlw d'8'
movwf Eeprom_Address
movlw KEY0
movwf FSR
movlw d'8'
movwf Eeprom_Number
call Read_Eeprom
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Syn_Counter_Save:
bsf WRITE_EEPROM_ENABLE
movf HOP1,W
movwf RKE_Syn_Temp2
movwf RKE_Syn_Temp3
movf HOP2,W
movwf RKE_Syn_Temp1
movwf RKE_Syn_Temp4
movf Key_Temp_Address,W
movwf Eeprom_Address
movlw RKE_Syn_Temp1
movwf FSR
movlw d'2'
movwf Eeprom_Number
call Write_Eeprom
movf Key_Temp_Address,W
addlw d'2'
movwf Eeprom_Address
movlw RKE_Syn_Temp3
movwf FSR
movlw d'2'
movwf Eeprom_Number
call Write_Eeprom
bcf WRITE_EEPROM_ENABLE
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Manufacture_Key_Tran:
movlw MANU7
movwf KEY7
movlw MANU6
movwf KEY6
movlw MANU5
movwf KEY5
movlw MANU4
movwf KEY4
movlw MANU3
movwf KEY3
movlw MANU2
movwf KEY2
movlw MANU1
movwf KEY1
movlw MANU0
movwf KEY0
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Serial_Number_Tran:
movf Serial0,W
movwf HOP1
movf Serial1,W
movwf HOP2
movf Serial2,W
movwf HOP3
movf Serial3,W
movwf HOP4
return
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Learn_Decrypt_Key_Get:
call Manufacture_Key_Tran
call Serial_Number_Tran
movlw b'00001111'
andwf HOP4,F
movlw b'00100000'
iorwf HOP4,F
call DECRYPT
movf HOP1,W
movwf RKE_Syn_Temp1
movf HOP2,W
movwf RKE_Syn_Temp2
movf HOP3,W
movwf RKE_Syn_Temp3
movf HOP4,W
movwf RKE_Syn_Temp4
call Manufacture_Key_Tran
call Serial_Number_Tran
movlw b'00001111'
andwf HOP4,F
movlw b'01100000'
iorwf HOP4,F
call DECRYPT
movf HOP1,W
movwf KEY4
movf HOP2,W
movwf KEY5
movf HOP3,W
movwf KEY6
movf HOP4,W
movwf KEY7
movf RKE_Syn_Temp1,W
movwf KEY0
movf RKE_Syn_Temp2,W
movwf KEY1
movf RKE_Syn_Temp3,W
movwf KEY2
movf RKE_Syn_Temp4,W
movwf KEY3
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -