Está en la página 1de 5

PRCTICA No. 3. Electrnica II . En esta prctica he utilizado tres componentes electrnicos principales.

Son PIC16F877A, Pantalla LCD (16 x 2) y Quad de baja potencia del amplificador operacional (LM324). PIC16F877A se utiliza como un mdulo de ADC que convierte la entrada analgica en la salida correspondiente 10 bits digital. Pantalla LCD se utiliza para mostrar los datos convertidos a formato digital binario decimal para que el usuario pueda comprender fcilmente la tensin. Y, por ltimo quad de baja potencia del amplificador operacional se utiliza como buffer y como inversor. Esta prctica mide los voltajes que van desde -50 V a +50 V . Pero PIC slo puede operar hasta a +5 V. Por tanto, para medir la V 50, el divisor de voltaje se utiliza. Este divisor divide la tensin de entrada de 10 veces de modo que la tensin de entrada 50 V se convierte ahora en +5 V en la entrada del PIC. Dentro de PIC se escribe un programa que multiplica el valor digital convertida por 10 antes de enviarlo a la pantalla LCD. Una captura de pantalla de un diseo aproximado del proyecto en Proteus 7.0 Professional es la siguiente PIC16F877A ADC mdulo El mdulo de conversores A / D tiene ocho entradas. La conversin de los resultados de entrada analgica en una salida de 10 bits correspondiente digital. El mdulo A / D tiene cuatro registros. Ellos son A / D Alto Resultado Register (ADRESH) A / D Register Low Register (ADRESL) A / D Control Register 0 (ADCON0) A / D Registro de Control 1 (ADCON1) El registro ADICON0 controla el funcionamiento de la A / D y el mdulo de registro ADICON1 configura las funciones de los pines del puerto. La estructura de ADICON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO / DONE '- ADON los bits 7-6: ADCS1: ADCS2 => Conversin de seleccin de canal los bits 5-3: CHS2: CHS0 => Analog Channel Select [000 = Canal 1, 001 = Canal 2 y as sucesivamente hasta el canal 7] bit 2: GO / IDO '=> AD Conversin bit de estado [1 indica la conversin en curso y 0 indica que no conversin en curso] bit1: no implementado bit 0: ADON => A / D de bit [1 indica mdulo convertidor est encendido y 0 indica que cerrar]

El registro ADICON0 controla el funcionamiento de la A / D y el mdulo de registro ADICON1 configura las funciones de los pines del puerto. La estructura de ADICON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO / DONE '- ADON los bits 7-6: ADCS1: ADCS2 => Conversin de seleccin de canal los bits 5-3: CHS2: CHS0 => Analog Channel Select [000 = Canal 1, 001 = Canal 2 y as sucesivamente hasta el canal 7] bit 2: GO / IDO '=> AD Conversin bit de estado [1 indica la conversin en curso y 0 indica que no conversin en curso] bit1: no implementado

bit 0: ADON => A / D de bit [1 indica mdulo convertidor est encendido y 0 indica que cerrar] La estructura de ADICON1 ADFM ADCS2 --- PCFG3 PCFG1 PCFG0 bit 7: ADFM => A / D Resultado formato [1 indica Derecha Justificar y 0 indica justificacin a la izquierda]
LDC Display (16 x 2)

Pin No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Name Vss Vdd Vee RS R/W E D0 D1 D2 D3 D4 D5 D6 D7

Funciton Ground +Ve Supply Contrast Register Select Read/Write Enable Data bit 0 Data bit 1 Data bit 2 Data bit 3 Data bit 4 Data bit 5 Data bit 6 Data bit 7

PROGRAMA EN CCS VOLTIMETRO DIGITAL

#include <16F877A.h> #device ADC=10 #FUSES XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #include <lcd.c> #define use_portb_lcd TRUE void main(){ int16 q; int16 z; float p; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); lcd_init(); for (;;) { set_adc_channel(0); delay_us(20); q = read_adc(); z = 5 * q; p = z/1024.0; printf(lcd_putc, "\fADC = %4ld", q); printf(lcd_putc, "\nVoltajeE = %01.2fV", p); delay_ms(100); } }

#include "C:\Documents and Settings\matz\My Documents\CCS\LCD VOLT 16F877\main.h" #include <16F877.H> #device adc=10 #fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP #use delay(clock=4000000 #include <LCD.C> void main() { int16 adc_value; float volts; lcd_init(); setup_adc_ports(AN0); setup_adc(ADC_CLOCK_DIV_8); set_adc_channel(0); delay_us(20); while(1) { adc_value = read_adc(); volts = (float)(adc_value * 5)/1023.0; printf(lcd_putc, "\f%3.2f", volts); delay_ms(500);
} }

También podría gustarte