Hola aqui te mando un subrutinas que yo utilizo normalmente para grabar los datos en la EEPROM y leerlas, y verificarlas
Lectura de la EEPROM:
BCF STATUS,RP0 ;Esta instruccion se puede omitir si ya estoy en el banco 0
MOVLW 0X20 ;este valor puede ser cualquiera ya que va hacer una pocición de la memoria
MOVWF EEADR ;eeprom
BSF STATUS,RP0 ;se pone a uno ya que EECON1 esta en el banco 1
BSF EECON1,RD ;comienza la lectura del direccionamiento, en este caso 0X20
BCF STATUS,RP0 ;Banco 0 (normalmente se trabaja en este banco)
MOVF EEDATA,W ;Paso el contenido de la eeprom a la memoria de trabajo
Notese que la última instrucción (MOVF) se puede cambiar por MOVFW y en la tercer columna, no hace falta especificar en donde o sea MOVFW EEDATA
Escritura:
BCF STATUS,RP0 ;Banco cero porque EEADR esta en el banco 0
MOVLW 0X18 ;dirección de la memoria a ser grabada
MOVWF EEADR ;direccionamiento indirecto en este caso 0X18
MOVLW 0X12 ;Este es el valor que se va a grabar en la pocición 0X18 de la eeprom
MOVWF EEDATA ;Direccionamiento indirecto del valor a ser grabado
BSF STATUS,RP0 ;Banco 1
BSF EECON1,WREN ;Permiso de escritura de la eeprom, si no se habilita esto, no se logra nada
MOVLW 0X55 ;A continuación se realiza unos pasos obligatorios para lograr grabar
MOVWF EECON2
MOVLW 0XAA
MOVWF EECON2
BSF EECON1,WR ;Comienza la escritura
ESPERO BTFSC EECON1,WR ;¿Terminó la grabación?
GOTO ESPERO ;No, espero
BCF STATUS,RP0 ;Si, paso al banco 0
Verificación:
BCF STATUS,RP0
MOVLW 0X22 ;posicion de la memoria a verificar
MOVFW EEADR
BSF STATUS,RP0
BSF EECON1,RD
BCF STATUS,RP0
MOVLW 0X15 ;Dato a ferificar
SUBWF EEDATA,W
BTFSS STATUS,Z ;¿La resta dió cero? eso quiere decir que es el valor
GOTO ERROR ;No
...... ;Si
Los puntos suspencivos quiere decir que continuas a tu manera igual pasa en la instruccion anterio
Bueno, espero que te sirva, si no lo entendes avisame.
Saludos