EEPROM memória. D: 34 old.
73. old.
Különböző memóriák írásvédelmét lehet beállítani:
CONFIGURATION WORD 4H (30 0007h) - Konfigurációs részben lehet beállítani
WRTD: Data EEPROM Write Protection bit(1,4)
1 = Data EEPROM NOT write-protected (Nem írásvédett és ez az alapértelmezett)
0 = Data EEPROM write-protected (Írásvédett, amit a bit 0-ra állításával lehet megoldani)
CONFIGURATION WORD 5L (30 0008h)
CP: User Program Flash Memory and Data EEPROM Code Protection bit
1 = User Program Flash Memory and Data EEPROM code protection is disabled (Ez az alapértelmezett)
(A felhasználói program flash memória és az adatok EEPROM kód védelme le van tiltva)
0 = User Program Flash Memory and Data EEPROM code protection is enabled
80. old.
3F FF06h - 3F FF07hEESIZ Data EEPROM memory size 256
189. old.
NVMDAT-ba kell beírni az adatot és innen olvasható ki ha engedélyezve van a konfigorációban.
192. old.
NCMCON1 és NVMCON2 regiszterekkel lehet konfiguránl
206. oldaltól
208. oldalon van az olvasási és írási művelet!
212. oldalon van a regiszter összesítő.
Konfigurációban két beállítás szükséges az írás/olvasáshoz:
WRTD = OFF ; Data EEPROM not write-protected (Írható az EEPROM)
CP = OFF ; PFM and Data EEPROM code protection disabled (Nincs kódvédelem)
tablat kezdo_vagy_vegcim; Megadunk egy címet, amit majd jelzünk, hogy kezdő, vagy végcím
tblptr
http://technology.niagarac.on.ca/staff/mboldin/18F_Instruction_Set/TBLRD.html
Letölteni: https://owd.tcnj.edu/~hernande/ELC343/Chapter_02.pdf
; DATA EEPROM READ
; Data Memory Address to read D:208. old
CLRF NVMCON1 ; Setup Data EEPROM Access
MOVF EE_ADDRL, W ;
MOVWF NVMADRL ; Setup Address
BSF NVMCON1, RD ; Issue EE Read
MOVF NVMDAT, W ; W = EE_DATA
; DATA EEPROM WRITE
; Data Memory Address to write
CLRF NVMCON1 ; Setup Data EEPROM Access
MOVF EE_ADDRL,W ;
MOVWF NVMADRL ; Setup Address
; Data Memory Value to write
MOVF EE_DATA,W ;
MOVWF NVMDAT ;
; Enable writesBSF
NVMCON1,WREN ;
; Disable interruptsBCF
INTCON0,GIE ;
; Required unlock sequence
MOVLW 55h ;
MOVWF NVMCON2 ;
MOVLW AAh ;
MOVWF NVMCON2 ;
; Set WR bit to begin write
BSF NVMCON1, WR ;
; Enable INT
BSF INTCON0, GIE ;
; Wait for interrupt, write done
SLEEP ;
; Disable writes
BCF NVMCON1, WREN ;
DATA EEPROM REFRESH ROUTINE
CLRF NVMADRL ; Start at address 0
BCF NVMCON1, CFGS ; Set for memory
BCF NVMCON1, EEPGD ; Set for Data EEPROM
BCF INTCON0, GIE ; Disable interrupts
BSF NVMCON1, WREN ; Enable writes
Loop ; Loop to refresh array
BSF NVMCON1, RD ; Read current address
MOVLW 55h ;
MOVWF NVMCON2 ; Write 55h
MOVLW 0AAh ;
MOVWF NVMCOM2 ; Write 0AAh
BSF NVMCON1, WR ; Set WR bit to begin write
BTFSC NVMCON1, WR ; Wait for write to complete
BRA $-2
INCFSZ NVMADRL, F ; Increment address
BRA LOOP ; Not zero, do it again
BCF NVMCON1, WREN ; Disable writes
BSF INTCON0, GIE ; Enable interrupts