Está en la página 1de 5

Desarrollo Se propuso el diagrama de flujo para describir el proceso y a continuacin se muestra INICIO

Configurar puerto USB

Configurar LCD

Leer el valor de voltaje en puerto A

Leer el valor anterior por puerto usb

Mostrar lectura en LCD y pantalla

Entradas: El puerto A que ingresa la seal del potencimetro. Datos que se guardan en el microcontrolador Variables de almacenamiento de datos por el puerto USB Procesos: Configuro el puerto USB Configuro el LCD en el puerto B Leo la seal del potencimetro. Transformo la seal y la envo al LCD y a la pantalla.

Codigo para el microcontrolador:


/*CONFIGURACION PIC*/ #include "18f4550.h" #device adc=8 //#fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=48000000) //#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //#zero_ram #build(reset=0x02000,interrupt=0x02008) #org 0x0000,0x1FFF {} //------------------------------------------------------------------------------#include "usb_cdc.h" #include <lcd.c> #define LED1 PIN_B0 #define LED2 PIN_B4

void main(void) { byte dato; byte voltaje; // variable deonde se guardaran los comandos enviados por la pc //variable donde se guardara el valor de voltaje analogico leido por el PIC //Configura puerto B 1= entrada 0= salida //Configura puerto C 1= entrada 0= salida

set_tris_b(0b11101110); set_tris_c(0b11111111);

setup_adc_ports(AN0); //configuracion indiuvidual de canales ADC setup_adc( ADC_CLOCK_INTERNAL ); lcd_init(); //inicializa lcd usb_cdc_init(); // Configuramos al puerto virtual. usb_init(); // Inicializamos el stack USB. while(!usb_cdc_connected()) {} // espera a detectar una transmisin de la PC (Set_Line_Coding) usb_task(); while (!usb_enumerated()){}

// Espera a que el dispositivo sea enumerado por el host.

//----------------------------rutina principal ---------------------------do{ dato=usb_cdc_getc(); switch(dato) { //espera a recibir un datos por el puerto cdc_usb // compara el dato para ejecutar accion //cambia de estado el puerto B0

case 'a': output_toggle(LED1); break; case 'b': output_toggle(LED2); break;

//cambia de estado el puerto B4

case 'c': if(input(PIN_C2)==0) //compara el estado del puerto C2, si esta en bajo { //envia caracter 1 hacia la pc por el puerto cdc_usb printf(usb_cdc_putc,"1"); } else //si esta en alto { //envia caracter 2 hacia la pc por el puerto cdc_usb printf(usb_cdc_putc,"2");

} break; case 'd': set_adc_channel( 0 ); //conversion analogica por canal 0 delay_ms(100); //tiempo de espera para conversion de ADC voltaje = read_adc(); //lee voltaje analogico en puerto A0 printf(usb_cdc_putc,"%c",voltaje); //envia valor expresado en 1 byte del voltaje analogico hacia la pc por el puerto cdc_usb delay_ms(500); printf(lcd_putc,"\f Valor=%u",voltaje); //Imprime valor numrico delay_ms(500);

break;

}while (TRUE); // bucle infinito. }

Diagrama a bloques del programa en LabVIEW

La imagen de arriba muestra la conexin de componentes hecha en ambiente LabVIEW.

A continuacin se muestra la interfaz de usuario o el panel de instrumentacin en ambiente LabVIEW

La imagen anterior es la interfaz con la que el usuario interacta y est hecha en ambiente LabVIEW

También podría gustarte