Wirpul 10

Proyecto Lavadora "Wirpul v10" Autor: Oscar Silva Rizo

#include <REGX52.h>

#include <math.h>

delay(unsigned int y){ // rutina de retardo

unsigned int i;

for(i=0;i<y;i++){;}

}

seguridad(){ //Rutina de proteccion (Tapa abierta/Cerrada)

while(P2_2==1){

P1 = 0x00;

P1_6 = 1;

delay(15000);

P1_6 = 0;

delay(15000);

}

}

main(){

unsigned int secado,lavadouno,lavadodos,c;


lavadouno = 10; //Define el tiempo de lavado de la mezclilla

lavadodos = 12; //Define el tiempo de lavado de la ropa delicada

secado = 30; //Define el tiempo del centrifugado


P1_0 = 0;

P1_1 = 0;

P1_2 = 0;

P1_3 = 0;

P1_4 = 0;

P1_5 = 0;

P1_6 = 0;

P1_7 = 0;


P3_0 = 0;

P3_1 = 0;

P3_2 = 0;

P3_3 = 0;

P3_4 = 0;

P3_5 = 0;

P3_6 = 0;

P3_7 = 0;


PLAY:

if((P0_0==1)&&(P1_7==0)){ //Etapa para definir si arranca o no el ciclo de lavado en caso contrario seguira en bucle


//ETAPA DE LLENADO

if ((P0_1==1)){ //Agua Caliente

if ((P0_2==1)){ //Llenado completo caliente


while((P2_0==0)){

P3_6 = 1;}

P3_6 = 0;

}if ((P0_2==0)){ //Llenado medio caliente

while((P2_1==0)){

P3_6 = 1;}

P3_6 = 0;

}



}if ((P0_1==0)){ //Agua fria

if ((P0_2==1)){ //Llenado completo frio

while((P2_0==0)){

P3_7 = 1;}

P3_7 = 0;

}if ((P0_2==0)){ //Llenado medio frio

while((P2_1==0)){

P3_7 = 1;}

P3_7 = 0;}

}


//ETAPA DE LAVADO (MOTOR)

if ((P0_3==1)){ //Mezclilla

P3_2 = 1;

for(c=0;c<lavadouno;c++){ //El delay controla el tiempo que durara el centrifugado

P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);

//izquierdaP1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


lavadouno--;

if ((P2_2==0)){

}else{seguridad();}

}

P1=0x00; //00000000

P3_2 = 0;


}if ((P0_3==0)){ //Delicada

P3_2 = 1;

for(c=0;c<lavadodos;c++){ //El delay controla el tiempo que durara el centrifugado

P1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);


P1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);

//izquierdaP1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


P1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


lavadodos--;

if ((P2_2==0)){

}else{seguridad();}

}

P1=0x00; //00000000

P3_2 = 0;

}




//ETAPA DE TIRADO

P3_3 =1;

while ((P2_0==1)|(P2_1==1)){

P3_3 = 1;}

P3_3 = 0;


//ETAPA DE LLENADO

if ((P0_1==1)){ //Agua Caliente

if ((P0_2==1)){ //Llenado completo caliente


while((P2_0==0)){

P3_6 = 1;}

P3_6 = 0;

}if ((P0_2==0)){ //Llenado medio caliente

while((P2_1==0)){

P3_6 = 1;}

P3_6 = 0;

}



}if ((P0_1==0)){ //Agua fria

if ((P0_2==1)){ //Llenado completo frio

while((P2_0==0)){

P3_7 = 1;}

P3_7 = 0;

}if ((P0_2==0)){ //Llenado medio frio

while((P2_1==0)){

P3_7 = 1;}

P3_7 = 0;}

}



//ETAPA DE ENJUAGUE (MOTOR)

lavadouno = 10; //Define el tiempo de lavado de la mezclilla

lavadodos = 12; //Define el tiempo de lavado de la ropa delicada


if ((P0_3==1)){ //Mezclilla

P3_4 = 1;

for(c=0;c<lavadouno;c++){

P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);

//izquierdaP1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


lavadouno--;

if ((P2_2==0)){

}else{seguridad();}

}

P1=0x00; //00000000

P3_4 = 0;


}if ((P0_3==0)){ //Delicada

P3_2 = 1;

for(c=0;c<lavadodos;c++){

P1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);


P1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);

//izquierdaP1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


P1 = 0x00;

P1_4 = 1;

delay(20000);

P1_4 = 0;

delay(20000);


P1 = 0x00;

P1_1 = 1;

delay(20000);

P1_1 = 0;

delay(20000);


P1 = 0x00;

P1_3 = 1;

delay(20000);

P1_3 = 0;

delay(20000);


P1 = 0x00;

P1_2 = 1;

delay(20000);

P1_2 = 0;

delay(20000);


lavadodos--;

if ((P2_2==0)){

}else{seguridad();}

}

P1=0x00; //00000000

P3_2 = 0;

}

//ETAPA DE TIRADO

P3_3 =1;

while ((P2_0==1)|(P2_1==1)){

P3_3 = 1;}

P3_3 = 0;


//ETAPA DE SECADO (MOTOR)

P3_5 = 1;

for(c=0;c<secado;c++){ //El delay controla el tiempo que durara el centrifugado

P1 = 0x00;

P1_4 = 1;

delay(15000);

P1_4 = 0;

delay(15000);


P1 = 0x00;

P1_2 = 1;

delay(15000);

P1_2 = 0;

delay(15000);


P1 = 0x00;

P1_3 = 1;

delay(15000);

P1_3 = 0;

delay(15000);


P1 = 0x00;

P1_1 = 1;

delay(15000);

P1_1 = 0;

delay(15000);


if ((P2_2==0)){;

}else{seguridad();}

}

P1=0x00; //00000000

P3_5 = 0;


final:

P1_7 = 1;

goto final;

}else

{goto PLAY;}


}