Escolar Documentos
Profissional Documentos
Cultura Documentos
h"
int z;
int32 x;
#int_RTCC
void RTCC_isr(void)
{
x++;
}
#define a pin_b0
#define b pin_b1
#define c pin_b2
#define d pin_b3
#define a1 pin_b0
#define b1 pin_b1
#define c1 pin_b2
#define d1 pin_b7
#define cafe pin_a6
#define cappucino pin_a5
#define torneira pin_a2
#define agua pin_a1
#define vibrador_cafe pin_a0
#define vibrador_cappucino pin_a3
#define helice pin_a7
#define envia_sinal_espera_ok pin_b4
#define envia_pronto pin_b5
#define envia_ok pin_a4
#define servo_agua pin_b6
void tempo(){delay_ms(100);}
void mola_cafe(){x=0;
while(x<50){
output_low(a);output_low(b);output_low(c);output_low(d);
output_high(a);output_high(d);
tempo();
output_low(a);output_low(b);output_low(c);output_low(d);
output_high(a);output_high(c);
tempo();
output_low(a);output_low(b);output_low(c);output_low(d);
output_high(b);output_high(c);
tempo();
output_low(a);output_low(b);output_low(c);output_low(d);
output_high(b);output_high(d);
tempo();
}}
void mola_cappucino(){x=0;
while(x<50){
output_low(a1);output_low(b1);output_low(c1);output_low(d1);
output_high(a1);output_high(d1);
tempo();
output_low(a1);output_low(b1);output_low(c1);output_low(d1);
output_high(a1);output_high(c1);
tempo();
output_low(a1);output_low(b1);output_low(c1);output_low(d1);
output_high(b1);output_high(c1);
tempo();
output_low(a1);output_low(b1);output_low(c1);output_low(d1);
output_high(b1);output_high(d1);
tempo();
}}
void liga_torneira(){output_high(torneira);delay_us(2000);
output_low(torneira);delay_ms(19);}
void desliga_torneira(){output_high(torneira);delay_us(1000);
output_low(torneira);delay_ms(19);}
void
liga_servo_agua(){output_high(servo_agua);delay_us(2000);output_low(servo_agua);delay_m
s(19);}
void
desliga_servo_agua(){output_high(servo_agua);delay_us(1000);output_low(servo_agua);delay
_ms(19);}
void liga_agua(){output_high(agua);liga_servo_agua();}
void desliga_agua(){output_low(agua);desliga_servo_agua();}
void liga_vibrador_cafe(){output_high(vibrador_cafe);}
void desliga_vibrador_cafe(){output_low(vibrador_cafe);}
void liga_vibrador_cappucino(){output_high(vibrador_cappucino);}
void desliga_vibrador_cappucino(){output_low(vibrador_cappucino);}
void liga_helice(){output_high(helice);}
void desliga_helice(){output_low(helice);}
void t_encher(){delay_ms(6000);}
void t_acalmar(){delay_ms(2000);}
void t_vibrador(){delay_ms(3000);}
void t_misturar(){delay_ms(5000);}
void t_torneira(){delay_ms(5000);}
void t_esvaziar(){delay_ms(5000);}
void botao_cafe(){
liga_agua();t_encher();desliga_agua();
liga_helice();t_acalmar();
liga_vibrador_cafe(); t_vibrador();
mola_cafe();desliga_vibrador_cafe();
t_misturar(); desliga_helice();
output_high(envia_sinal_espera_ok);z=0;
while(z==0){if(input(envia_ok)){z=1;
liga_torneira();t_esvaziar();desliga_torneira();
liga_agua();t_encher();desliga_agua();
liga_helice(); t_misturar();desliga_helice();
liga_torneira(); t_esvaziar();desliga_torneira();
output_high(envia_pronto);
}
}
}
void botao_cappucino(){
liga_agua();t_encher();desliga_agua();
liga_helice();t_acalmar();
liga_vibrador_cappucino(); t_vibrador();
mola_cappucino();desliga_vibrador_cappucino();
t_misturar(); desliga_helice();
output_high(envia_sinal_espera_ok);z=0;
while(z==0){if(input(envia_ok)){z=1;
liga_torneira();t_esvaziar();desliga_torneira();
liga_agua();t_encher();desliga_agua();
liga_helice(); t_misturar();desliga_helice();
liga_torneira(); t_esvaziar();desliga_torneira();
output_high(envia_pronto);
}}
}
void aquecimento_agua(){
for(x=0;x<1200;x++){
if(input(cafe)){botao_cafe();}
if(input(cappucino)){botao_cappucino();}
output_high(agua);delay_ms(10);}
for(x=0;x<1200;x++){output_low(agua);delay_ms(10);}
if(input(cafe)){botao_cafe();}
if(input(cappucino)){botao_cappucino();}
}
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);;
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
while(true){
aquecimento_agua();
}
}