Documente Academic
Documente Profesional
Documente Cultură
Abstract. El presente articulo muestra el desarrollo de una Interface Grafica de Usuario realizado
mediante el software de programación Delphi Borland 7.0, desde donde se puede visualizar algunos
estados análogos y digitales y definir algunos estados digitales del modulo hardware basado en un
microcontrolador PIC 18F2550 de la familia Microchip. La comunicación entre la Interface grafica
de usuario realizada para esta aplicación y el modulo hardware basada en microcontrolador PIC, se
hace a través del protocolo USB.
2
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
identificador de acción send_buf[0]=2 y
la variable RecvLength=1, es decir, se espera un
valor como respuesta a dicha petición por parte del
modulo hardware. Dicho valor se registra en la
variable Entrada para posteriormente visualizarla en
el panel correspondiente en la GUI.
Figura 7. Lectura de Entrada digital en el modulo Figura 9. Instalación de driver USB Microchip
hardware mediante USB a través de Delphi Borland. cuando se conecta por primera vez el modulo
hardware.
De igual manera se procede para la lectura de los
valores correspondientes a la conversión A/D de los Si el proceso de instalación del driver USB de
canales CH0, CH1 y CH2 del modulo hardware. Microchip es exitoso, debe aparecer una ventana
Según lo mostrado en la Figura 8, el identificador de indicando dicho procedimiento, según se muestra en
acción send_buf[0]=3 y por tanto la variable Entrada la Figura 10.
contendrá el valor correspondiente a la lectura A/D
del canal 0 (CH0). Para la lectura del valor A/D de
los canales CH1 y CH2 se procede igual, pero
asignando a send_buf[0] el valor de 4 y 5
respectivamente.
“Copyright ©2010. “Ilber Adonayt Ruge Ruge”: El autor delega a la Organización del Segundo Congreso
Virtual de Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que
4
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
este artículo se publique en el sitio web del congreso, en un CD o en un documento impreso de las
ponencias del Segundo Congreso Virtual de Microcontroladores.
ANEXO A
#include <18F4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN
#use delay(clock=48000000)
#define USB_HID_DEVICE FALSE //deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 1 //tamaño para la tx del buffer endpoint 1
#define USB_EP1_RX_SIZE 3 //tamaño para la rx del buffer endpoint 1
#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <Usb_proyect.h> //Configuración del USB y los descriptores para este dispositivo
#include <usb.c> //handles usb setup tokens and get descriptor reports
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Al conectar el Modulo al PC encendemos el Led Rojo hasta que el dispositivo
// halla sido configurado por el PC, en ese momento encederemos el Led Verde.
///////////////////////////////////////////////////////////////////////////////////////////////////////////
#define LEDV PIN_C0 //Configurando conexión con PC
#define LEDR PIN_C1 //Configuración exitosa
#define LED_ON output_high
#define LED_OFF output_low
void main(void) {
delay_ms(50);
LED_OFF(LEDV); //encender led rojo
LED_ON(LEDR);
setup_adc_ports(AN0_TO_AN2_ANALOG);
setup_adc(adc_clock_internal);
while (TRUE)
{
if(usb_enumerated()) //si el modulo está configurado
{
LED_OFF(LEDR);
LED_ON(LEDV);
if (usb_kbhit(1)) //si el endpoint de salida contiene datos del host
{
if (modo == 3)
{
set_adc_channel(0);
resultado=read_adc();
delay_ms(10);
usb_put_packet(1, envia, 1, USB_DTS_TOGGLE);
}
if (modo == 4)
{
set_adc_channel(1);
resultado=read_adc();
delay_ms(10);
usb_put_packet(1, envia, 1, USB_DTS_TOGGLE);
}
if (modo == 5)
{
set_adc_channel(2);
resultado=read_adc();
delay_ms(10);
usb_put_packet(1, envia, 1, USB_DTS_TOGGLE);
}
}
}
}
}
6
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones
ANEXO B
ANEXO C
Figura 13. Simulación de modulo de entrenamiento USB y verificación de estados de las variables en la Interface
Grafica de Usuario desarrollada en Delphi Borland.