Gracias de todas formas
Bueno buscando por ahi he encontrado la manera de grabar y leer en la eepron desde el programa
LIST P=16F84A
#INCLUDE <P16F84A.INC>
CONTADOR EQU 0CH
ORG 00H
GOTO INICIO
ORG 04H
BCF INTCON,2;BORRA BANDERA
DECFSZ CONTADOR
GOTO CONTINUA;Va a retornar de la int,
GOTO VERSAL
CONTINUA
RETFIE ;Retorna de la subrutina
VERSAL
MOVLW 64H
MOVWF CONTADOR
BTFSS PORTB,0;En el ejemplo nos aseguramos de que el bit 0
;tendra valor logico "1"
GOTO ACTSALIDA
CLRF PORTB;DESACTIVA
RETFIE
ACTSALIDA
;---- Lectura dato -----
;Lee el dato de la memoria y lo saca por el puerto B
BCF STATUS,5 ;Seleccion banco 0
MOVLW 20H ;Se carga la direccion en w
MOVWF EEADR ;Se pasa a EEADR,define la direccion a leer
BSF STATUS,5 ;Seleccion banco 1
BSF EECON1,RD ;Se realiza lectura colocando RD a 1
BCF STATUS,5 ;Regresamos al banco 0
MOVF EEDATA,W ;Se rescata el dato de EEDATA a w
;Ya tenemos el dato en w
MOVWF PORTB ;Lo sacamos en la salida
RETFIE
INICIO
BSF STATUS,5;Banco 1
CLRF TRISB;B SALIDA
MOVLW 07H
MOVWF OPTION_REG;DIVISOR 256
BCF STATUS,5;BAnco 0
MOVLW 0A0H
MOVWF INTCON;HABILITA GIE Y TOIE
;---- Escribimos un dato en memoria ----
;BCF STATUS,5;Banco -- En este caso ya estamos en el banco 0
MOVLW 20H ;Movemos la direccion en la que se guarda el dato
MOVWF EEADR ;Se guarda direccion en EEADR
MOVLW 0AFH ;Dato que deseamos guardar
MOVWF EEDATA ;Se guarda dato en EEDATA
BSF STATUS,5 ;Banco 1
BSF EECON1,WREN ;Activamos permiso de escritura en WREN
;del registro EECON
;Inicio secuencia de escritura
MOVLW 55H ;Inicio instruciones en EECON2
MOVWF EECON2
MOVLW 0AAH
MOVWF EECON2 ;Fin de las instrucciones para EECON2
BSF EECON1,WR ;Comienza la escritura propiamente dicha
;Termina la escritura
;Es un procedimiento estandar solo variaran dato y direccion
TIEMPO
MOVLW 0D8H
MOVWF TMR0;CARGA TIMER
NADA
BTFSC TMR0,7
GOTO NADA
GOTO TIEMPO
END
El programa deberia sacar la informacion guardada en la memoria durante 1 segundo y apagarse otro segundo, pero en relidad no lo hace. Para saber si esta activada, analizo el bit 0 del puerto b,ya que se que el dato introducido tendra su bit0 con valor 1.
El valor si me lo saca, pero no se limpia el puerto B. Despues he leido la eepron y ahi esta el dato,asi que el proposito de grabar y leer lo hace,pero no el timer que esta copiado de hacer un led intermitente.¿Alguien sabe por que me falla?
Y si hay alguna manera de grabar la eepron en la programacion y no mediante programa