Problema con voltimetro...

hice un voltimetro de 0-30 DV con un pic 16f819, en lenguaje basic, y sucede que que solo mide hasta 25 V, despues de ese valor tira cualquier valor...
Aqui el codigo aver si me pueden ayudar que se los agradeceria mucho..., yo lo que entiendo es que la variable "valor1" al llegar a su limite de 255 vuelve a 0, pero cambie la variable byte, por word y nada todo sigue igual, y mas de 255 puede entrar tranquilamente en la variable word...
en fin el voltimetro mide perfecto hasta los 25,5 volt despues de ahi nada.........

Código:
TRISA=%1
ADCON1=%00001110
TRISB=0

define ADC_BITS 8
define ADC_CLOCK 3
define ADC_SAMPLEUS 50


datos   var byte
valor1  var word
digito1 var byte
digito2 var byte
digito3 var byte

        portb=0
inicio:
        adcin 0, datos 
        valor1=(datos*300)/255
        digito1=valor1/100
        digito2=(valor1-(digito1*100))/10
        digito3=valor1-((digito1*100)+(digito2*10))
        portb=128+digito1
        pause 5
        portb=64+digito2
        pause 5
        portb=32+digito3
        pause 5 
        Goto inicio                                     

        End ...
 
Última edición:
Hola Amigo, bueno supongo que al convertidor ADC, lo has configurado a 10bits.
Pues si es así!, cuando asignas el valor del ADC a la variable "datos", ésta está configurada a modo byte (8bits).
Además, la variable "valor1", si bien está asignada a formato word, pero cuando la variable "datos"=255, al multiplicarla por 300, desbordas a variable "valor1".
 
amigo muchas gracias te agradezco mucho la respuesta, ahora voy a editar la publicación y subir mi voltimetro... que buee yo lo quería de 30V pero salio de 25 jaja... de enserio muchas gracias
 
Amigo, si el ADC del microcontrolador permite una resolución de 10bits, es decir 1024 valores. Pues, si a tu voltímetro lo utilizas con un decimal de precisión. Estaría más que suficiente para medir 30.0V.
 
Atrás
Arriba