Buen día Amigos. Estoy tratando de hacer un código para hacer un medidor de voltaje con un PIC 16f877 con salida indicadora de 8 leds por el puerto B. La lectura máxima debe ser de 80 Vdc y por eso voy a usar un divisor de tensión que a full escala le entren al pin A3 5v máximo. Pienso que debo dividir esos 5vdc entre 8, de manera de tener 8 posibles salidas con pasos de 10 volts dc desde fuera del divisor de tensión, hasta un máximo de 80Vdc. Como 5/8 = 0.625 estos valores son los que debería registrar y convertir a digital el controlador, pero no estoy seguro de que sea así. El Código sería el siguiente, pero les agradezco que me corrijan los errores que tiene.
Disculpen pero donde aparece el símbolo ">" va el símbolo " >" (Mayor que). Pasa que copié y pegué el código desde mi PC. El lenguaje es PiC BASIC PRO. No se si se pueda trabajar en el PIC con esos valores decimales que he colocado. Les agradezco mucho su colaboración. Hasta luego.
Mejor por favor revisan el código adjunto porque hay otros errores cuando copié y pegué.
Código:
; Codigo para medidor de voltaje elemental.
; Palabra de configuración.
Device XT_OSC, WDT_OFF, PWRT_ON, BOD_OFF
DEFINE OSC 4
; Configuracion analogica.
DEFINE ADC_BITS 10 \'10 bits de resolucion.
DEFINE ADC_SAMPLEUS 50 \'Tiempo de muestreo en us.
DEFINE ADC_CLOCK 3 \'Este DEFINE lo recomienda el manual de PBP.
Voltaje var word \'Variable para guardar el resultado.
ADCON0 = %11000000 \'Para habilitar red interna RC.
ADCON1 = %10000000 \'Registros ADRESH:ADRESL habilitados.
ANSELH = %00000000 \'Coloca los siete primeros canales como analógicos.
Trisa = %11111111 \'Puerto A como entrada.
Trisb = %00000000 \'Puerto B como salida.
; Programa.
Inicio:
ADCIN 3, Votaje \'Lee el canal 3 y lo coloca en Voltaje.
if Voltaje > 5 Then Uno \'Para un rango entre 4.375 y 5 va a Dos.
if Voltaje > 4.375 Then Dos
if Voltaje > 3.750 Then Tres \'Entre 3.750 y 4.375 Va a Tres.
if Voltaje > 3.125 Then Cuatro \'Entre 3.750 y 3.125 va a cuatro.
if Voltaje > 2.5 Then Cinco \'Entre 3.125 y 2.5 va a cinco.
if Voltaje > 1.875 Then Seis \'Entre 2.5 y 1.875 va a seis.
if Voltaje > 1.25 Then Siete \'Entre 1.875 y 1.25 va a siete.
Portb = %00000001 \'Si el Voltaje es menor a 1.25 (10 volts)-
\'Enciende el pin bo.
goto Inicio
Uno Portb = %10000000 \'Enciende b7
goto Inicio
Dos Portb = %01000000 \'Enciende b6
goto Inicio
Tres Portb = %00100000 \'Enciende b5
goto Inicio
Cuatro Portb = %00010000 \'Enciende b4
goto Inicio
Cinco Portb = %00001000 \'Enciende b3
goto Inicio
Seis Portb = %00000100 \'Enciende b2
goto Inicio
Siete Portb = %00000010 \'Enciende b1
goto Inicio
End ...
Disculpen pero donde aparece el símbolo ">" va el símbolo " >" (Mayor que). Pasa que copié y pegué el código desde mi PC. El lenguaje es PiC BASIC PRO. No se si se pueda trabajar en el PIC con esos valores decimales que he colocado. Les agradezco mucho su colaboración. Hasta luego.
Mejor por favor revisan el código adjunto porque hay otros errores cuando copié y pegué.
Adjuntos
Última edición: