terça-feira, 4 de dezembro de 2012

Desafio 2.0 - Maquina de Lavar

Diretrizes : A seguir esta anexados as diretrizes Proposta pelos professores, nosso programa da maquina de lavar deveria conter todas as características a seguir, exceto a chave liga/desliga que é opcional. E uma rotina de tempo.




...



...




Meu programa ficou o seguinte:


#include <lpc213x.h>
#include "C:\Keil\ARM\lcd.h"  // Ajuda para escrever no display//

#define valvulaadmissao (1<<16)
#define bombaexpurgo (1<<17)
#define sensornivel (1<<20)
#define sensorporta (1<<16)
#define motor_direita (1<<18)
#define motor_esquerda (1<<19)

// aqui é a rotina de tempo//
int tempo (void)
{
int d;
for(d=0;d<1000;d++);
}

//inicio da função main//
int main (void)
{
IODIR0 = 0XFFFEFFFF;
IODIR1 = 0XFFEFFFFF;
init_lcd();

if(IOPIN0&(sensorporta))
{
IOCLR1 = valvulaadmissao;
lcd_clr(); // esse comando zera o display//
lcd_puts("Porta Aberta"); //essa função serva para escrever no display//
while(1);
}
if(IOPIN1&(sensornivel))
{
lcd_clr();
lcd_puts("Iniciando");
}
else
{
IOCLR1 = valvulaadmissao;
lcd_clr();
lcd_puts("Falta Agua");
while(1);
}
if(!(IOPIN0&(sensorporta)))
{
IOSET1 = valvulaadmissao;
lcd_clr();
lcd_puts("Admitindo Agua");
IOCLR1 = valvulaadmissao;
IOSET1 = motor_direita;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_direita;
IOSET1 = motor_esquerda;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_esquerda;
IOSET1 = motor_direita;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_direita;
IOSET1 = motor_esquerda;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_esquerda;
IOSET1 = motor_direita;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_direita;
IOSET1 = motor_esquerda;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_esquerda;
IOSET1 = motor_direita;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_direita;
IOSET1 = motor_esquerda;
lcd_clr();
lcd_puts("Lavando");
tempo();
IOCLR1 = motor_esquerda;
IOSET1 = bombaexpurgo;
lcd_clr();
lcd_puts("Enxaguando");
IOCLR1 = bombaexpurgo;
IOSET1 = valvulaadmissao;
lcd_clr();
lcd_puts("Admitindo agua");
IOCLR1 = valvulaadmissao;
IOSET1 = bombaexpurgo;
lcd_clr();
lcd_puts("Evacuando agua");
tempo();
IOCLR1 = bombaexpurgo;
IOSET1 = motor_direita;
IOSET1 = motor_esquerda;
lcd_clr();
lcd_puts("Centrifugando");
    tempo();
IOCLR1 = motor_direita;
IOCLR1 = motor_esquerda;
lcd_clr();
lcd_puts("Roupa Limpa");
while (1);
}
}


Demonstração no Proteus:






Nenhum comentário:

Postar um comentário