You are on page 1of 4

MULTIMETRO CON PIC16F877 MIKROC - PRO EJERCICIO No 1 1.

-DESCRIPCION * Diseñar software y hardware de un multímetro, que tenga la capacidad de medir voltaje, tensión y resistencia. Mostrando los resultados en una pantalla LCD. 2.-CIRCUITO 3.- PROGRAMA //Programa diseñado en MikroC Pro for PIC v 4.60 //LCD: configuración 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 analógicos 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; //configuraciñon de entradas analógicas

cadena)."VOLTIMETRO ").1.1. break."ENTRADA INVÁLIDA").1.9. } //OHMMIMETRO case 2: { an1=Adc_Read(1). Delay_ms(100). Delay_ms(100).1. //inicio LCD lcd_cmd(_LCD_CLEAR)." mV").1. lcd_cmd(_LCD_CLEAR). Lcd_Out(2. Lcd_Out(2. IntToStr(milivoltios." MULTIMETRO-PIC"). switch(cases) { //VOLTIMETRO case 1: { an0=Adc_Read(0). do { cases=PORTC. break."MULTIMETRO-PIC "). //SALIDA LCD Delay_ms(500). Lcd_Out(2. LCD_Cmd(_LCD_CURSOR_OFF).cadena). LCD_Cmd(_LCD_CURSOR_OFF). //resistencia de referencua ohmmimetro ref2=10. //resistencia de referencia amperímetro Lcd_Init(). milivoltios=(an0*0.ref=6000. } //ENTRADA INVÁLIDA case 3: { Lcd_Out(1. Lcd_Out(1. .0049)*1000. Lcd_Out(1.

Lcd_Out(2. Lcd_Out(2. LCD_Cmd(_LCD_CURSOR_OFF).cadena). } //AMPERÍMETRO case 4: { an2=Adc_Read(2). miliamperios=(adc2/ref2). ohmios=(adc1/(5-adc1))*ref. break.cadena)."x10^-1mA"). IntToStr(ohmios. Lcd_Out(2.. IntToStr(miliamperios. Lcd_Out(2.1.1.9. adc2=an2*49. } //ENTRADA INVÁLIDA case 5: { Lcd_Out(1.cadena)."ENTRADA INVÁLIDA").1. Lcd_Out(1. break.1." Ohm").1. Delay_ms(100).7. Lcd_Out(2.cadena)."AMPERIMETRO "). lcd_cmd(_LCD_CLEAR)."OHMMIMETRO "). } 4. Lcd_Out(1.adc1=an1*0. Delay_ms(100). break."MULTIMETRO-PIC ").CAPTURAS DE LA PANTALLA DEL SIMULADOR codigo en mikroc pro estadísticas .1. } } } while(1). Delay_ms(100).0049.

unicrom.CAPTURA DEL SIMULADOR ISIS-PROTEUS Al momento de iniciar el circuito Introducimos un 1 lógico en en RC0 para habilitar el voltímetro como se puede observar variamos la señal de voltaje en la entrada y esta se refleja en el lcd Introducimos un 1 lógico en en RC1 para habilitar el ohmmimetro como se observa variamos el potenciómetro entre 0 y 10 kohmios de la misma manera al introducir un valor de 1 lógico en el pin RC2 habilitamos el amperímetro 5.pic16f877a.asp .com/Tut_PICs3.ANEXOS BIBLIOGRAFIA * http://www.org/ * http://www..