sábado, 7 de enero de 2017

Control de Inversión Giro Motor Trifasico - PIC 16F877A


 // Programacion de Inversion de Giro Motor Trifasico - LCD 16x2

void main()
{
unsigned short estado;

//Config de LCD 16x2

lcd_config(&portb,1,0,2,7,6,5,4); //RS, EN, WR, D7 .. D4
lcd_cmd(lcd_clear);
lcd_cmd(lcd_cursor_off);
lcd_out(1,5,"!!MOTOR!!");
lcd_out(2,4,"!!APAGADO!!");

trisb=0;      //Config el puerto B como Salida
trisd=0x07;  //Configurando los pulsadores como entradas en el puerto D
trisc=0xc0;  //Config el puerto C como salida

//los pines configurado como salida para que resivan los pulsos

portc.f0=0;
portc.f1=0;
portc.f2=0;
portc.f3=0;
portc.f4=0;
portc.f5=0;
x1:

estado=portc; //config los pines de salida en uno sola variable llamad "ESTADO"
if(portd.f0==1&&estado==0) //Pulsador de arranque directo - Start
{
while(portd.f0==1);
{
 delay_ms(25); //retardo
 lcd_cmd(lcd_clear);
 lcd_out(1,5,"GIRO!");
 lcd_out(2,3,"SINCRONO!");

}
portc.f3=1;
portc.f4=1;
portc.f5=1;
}

if(portd.f1==1&&estado==0)  //Pulsador de inversion giro
{
while(portd.f1==1);
{
 delay_ms(25); //retardo
  lcd_cmd(lcd_clear);
 lcd_out(1,5,"!GIRO!");
 lcd_out(2,3,"ASINCRONO");
}
portc.f0=1;
portc.f1=1;
portc.f2=1;
}

if(portd.f2==1)    //Pulsador stop
{
while(portd.f2==1);
{
 delay_ms(25);   //retardo
  lcd_cmd(lcd_clear);
 lcd_out(1,4," !!MOTOR!!");
 lcd_out(2,3,"!!STOP!!");


}
portc.f0=0;
portc.f1=0;
portc.f2=0;
portc.f3=0;
portc.f4=0;
portc.f5=0;
}

goto x1;

}

No hay comentarios:

Publicar un comentario