				
			TITLE" MANEJO DE LA MEMORIA EEPROM"
			     
			LIST   P=16f873				

;REGISTROS DE USO ESPECIFICO

dir_ind		equ	00	;direccionamiento indirecto de la RAM
rtcc		equ	01	;reloj de tiempo real
pc		equ	02	;contador de programa
status		equ	03	;registro de estado de la ALU
fsr		equ	04	;datos de la RAM
porta		equ	05	;dato del puerto a
portb		equ	06	;dato del puerto b
portc		equ	07
intcon		equ	0b	;registro de interrupciones

eedata		equ	0c
eeadr		equ	0d

;REGISTROS DE USO GENERAL

;=========================
registro1	equ	20
;===========================================================================

;REGISTROS EN LA PAGINA 1

p_option        equ     01    	;registro de config. del rtcc
trisa           equ     05    	;registro de config. del puerto a
trisb           equ     06    	;registro de config. del puerto b
trisc		equ	07

eecon1		equ	0c
eecon2		equ	0d

;BANDERAS UTILIZADAS DEL REGISTRO STATUS

c               equ     00	;carry
z               equ     02	;cero
rp0             equ     05 	;seleccion de pagina uno
rp1		equ	06

rd		equ	00
wr		equ	01
wren		equ	02

;CONSTANTES DE PROGRAMACION

w               equ     00
f               equ     01
;===========================================================================
		org	0x00		
		
		clrf	registro1
;===========================================================================	
;===========================================================================	
lectura		bsf	status,rp1	;SE PASA A LA PAGINA 2 DE LA RAM
		
		movlw	d'2'		;DIRECCION DONDE SE VA A LEER
		movwf	eeadr
		
		bsf	status,rp0	;SE PASA A LA PAGINA 3 DE LA RAM
		
		bsf	eecon1,rd	;SE DA LA ORDEN DE LECTURA
		
		bcf	status,rp0	;SE PASA A LA PAGINA 2 DE LA RAM
		
		movf	eedata,w	;SE LEE EL DATO ALMACENADO EN LA EEPROM
		
		bcf	status,rp1	;SE PASA A LA PAGINA 0 DE LA RAM
		
		movwf	registro1	;SE CARGA EL DATO ALMACENADO EN LA ROM
					;EN UNA POSICION DE MEMORIA RAM GENERAL
		nop
;==================
escritura	bsf	status,rp1	;SE PASA A LA PAGINA 2 DE LA RAM
		
		movlw	d'2'		;DIRECCION DONDE SE VA A ESCRIBIR
		movwf	eeadr
		
		movf	registro1,w	;SE CARGA EL DATO QUE SE VA A ALMACENAR
		movwf	eedata		;EN LA EEPROM
		
		bsf	status,rp0	;SE PASA A LA PAGINA 3 DE LA RAM
		
		bsf	eecon1,wren	;SE HABILITA LA ESCRITURA
		
		movlw	h'55'		;PALABRA DE CONFIGURACION PARA LA
		movwf	eecon2		;EEPROM
		movlw	h'aa'
		movwf	eecon2
		
		bsf	eecon1,wr	;SE DA INICIO A LA ESCRITURA
		
		btfsc	eecon1,wr	;SE ESPERA QUE FINALICE LA ESCRITURA
		goto	$-1
		
		bcf	status,rp0	;SE PASA A LA PAGINA 0 DE LA RAM
		bcf	status,rp1
;==================		
		nop
		goto	$-1
;===========================================================================

		end
		


