6

voltm

Embed Size (px)

DESCRIPTION

voltmIMETRO

Citation preview

Page 1: voltm
Page 2: voltm
Page 3: voltm
Page 4: voltm
Page 5: voltm

#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 memoriafloat valor11;     //coonstantesint  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  0setup_adc(ADC_CLOCK_INTERNAL); //  seleccionamos el reloj para el ADCsetup_adc_ports(AN0);   // puerto que seran AN0

for(;;){set_adc_channel(0);   // que canal se utilizara, en este caso el canal 0delay_us(10);   // retardo necesario antes de hacer la lecturavalor= read_adc();   //leemos el dato del canal valor1=valor*30.0/255.0; //15  una regla de 3 simple para trabajar con 30Vdigito1=valor1/10;       //15/10=1    obtenemos el primer digito digito2=valor1 - digito1*10;   //15-1*10=5 obtenemos el segundo digitovalor11=valor*30.0/255.0; // (15.30)*10=153.0 digito3=valor11*10 - valor1*10; //153.0 - 15*10=3.0digito4=valor11*100 - valor1*100 - digito3*10; // multiplexaccion del puerto BPORTB=0b00010000 +  digito1;delay_ms(5);PORTB=0b00100000 + digito2;delay_ms(5);PORTB=0b01000000 + digito3;delay_ms(5);PORTB=0b10000000 + digito4;delay_ms(5);

}}

Page 6: voltm