Neste desafio teremos que fazer um cruzamento. Lendo e tirando as informações do desafio 3, montei esse programa aqui:
#include <lpc213x.h>
#include "C:/keil/lcd.h"
#define liga_desliga (1<<16)
#define vermelho_1 (1<<16)
#define amarelo_1 (1<<17)
#define verde_1 (1<<18)
#define vermelho_2 (1<<19)
#define amarelo_2 (1<<20)
#define verde_2 (1<<21)
int tempo (void)
{
int d;
for(d=0;d<100000;d++);
}
int main (void)
{
IODIR0 = 0XFFFEFFFF;
IODIR1 = 0XFFFFFFFF;
init_lcd();
if(IOPIN0&(liga_desliga))
{
IOSET1 = verde_1;
IOSET1 = vermelho_2;
lcd_clr();
lcd_gotoxy(0,0);
lcd_puts("Rua 1 aberta");
lcd_gotoxy(1,0);
lcd_puts("Rua 2 fechada");
IOCLR1 = verde_1;
IOSET1 = amarelo_1;
lcd_clr();
lcd_puts("Atencao Rua 1");
tempo();
IOCLR1 = amarelo_1;
IOCLR1 = vermelho_2;
IOSET1 = vermelho_1;
IOSET1 = verde_2;
lcd_clr();
lcd_gotoxy(0,0);
lcd_puts("Rua 1 fechada");
lcd_gotoxy(1,0);
lcd_puts("Rua 2 aberta");
tempo();
IOCLR1 = verde_2;
IOSET1 = amarelo_2;
lcd_clr();
lcd_puts("Atencao Rua 2");
IOCLR1 = vermelho_1;
IOCLR1 = amarelo_2;
}
else
{
if (!(IOPIN0&(liga_desliga)))
{
IOSET1 = amarelo_1;
IOSET1 = amarelo_2;
tempo();
IOCLR1 = amarelo_1;
IOCLR1 = amarelo_2;
lcd_clr();
lcd_puts("Modo Economia");
tempo();
return;
}
}
}
Segue exemplo de circuito no proteus:
DUVIDAS ACESSEM O BLOG: alessandrors.blogspot.com.br

Nenhum comentário:
Postar um comentário