He probado algunas rutinas y códigos, incluso siguiendo el datasheet he hecho lo siguiente:
LIST p=16F877A
INCLUDE <P16F877A.INC>
ORG 0X00
DATA_EE_ADDR EQU 0X00
DATA_EE_DATA EQU 0X07
comparador EQU 0x07
BSF STATUS,RP0
CLRF TRISA
BCF STATUS,RP0
CALL Escribe_Eeprom
CALL Lee_Eeprom
SUBLW comparador ; W - comparador > W
BTFSS STATUS,2 ; Si el resultado de la sustracción es 0
CALL Apagar_LED
GOTO Prender_LED
Prender_LED
BCF PORTA,0
CALL Retardo_50ms
GOTO Prender_LED
Apagar_LED
BSF PORTA,1
CALL Retardo_50ms
RETURN
Escribe_Eeprom
BSF STATUS,RP1
BSF STATUS,RP0
BTFSC EECON1,WR
GOTO $-1
BCF STATUS,RP0
MOVF DATA_EE_ADDR,W
MOVWF EEADR
MOVF DATA_EE_DATA,W
MOVWF EEDATA
BSF STATUS,RP0
BCF EECON1,EEPGD
BSF EECON1,WREN
BCF INTCON,GIE
MOVLW 55h
MOVWF EECON2
MOVLW 0xAA
MOVWF EECON2
BSF EECON1,WR
BSF INTCON,GIE
BCF EECON1,WREN
RETURN
Lee_Eeprom
BSF STATUS,RP1
BCF STATUS,RP0
MOVF DATA_EE_ADDR,W
MOVWF EEADR
BSF EECON1,EEPGD
BSF EECON1,RD
BCF STATUS,RP0
MOVF EEDATA,W
RETURN
INCLUDE <Retardos.inc>
END
Pero ahora, ¿como compruebo de que en realidad he grabado la eeprom?, supongo que en Mplab abres la ventana View > EEPROM (pienso que mi código es incorrecto ya que no se modifica ningún valor), ah y he realizado la simulación en Isis y no me sale. De antemano gracias por sus respuestas.