Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: sha en 11 de Noviembre de 2009, 04:45:22
Título: Ayuda lectura entrada analógica 16f88
Publicado por: sha en 11 de Noviembre de 2009, 04:45:22
Buenas, soy nuevo en el foro. Estoy intentando hacer un programa en asm para leer entrada analógica de 16f88, pero no se inmuta cuando lo pruebo en la placa.
list p=16F88
INCLUDE "p16f88.inc" RADIX HEX
ORG 0x00 CLRF STATUS ;se asegura que este en el BANK0 CLRF PCLATH ;Se asegura que este en el PAGE0 GOTO inicio
CONV_AN0 movlw B'01000001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA0/AN10)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN0 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN0 movf ADRESH,w ;Conversión efectuada, salvo ADRESH en W movwf AN2H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN2L bcf ADCON0,2 return
COMP_0 movlw B'00110011' ;Carga menos peso del dato B (sustraendo) subwf AN2L,W ;Resta AN2L-Contenido de W (minuendo) movwf R1L ;Almacena el resultado movlw B'00000011' ;Carga más peso del dato B (sustraendo) btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) subwf AN2H,W ;Resta más peso del dato A (minuendo) movwf R1H ;Guarda el resultado
btfss R1H,7 ;Comprobamos bit 7 de R1H goto MAYOR_4 ;Si es 1, Es mayor que 4V goto COMP_1 ;Si es 0, hay que seguir comprobando MAYOR_4 bsf PORTB,3 bcf PORTB,2 bcf PORTB,1 bcf PORTB,0 goto LEER_EN_1
COMP_1 movlw B'01100110' ;Carga menos peso del dato B (sustraendo) subwf AN2L,W ;Resta AN2L-Contenido de W (minuendo) movwf R1L ;Almacena el resultado movlw B'00000010' ;Carga más peso del dato B (sustraendo) btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) subwf AN2H,W ;Resta más peso del dato A (minuendo) movwf R1H ;Guarda el resultado
btfss R1H,7 ;Comprobamos bit 7 de R1H goto MAYOR_3 ;Si es 1, Es mayor que 4V goto COMP_2 ;Si es 0, hay que seguir comprobando MAYOR_3 bcf PORTB,3 bsf PORTB,2 bcf PORTB,1 bcf PORTB,0 goto LEER_EN_1
COMP_2 movlw B'10011001' ;Carga menos peso del dato B (sustraendo) subwf AN2L,W ;Resta AN2L-Contenido de W (minuendo) movwf R1L ;Almacena el resultado movlw B'00000001' ;Carga más peso del dato B (sustraendo) btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) subwf AN2H,W ;Resta más peso del dato A (minuendo) movwf R1H ;Guarda el resultado
btfss R1H,7 ;Comprobamos bit 7 de R1H goto MAYOR_2 ;Si es 1, Es mayor que 4V goto COMP_3 ;Si es 0, hay que seguir comprobando MAYOR_2 bcf PORTB,3 bcf PORTB,2 bsf PORTB,1 bcf PORTB,0 goto LEER_EN_1
COMP_3 movlw B'11001100' ;Carga menos peso del dato B (sustraendo) subwf AN2L,W ;Resta AN2L-Contenido de W (minuendo) movwf R1L ;Almacena el resultado movlw B'00000000' ;Carga más peso del dato B (sustraendo) btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) subwf AN2H,W ;Resta más peso del dato A (minuendo) movwf R1H ;Guarda el resultado
btfss R1H,7 ;Comprobamos bit 7 de R1H goto MAYOR_1 ;Si es 1, Es mayor que 4V goto LEER_EN_1 ;Si es 0, hay que seguir comprobando MAYOR_1 bcf PORTB,3 bcf PORTB,2 bcf PORTB,1 bsf PORTB,0 goto LEER_EN_1
end
ESte es el programa, alguien me podría echar una mano.
Título: Re: Ayuda lectura entrada analógica 16f88
Publicado por: Suky en 11 de Noviembre de 2009, 10:04:52
Esta parte del código:
Código: ASM
movlw B'01000001';Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA0/AN10)y hago operativo el módulo convertidor con el último bit a 1
iría una sola vez pero en el inicio del programa, donde se inician las configuraciones.
Luego, después de seleccionar un canal se debe esperar mínimo 20us para que el capacitor interno se cargue con el valor analógico y recién comenzar la conversión. Aquí (http://www.todopic.com.ar/foros/index.php?topic=27929.0) mas información al respecto.
Saludos!
Título: Re: Ayuda lectura entrada analógica 16f88
Publicado por: sha en 11 de Noviembre de 2009, 21:02:05
Mucha gracias por la ayuda. He conseguido hacerlo funcionar. Aun así le he añadido ese retardo, por si acaso. Dejo el programa, por si le sirve a alguin. Nuchas gracias por la colaboración.
list p=16F88
INCLUDE "p16f88.inc" RADIX HEX
ORG 0x00 CLRF STATUS ;se asegura que este en el BANK0 CLRF PCLATH ;Se asegura que este en el PAGE0 GOTO inicio
CONV_AN0 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01000001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA0/AN0)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN0 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN0 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN0H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN0L bcf ADCON0,2 return
CONV_AN1 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01001001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA1/AN1)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN1 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN1 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN1H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN1L bcf ADCON0,2 return
CONV_AN2 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01010001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA0/AN0)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN2 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN2 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN2H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN2L bcf ADCON0,2 return
CONV_AN3 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01011001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA1/AN1)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN3 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN3 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN3H bsf STATUS,5 movf ADRESL,W ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN3L bcf ADCON0,2 return
;*************************************************COMPARACIÓN AN0 CON AN2*********************************************************
COMP_0 movf AN2L,W ;Cargamos el dato de menos peso de tensión de referencia de la batería (AN2L). subwf AN0L,W ;Restamos el valor AN0L (valor de tensión de batería)- AN2L (valor de tensión de referencia de batería). movwf R1L ;Almacena el resultado en R1L movf AN2H,W ;Cargamos el dato de más peso de la tensión de referencia de la batería (AN2H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN2H. subwf AN0H,W ;Restamos el valor AN0H (valor de tensión de batería)- AN2H (valor de tensión de referencia de batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto COMP_EN_1 ;Si es 1, Tensión de batería AN0 es menor que AN2. goto LEER_EN_1 ;Si es 0, Tensión de batería AN0 es mayor que AN2.
;*************************************************COMPARACIÓN Y COMPROBACIÓN AN0 CON AN2***********************************************
COMP_1 movf AN2L,W ;Cargamos el dato de menos peso de tensión de referencia de la batería (AN2L). subwf AN0L,W ;Restamos el valor AN0L (valor de tensión de batería)- AN2L (valor de tensión de referencia de batería). movwf R1L ;Almacena el resultado en R1L movf AN2H,W ;Cargamos el dato de más peso de la tensión de referencia de la batería (AN2H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN2H. subwf AN0H,W ;Restamos el valor AN0H (valor de tensión de batería)- AN2H (valor de tensión de referencia de batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto CAR_BAT ;Si es 1, Tensión de batería AN0 es menor que AN2. goto LEER_EN_1 ;Si es 0, Tensión de batería AN0 es mayor que AN2.
;*************************************************COMPARACIÓN AN1 CON AN3****************************************************
COMP_2 movf AN3L,W ;Cargamos el dato de menos peso de Intensidad de referencia de la carga de la batería (AN3L). subwf AN1L,W ;Restamos el valor AN1L (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1L ;Almacena el resultado en R1L movf AN3H,W ;Cargamos el dato de más peso de la Intensidad de referencia de la carga de la batería (AN3H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN3H. subwf AN1H,W ;Restamos el valor AN1H (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto COMP_EN_2 ;Si es 1, Intensidad de batería AN1 es menor que AN3. goto LEER_EN_2 ;Si es 0, Intensidad de batería AN1 es mayor que AN3.
;*************************************************COMPARACIÓN Y COMPROBACIÓN AN1 CON AN3****************************************
COMP_3 movf AN3L,W ; subwf AN1L,W ; movwf R1L ; movf AN3H,W ; btfss STATUS,C ; addlw 1 ; subwf AN1H,W ;Restamos el valor AN1H (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1H ;Guarda el resultado
CONV_AN0 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01000001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA0/AN0)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 call DEMORA bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN0 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN0 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN0H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN0L bcf ADCON0,2 return
CONV_AN1 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01001001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA1/AN1)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 call DEMORA bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN1 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN1 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN1H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN1L bcf ADCON0,2 return
CONV_AN2 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01010001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA0/AN0)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 call DEMORA bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN2 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN2 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN2H bsf STATUS,5 movf ADRESL,w ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN2L bcf ADCON0,2 return
CONV_AN3 bcf INTCON,GIE bcf INTCON,PEIE movlw B'01011001' ;Configuro ADCON0 para Fosc/8, Selecciono canal 0 (RA1/AN1)y hago operativo el módulo convertidor con el último bit a 1 movwf ADCON0 call DEMORA bsf ADCON0,2 ;Comienzo conversión
ESP_CONV_AN3 btfsc ADCON0,2 ;Espero a que finalice la conversión goto ESP_CONV_AN3 movf ADRESH,W ;Conversión efectuada, salvo ADRESH en W movwf AN3H bsf STATUS,5 movf ADRESL,W ;Conversión efectuada, salvo ADRESL en W bcf STATUS,5 movwf AN3L bcf ADCON0,2 return
;*************************************************COMPARACIÓN AN0 CON AN2*********************************************************
COMP_0 movf AN2L,W ;Cargamos el dato de menos peso de tensión de referencia de la batería (AN2L). subwf AN0L,W ;Restamos el valor AN0L (valor de tensión de batería)- AN2L (valor de tensión de referencia de batería). movwf R1L ;Almacena el resultado en R1L movf AN2H,W ;Cargamos el dato de más peso de la tensión de referencia de la batería (AN2H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN2H. subwf AN0H,W ;Restamos el valor AN0H (valor de tensión de batería)- AN2H (valor de tensión de referencia de batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto COMP_EN_1 ;Si es 1, Tensión de batería AN0 es menor que AN2. goto LEER_EN_1 ;Si es 0, Tensión de batería AN0 es mayor que AN2.
;*************************************************COMPARACIÓN Y COMPROBACIÓN AN0 CON AN2***********************************************
COMP_1 movf AN2L,W ;Cargamos el dato de menos peso de tensión de referencia de la batería (AN2L). subwf AN0L,W ;Restamos el valor AN0L (valor de tensión de batería)- AN2L (valor de tensión de referencia de batería). movwf R1L ;Almacena el resultado en R1L movf AN2H,W ;Cargamos el dato de más peso de la tensión de referencia de la batería (AN2H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN2H. subwf AN0H,W ;Restamos el valor AN0H (valor de tensión de batería)- AN2H (valor de tensión de referencia de batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto CAR_BAT ;Si es 1, Tensión de batería AN0 es menor que AN2. goto LEER_EN_1 ;Si es 0, Tensión de batería AN0 es mayor que AN2.
;*************************************************COMPARACIÓN AN1 CON AN3****************************************************
COMP_2 movf AN3L,W ;Cargamos el dato de menos peso de Intensidad de referencia de la carga de la batería (AN3L). subwf AN1L,W ;Restamos el valor AN1L (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1L ;Almacena el resultado en R1L movf AN3H,W ;Cargamos el dato de más peso de la Intensidad de referencia de la carga de la batería (AN3H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN3H. subwf AN1H,W ;Restamos el valor AN1H (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto COMP_EN_2 ;Si es 1, Intensidad de batería AN1 es menor que AN3. goto LEER_EN_2 ;Si es 0, Intensidad de batería AN1 es mayor que AN3.
;*************************************************COMPARACIÓN Y COMPROBACIÓN AN1 CON AN3****************************************
COMP_3 movf AN3L,W ;Cargamos el dato de menos peso de Intensidad de referencia de la carga de la batería (AN3L). subwf AN1L,W ;Restamos el valor AN1L (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1L ;Almacena el resultado en R1L movf AN3H,W ;Cargamos el dato de más peso de la Intensidad de referencia de la carga de la batería (AN3H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN3H. subwf AN1H,W ;Restamos el valor AN1H (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf R1H ;Guarda el resultado
btfsc R1H,7 ;Comprobamos bit 7 de R1H goto MEDIR_TENSION ;Si es 1, Intensidad de batería AN1 es menor que AN3. goto LEER_EN_2 ;Si es 0, Intensidad de batería AN1 es mayor que AN3.
end
Título: CONSEGUIDO
Publicado por: sha en 30 de Julio de 2010, 08:01:32
Hola a todos. Por motivos personales dejé el tema un poco colgado, pero ya conseguí hacerlo funcionar. El problema para leer la entrada analógica era el procedimiento. El programa que voy a poner sirve para leer la tensión en una batería y cuando baja por debajo de un valor, se activa una salida que arrancar un cargador de baterias, en ese momento comenzamos a leer la intensidad entre el cargador y la batería cuando se haya cargado la batería quitamos el cargador y volvemos a leer la tensión. Todo ello se visualiza en una pantalla lcd.
; ****CONFIGURACIÓN DEL MICROCONTROLADOR****
List p=16F88 ;Tipo de procesador include "P16F88.INC" ;Definiciones de registros internos
org 0x00 ;Vector de Reset goto Inicio org 0x05 ;Salva vector de interrupción
include "lcd_4bit_pb_1.inc" ;Incluye las rutinas de manejo del LCD include "retardos.inc" ;Incluye las rutinas de manejo del LCD
;********************************************************************************* ;Delay_var: Esta rutina de propósito general realiza una temporización variable ;entre 50 mS y 12.8". Se emplea un preescaler de 256 y al TMR0 se le carga con 195. ;La velocidad de trabajo es de 4Mhz y por tanto el TMR0 se incrementa cada uS. De ;esta forma, el TMR0 debe contar 195 eventos que, con un preescaler de 256 hace una ;intervalo total de 50000 uS/50 mS (195 * 256). El valor 195 hay que expresarlo ;en Hex. (c3) y como el TMR0 es ascendente habrá que cargar su complemento (3C hex.) ;Dicho intervalo de 50 mS se repite tantes veces como indique la variable "Delay_cont", ;es por ello que el delay mínimo es de 50 mS ("Delay_cont=1) y el máxima de 12.8" ;(Delay_cont=255).
Delay_var: bcf INTCON,TMR0IF ;Desconecta el flag de rebosamiento movlw 0x3c ;Complemento hex. de 195 movwf TMR0 ;carga el TMR0 Intervalo clrwdt ;Refrescar el WDT btfss INTCON,TMR0IF ;Rebasamiento del TMR0 ?? goto Intervalo ;Todavía no decfsz Delay_Cont,F ;Decrementa contador de intervalos goto Delay_var ;Repite el intervalo de 50 mS return
DIV_3FF_U movlw 0xFF ;Cargamos el dato de menos peso de Intensidad de referencia de la carga de la batería (AN3L). subwf Med_conv1_P,W ;Restamos el valor Med_conv1_P - FF. movwf P1L ;Almacena el resultado en P1L movlw 0x03 ;Cargamos el dato de más peso de la Intensidad de referencia de la carga de la batería (AN3H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN3H. subwf Med_conv2_P,W ;Restamos el valor AN1H (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf P1H ;Guarda el resultado movf P1L,W movwf Med_conv1_P movf P1H,W movwf Med_conv2_P
btfsc P1H,7 ;Comprobamos bit 7 de R1H goto MUL_10 ;Si es 1, Intensidad de batería AN1 es menor que AN3. incf Salida_Unidad,1 ;Si es 0, Intensidad de batería AN1 es mayor que AN3. goto DIV_3FF_U
DIV_3FF_C movlw 0xFF ;Cargamos el dato de menos peso de Intensidad de referencia de la carga de la batería (AN3L). subwf Med_conv1_M,W ;Restamos el valor Med_conv1_P - FF. movwf P1L ;Almacena el resultado en R1L movlw 0x03 ;Cargamos el dato de más peso de la Intensidad de referencia de la carga de la batería (AN3H). btfss STATUS,C ;Hubo acarreo (CARRY = 0) anterior ?? addlw 1 ;Si, añade 1 al acumulador (sustraendo) AN3H. subwf Med_conv2_M,W ;Restamos el valor AN1H (valor de Intensidad de la carga de la batería)- AN3L (valor de Intensidad de referencia de la carga de la batería). movwf P1H ;Guarda el resultado movf P1L,W movwf Med_conv1_M movf P1H,W movwf Med_conv2_M btfsc P1H,7 ;Comprobamos bit 7 de R1H return ;Si es 1, Intensidad de batería AN1 es menor que AN3. incf Salida_Coma,1 ;Si es 0, Intensidad de batería AN1 es mayor que AN3. goto DIV_3FF_C
;*************************************************COMPARACIÓN AN0 CON AN2*********************************************************
Título: Re: Ayuda lectura entrada analógica 16f88
Publicado por: pibe en 30 de Julio de 2010, 08:29:02
Buenísimo! Creo que un día de estos voy a tener que robarte tu código :mrgreen:
Lo mejor sería que abrieses un nuevo tema "cargador de baterias con LCD" o algo por el estilo y lo pusieses ahí, porque sino se perderá este post en el olvido.
Otra cosa, no tendrás el esquema ? ;-)
Título: Re: Ayuda lectura entrada analógica 16f88
Publicado por: sha en 06 de Septiembre de 2010, 11:02:04