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;
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario