Hola latch.
No entiendo muy bien lo que quieres hacer pero... para grabar/leer cualquier dato en la eeprom del pic puedes utilizar estas funciones. Doy fé que funcionan perfectamente.
#############################################
EE_Write
bsf STATUS,RP0 ;Selecciona banco 3
bsf STATUS,RP1 ;Selecciona banco 3
bcf EECON1,EEPGD ; acceso a la memoria FLASH "1" o a la EEPROM "0"
bsf EECON1,WREN ;Permiso de escritura
bcf INTCON,GIE ;Prohibimos acceso a las interrupciones
;---------------------------------------------------------------------------
movlw b"01010101"
movwf EECON2
movlw b"10101010"
movwf EECON2 ;Secuencia establecida por Microchip
bsf EECON1,WR ;Orden de escritura
;---------------------------------------------------------------------------
bsf INTCON,GIE
bcf EECON1,WREN ;Se prohibe la escritura
bcf STATUS,RP1 ;Selección banco 0
bcf STATUS,RP0 ;Selección banco 0
wait btfss PIR2,EEIF
goto wait
bcf PIR2,EEIF
return
#############################################
;EE_Read: Leer un byte de la EEPROM. Se supone al registro EEADR cargado con la direc-
;ción a leer. En EEDATA aparecerá el dato leído.
EE_Read
bsf STATUS,RP0 ; Selecciona banco 3
bsf STATUS,RP1 ; Selecciona banco 3
bcf EECON1,EEPGD ; Para acceder a la memoria de DATOS
bsf EECON1,RD ; Orden de lectura
bcf STATUS,RP0 ; Selecciona banco 2
bsf STATUS,RP1 ; Selecciona banco 2
movf EEDATA,W ; W=EEDATA
return
#############################################
Como se utilizan???
Si queremos guardar el número 235 en la dirección 3 de la eeprom pondremos:
bsf STATUS,RP1 ; BANCO 2
bcf STATUS,RP0
movlw 0x03 ; Dirección 3 de la EEPROM
movwf EEADR
movlw .235 ; Guardamos el número .235
movwf EEDATA
call EE_Write
Justo despues del "call" tendrás en la la direccion 3 de la eeprom el 235.
Ahora aunque apagemos el pic y lo encendamos ese dato no se borrará.
Como leemos ese dato desde la eeprom???
bsf STATUS,RP1 ; BANCO 2
bcf STATUS,RP0
movlw 0x03 ; Miramos en la posicion 0x03
movwf EEADR
call EE_Read
bcf STATUS,RP1 ; Banco 0
bcf STATUS,RP0
movwf NUMERO_EEPROM
En este punto lo que tendremos guardado en "NUMERO_EEPROM" será el valor de la dirección 3 de la eeprom (el 235 que, por ejemplo, habíamos guardado antes).
Espero que te sirva de algo.
Un saludo desde Alicante.