Sei sulla pagina 1di 4

MULTIMETRO CON PIC16F877 MIKROC - PRO EJERCICIO No 1 1.

-DESCRIPCION * Disear software y hardware de un multmetro, que tenga la capacidad de medir voltaje, tensin y resistencia. Mostrando los resultados en una pantalla LCD. 2.-CIRCUITO 3.- PROGRAMA //Programa diseado en MikroC Pro for PIC v 4.60 //LCD: configuracin de pines sbit lcd_rs at rd2_bit; sbit lcd_en at rd3_bit; sbit lcd_d7 at rd7_bit; sbit lcd_d6 at rd6_bit; sbit lcd_d5 at rd5_bit; sbit lcd_d4 at rd4_bit; //LCD: direccionamiento de pines sbit lcd_rs_direction at trisd2_bit; sbit lcd_en_direction at trisd3_bit; sbit lcd_d7_direction at trisd7_bit; sbit lcd_d6_direction at trisd6_bit; sbit lcd_d5_direction at trisd5_bit; sbit lcd_d4_direction at trisd4_bit; unsigned int an0,an1,an2; //determinacion de variables analgicos unsigned int ref,ref2,adc2,milivoltios,ohmios,miliamperios; //determinacion de variables enteras unsigned short cases; float adc1; unsigned char cadena[7]; void main(void) { TRISC=0xFF; //configuraicon de entradas digitales ADCON1=0x80; //puerto analogico activado TRISA=0xFF; //configuracion de entradas analgicas

ref=6000; //resistencia de referencua ohmmimetro ref2=10; //resistencia de referencia ampermetro Lcd_Init(); //inicio LCD lcd_cmd(_LCD_CLEAR); LCD_Cmd(_LCD_CURSOR_OFF); Lcd_Out(1,1," MULTIMETRO-PIC"); //SALIDA LCD Delay_ms(500); do { cases=PORTC; switch(cases) { //VOLTIMETRO case 1: { an0=Adc_Read(0); milivoltios=(an0*0.0049)*1000; IntToStr(milivoltios,cadena); Lcd_Out(1,1,"VOLTIMETRO "); Lcd_Out(2,9," mV"); Lcd_Out(2,1,cadena); Delay_ms(100); break; } //ENTRADA INVLIDA case 3: { Lcd_Out(1,1,"MULTIMETRO-PIC "); Lcd_Out(2,1,"ENTRADA INVLIDA"); Delay_ms(100); lcd_cmd(_LCD_CLEAR); LCD_Cmd(_LCD_CURSOR_OFF); break; } //OHMMIMETRO case 2: { an1=Adc_Read(1);

adc1=an1*0.0049; ohmios=(adc1/(5-adc1))*ref; IntToStr(ohmios,cadena); Lcd_Out(1,1,"OHMMIMETRO "); Lcd_Out(2,9," Ohm"); Lcd_Out(2,1,cadena); Delay_ms(100); break; } //ENTRADA INVLIDA case 5: { Lcd_Out(1,1,"MULTIMETRO-PIC "); Lcd_Out(2,1,"ENTRADA INVLIDA"); Delay_ms(100); lcd_cmd(_LCD_CLEAR); LCD_Cmd(_LCD_CURSOR_OFF); break; } //AMPERMETRO case 4: { an2=Adc_Read(2); adc2=an2*49; miliamperios=(adc2/ref2); IntToStr(miliamperios,cadena); Lcd_Out(1,1,"AMPERIMETRO "); Lcd_Out(2,7,"x10^-1mA"); Lcd_Out(2,1,cadena); Delay_ms(100); break; } } } while(1); } 4.- CAPTURAS DE LA PANTALLA DEL SIMULADOR codigo en mikroc pro estadsticas

CAPTURA DEL SIMULADOR ISIS-PROTEUS Al momento de iniciar el circuito Introducimos un 1 lgico en en RC0 para habilitar el voltmetro como se puede observar variamos la seal de voltaje en la entrada y esta se refleja en el lcd Introducimos un 1 lgico en en RC1 para habilitar el ohmmimetro como se observa variamos el potencimetro entre 0 y 10 kohmios de la misma manera al introducir un valor de 1 lgico en el pin RC2 habilitamos el ampermetro 5.- ANEXOS

BIBLIOGRAFIA * http://www.pic16f877a.org/ * http://www.unicrom.com/Tut_PICs3.asp

Potrebbero piacerti anche