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;}
}