MOV LW 000H ; WRITE DISABLE COMMAND
MOV WF OUTBYT
CALL SENDC
BCF PORTB,CS ; END OF DISABLE COMMAND, DESELECT
INCF ADDRESS,F ; POINT TO NEXT EEPROM ADDRESS ( BY DEFAULT )
RETLW 0H
;------------------------------------------------------------------------------
;
; FUNCTION : EEREAD ()
;
; DESCRIPTION : READ 16 BIT VALUE FROM EEPROM
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
EEREAD
MOV FW ADDRESS
MOV WF OUTBYT
BSF OUTBYT,7 ; COMMAND = READ
CALL SENDC ; SEND COMMAND
MOV LW RDCFG
TRIS PORTB ; DIO = INPUT
MOV LW 16D ; 16 BITS TO READ
MOV WF CNT1
READ0 BSF PORTB,CLK ; CLOCK HIGH
RLF TMP2,F ; SHIFT LO BYTE
BCF TMP2,0 ; ASSUME BIT WILL BE 1
BTFSC PORTB,DIO ; READ DIO LINE
BSF TMP2,0 ; COPY BIT TO REGISTER
BCF PORTB,CLK ; CLOCK LOW
RLF TMP1,F ; SHIFT HI BYTE
DECFSZ CNT1,F ; LOOP COUNTER
GOTO READ0
BCF PORTB,CS ; END READ CYCLE
RETLW 0H
;------------------------------------------------------------------------------
;
; FUNCTION : DECRYPT ()
;
; DESCRIPTION : DECRYPTS 32 BIT [HOP1:HOP4] USING [CSR0:CSR7]
;
; NOTE : THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;------------------------------------------------------------------------------
; THE KEY USED IS A FIXED KEY WHICH IS NOT SERIAL NUMBER DEPENDANT
; THE USER MUST CHOOSE A KEY AND CHANGE THE CODE HERE TO REFLECT THAT KEY
DECRYPT
MOV LW 0EFH ; LOAD FIXED 64 BIT KEY LSB
MOV WF KEY0
MOV LW 0CDH
MOV WF KEY1
MOV LW 0ABH
MOV WF KEY2
MOV LW 089H
MOV WF KEY3
MOV LW 067H
MOV WF KEY4
MOV LW 045H
MOV WF KEY5
MOV LW 023H
MOV WF KEY6
MOV LW 01H ; LOAD FIXED 64 BIT KEY MSB
MOV WF KEY7
MOV LW 11+1 ; OUTER LOOP 11+1 TIMES
MOV WF CNT1 ; OUTER LOOP 11+1 TIMES
DECRYPT_OUTER
MOV LW 48 ; INNER LOOP 48 TIMES
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页
本文关键字:源程序 PIC单片机,单片机-工控设备 - PIC单片机