Hace tiempo me encontré con un compañero que se encontraba diseñando un control automatizado de maquinaria en una empresa a base del PIC 18F4550 y me comentaba que iba a cambiar el microprocesador por un PIC 32MX795 ya que contaba con mas puertos de entrada y salida y de los cuales necesitaria.
Yo al analizar el PIC 18F4550 encontré que era posible llevar a cabo tareas E/S con el mismo puerto haciendo unos cambios en la programación del pic y me he propuesto como proyecto desarrollar una interfaz para mi amigo.
A continuación se iré mostrando los pasos y análisis realizados para dicha tarea:
Primero es necesario conocer las características de este PIC como lo muestro en las tablas a continuación:
Una vez conociendo las características procedemos con la programación del PIC:
unsigned char readbuff[64] absolute 0x500; // Buffers should be in USB RAM, please consult datasheet
unsigned char writebuff[64] absolute 0x540;
char cnt;
char cnt2;
char pr;
char pr2;
void interrupt(){
USB_Interrupt_Proc(); // USB servicing is done inside the interrupt
}
void main(void){
ADCON1 |= 0x0F; // Configure all ports with analog function as digital
CMCON |= 7; // Disable comparators
TRISA=0;
PORTA=0;
for(cnt=0;cnt<64;cnt++)
writebuff[0]=PORTA;
HID_Enable(&readbuff,&writebuff); // Enable HID communication
while(1){
while(!HID_Read())
;
if (PORTA>0){
TRISB=255;
PORTB=255;
for(cnt=0;cnt<64;cnt++)
writebuff[1]=PORTB;
}
if (PORTA==0){
TRISB=0;
PORTB=0;
for(cnt=0;cnt<64;cnt++)
PORTB=readbuff[1];
}
if (PORTC>0){
TRISD=255;
PORTD=255;
for(cnt=0;cnt<64;cnt++)
writebuff[1]=PORTD;
}
if (PORTC==0){
TRISD=0;
PORTD=0;
for(cnt=0;cnt<64;cnt++)
PORTD=readbuff[1];
}
while(!HID_Write(&writebuff,64))
;
}
}
Este programa lo grabamos en el pic como lo hemos venido haciendo en proyectos anteriores en los cuales hemos utilizado labview y este pic con su debido driver. Para los que apenas comienzan con este rollo les dejo el link a la explicacion para crear el driver y la inicialización de labview y pics.
Enlace
Para acabar este proyecto les dejo una imagen de la programación en labview y su interfaz.
Una vez que he terminado hemos hecho pruebas que han salido de maravilla y mi compañero ha quedado maravillado de la ayuda brindada, ahora se encuentra implementado este proyecto en el control de maquinas en la industria.
Espero que les sirva y les dejo un link para que descarguen un ejemplo del programa en labview que encontré un día navegando en internet en una pagina alemana
Archivos Labview