Voltímetro Digital Con PIC
-
Upload
leoelectrico -
Category
Documents
-
view
228 -
download
6
description
Transcript of Voltímetro Digital Con PIC
Voltímetro Digital con PIC
Comenzando con una fácil aplicación de los microcontroladores, presento este trabajo, que es un voltimetro digital, creo que ya todos sabemos que es un voltimetro, un instrumento de medida de voltaje, este voltimetro es DC, el lenguaje que utilizo es el C, compilado con CCS y simulado en ISIS de PROTEUS. en las siguiente lineas, explicaremos el código del programa, recuerden que deps de un // todo lo que sigue es un comentario y el compilador lo ignora.
Código:
#include <16F877A.h> // seleccionas el PIC a utilizar
#fuses XT //definimos un crystal externo
#device adc=8 // bits para el ADC 0-255
#use delay (clock=4M) // frecuencia del oscilador
#byte TRISB=0x86 // definimos los TRIB en la memoria
#byte PORTB=0x06 // definimos el PORTB en la memoria
float valor11; //coonstantes
int valor,valor1,digito1,digito2,digito3,digito4;
void main() {
TRISB=0x00; // toda el puerto B es salida
PORTB=0x00; // todo el puerto B estra en estado logico 0
setup_adc(ADC_CLOCK_INTERNAL); // seleccionamos el reloj para el ADC
setup_adc_ports(AN0); // puerto que seran AN0
for(;;){
set_adc_channel(0); // que canal se utilizara, en este caso el canal 0
delay_us(10); // retardo necesario antes de hacer la lectura
valor= read_adc(); //leemos el dato del canal
valor1=valor*30.0/255.0; //15 una regla de 3 simple para trabajar con 30V
digito1=valor1/10; //15/10=1 obtenemos el primer digito
digito2=valor1 - digito1*10; //15-1*10=5 obtenemos el segundo digito
valor11=valor*30.0/255.0; // (15.30)*10=153.0
digito3=valor11*10 - valor1*10; //153.0 - 15*10=3.0
digito4=valor11*100 - valor1*100 - digito3*10;
// multiplexaccion del puerto B
PORTB=0b00010000 + digito1;
delay_ms(5);
PORTB=0b00100000 + digito2;
delay_ms(5);
PORTB=0b01000000 + digito3;
delay_ms(5);
PORTB=0b10000000 + digito4;
delay_ms(5);
}
}
Básicamente, un divisor de tensión resistivo no es más que un par de resistencias puestas en serie, de forma que la primera provoca una caída de tensión y por lo tanto, la tensión de salida se verá reducida.
1. Para declarar una función que no tiene valor de retorno. Por ejemplo:
void verMensaje (const char * Mensaje) { cout << Mensaje << endl; }
El ciclo For es una de las instrucciones mas sencillas de aprender, y consiste en utilizar mayormente “rangos” en los cuales se define el numero de iteraciones que se pueden hacer en este ciclo.