Este desafio consiste em controlar duas sinaleiras de ruas diferentes, mostrando no display seus estados ( se aberta ou fechada).
Meu Programa:
#include <lpc213x.h>
#include <C:\Keil\ARM\lcd.h>
#define vms1 (1<<16)
#define ams1 (1<<17)
#define vds1 (1<<18)
#define vms2 (1<<19)
#define ams2 (1<<20)
#define vds2 (1<<21)
void tempo (int limite)
{
int t=0;
for (t=0;t<limite;t++);//Função para chamar Tempo//
}
int main (void)
{
IODIR0=0xffffffff;
init_lcd();
while(1)
{
IOSET0=(vds1);
IOSET0=(vms2);
lcd_clr();
lcd_gotoxy(0,0);
lcd_puts("Rua 1 Aberta");
lcd_gotoxy(1,0);
lcd_puts("Rua 2 Fechada");
tempo(10000000);
IOCLR0=(vds1);
IOCLR0=(vms2);
IOSET0=(ams1);
IOSET0=(ams2);
tempo(10000000);
IOCLR0=(ams1);
IOCLR0=(ams2);
IOSET0=(vms1);
IOSET0=(vds2);
lcd_clr();
lcd_gotoxy(0,0);
lcd_puts("Rua 1 Fechada");
lcd_gotoxy(1,0);
lcd_puts("Rua 2 Aberta");
tempo(10000000);
IOCLR0=(vms1);
IOCLR0=(vds2);
IOSET0=(ams1);
IOSET0=(ams2);
tempo(10000000);
IOCLR0=(ams1);
IOCLR0=(ams2);
}
}
O Circuito no Proteus ficou assim:

Nenhum comentário:
Postar um comentário