Hola soy nuevo con los microcontroladores y estaba utilizando el ADC de 10 bit de resolucion que trae el PIC16F690, lei la hoja de datos y lo configure tal y como dice esta. Simplemente luego de obtener la conversion en los registros "ADRESH" y  "ADRESL", queria que los mostrara en unos LED conectados en los puertos, nada muy complicado.
En fin estuve lidiando todo el dia con el problema de que no puedo leer los datos del registro ADRESL, intente cambiando el pic, revisando la programacion, hasta hice un programa similar con un PIC16F877 y nada. En la programacion justifique el resultado a la derecha para que 8 bits quedaran en ADRESL y los otros 2 en ADRESH. Sin embargo cuando movia el potenciometro de 5k que estaba leyendo unicamente cambiaban los led que representaban al registro ADRESH. Incluso podia cambiar la programacion para que aparecieran 8 bits en ADRESH y 2 en ADRESL, y aun así solo cambiaban los que representaban al ADRESH. :x
En fin ya no se que hacer, no se si estoy haciendo algo mal en la programacion, por eso la voy a colocar. Ojala me puedan ayudar porque este problema ya me tiene cansado . Lo que pensaba hacer luego era tratar de utilizar un teclado de 3x4 en un solo pin del ADC.
	
	
	
	
		
[/code]
				
			En fin estuve lidiando todo el dia con el problema de que no puedo leer los datos del registro ADRESL, intente cambiando el pic, revisando la programacion, hasta hice un programa similar con un PIC16F877 y nada. En la programacion justifique el resultado a la derecha para que 8 bits quedaran en ADRESL y los otros 2 en ADRESH. Sin embargo cuando movia el potenciometro de 5k que estaba leyendo unicamente cambiaban los led que representaban al registro ADRESH. Incluso podia cambiar la programacion para que aparecieran 8 bits en ADRESH y 2 en ADRESL, y aun así solo cambiaban los que representaban al ADRESH. :x
En fin ya no se que hacer, no se si estoy haciendo algo mal en la programacion, por eso la voy a colocar. Ojala me puedan ayudar porque este problema ya me tiene cansado . Lo que pensaba hacer luego era tratar de utilizar un teclado de 3x4 en un solo pin del ADC.
		Código:
	
	CBLOCK	0X20
RESBAJO		;VARIABLEs PARA GUARDAR DATOS DEL ADC
RESALTO		
	ENDC
	ORG	0
INICIALIZACION:
	CLRF	PORTA
	CLRF	PORTC
	BSF	STATUS,RP0		;BANCO1
	MOVLW	B'00010000'		;FRECUENCIA/8
	MOVWF	ADCON1
	MOVLW	B'11111100'		;RA0/1 SALIDAS EL RESTO ENTRADAS
	MOVWF	TRISA
	CLRF	TRISC			;PUERTO C COMO SALIDA
	BCF	STATUS,RP0		;BANCO0
	BSF	STATUS,RP1		;BANCO2
	MOVLW	B'00000100'		;AN2, EL RESTO DIGITAL
	MOVWF	ANSEL	
	BCF	STATUS,RP1		;BANCO0
	MOVLW	B'10001001'		;JUSTIFICADO A LA DERECHA, CANAL 2, ENCIENDE ADC
	MOVWF	ADCON0
CONVERSION:
	NOP		;ESPERA A QUE EL CAPACITOR DEL MUESTREO SE CARGUE
	NOP
	NOP
	NOP
	NOP
	BSF	ADCON0,GO		;INICIA CONVERSION
	BTFSC	ADCON0,GO		;ESPERA A QUE TERMINE
	GOTO	$-1
	BSF	STATUS,RP0		;BANCO1
	MOVF	ADRESL,W		;PASA RESULTADO BAJO A W
	MOVWF	RESBAJO			;Y LO GUARDA EN UN REGISTRO
	BCF	STATUS,RP0		;BANCO0
	MOVF	ADRESH,W		;PASA RESULTADO ALTO A W
	MOVWF	RESALTO			;Y LO GUARDA EN UN REGISTRO
	MOVF	RESBAJO,W
	MOVWF	PORTC
	MOVF	RESALTO,W
	MOVWF	PORTA
	GOTO	CONVERSION
	END[code]