status		equ	3h
trisa		equ	5h
trisc		equ	7h
portc		equ	7h
portb		equ	6h
porta		equ	5h
trisb		equ	6h
adcon1		equ	1fh
adcon0		equ	1fh
adresh		equ	1eh
adresl		equ	9eh
conta1		equ	20h
eecon1		equ	18ch
eecon2		equ	18dh
eedata		equ	10ch
eeadr		equ	10dh




			org	00h
reset			goto	inicio
;
			org	05h
;
escribir_eeprom	
		bsf 	status,6
		bsf	status,5		;selecciona  banco 3			
		bcf 	eecon1,7		;acceso a la EEPROM
		bsf	eecon1,2		;permiso de escritura
		movlw	b'01010101'
		movwf	eecon2
		movlw	b'10101010'
		movwf	eecon2			;se meten los valores en el registro de seguridad eecon2 tal como recomienda el fabricante
		bsf	eecon1,1		;orden de escritura
;

espera		btfsc	eecon1,1		;testea fin de escritura
		goto	espera
		bcf	eecon1,2		;se borra el flag de fin de escritura
		bcf	eecon1,3		;se prohibe la escritura de nuevos datos
		bcf	status,5
		bcf	status,6		;selecciona el banco 0
		return
;

inicio		
		bsf	status,5		;selecciona el banco 1
		clrf	trisb			;puertas B se configura como salida
		clrf	trisc			;portC como salidas
		movlw	3fh					
		movwf	trisa			;configura pta a como entradas
		movlw	b'10001110'		;Ra0 como entrada analogica,
		movwf	adcon1			;las demas como entradas digitales y justificacion a la derecha
		bcf	status,5		;selecciona banco 0
;
		movlw	b'00000001'		;oscilador 2*tosc  C A/D,			
		movwf	adcon0			;el bit ADON esta en 1 activa el C A/D, selecciona canal A0	
;
			
		bsf	status,6		;selecciona el banco 2
		clrf	eeadr			;selecciona direccion 00 de eeprom
		bcf	status,6		;banco 0

;

comienzo	btfsc	porta,3
		goto	comienzo
;
                  			
echoff		clrf	conta1
del1		decfsz	conta1,1
		goto	del1
;

conversion	bsf	adcon0,2		;inicio de la conversion
nolisto		btfsc	adcon0,2
		goto	nolisto
;
			
		movf	adresh,w
		bcf	status,5
		bsf	status,6		;banco2
		movwf	eedata
		call	escribir_eeprom
		bsf	status,6		;banco2
		incf	eeadr,1
		bsf	status,5
		bcf	status,6		;banco1
		movf	adresl,w
		bcf	status,5		;banco2
		bsf	status,6
		movwf	eedata
		call	escribir_eeprom
			
			
			
			
;

visualiza	bsf	status,5
		movf	adresl,w
		bcf	status,5
		movwf	portb
		movf	adresh,w
		movwf	portc
		goto	comienzo

		end
	
