Diretrizes:
O meu programa ficou da seguinte forma:
#include <LPC213X.H>
#include "C:\Keil\ARM\lcd.h"
#define S1_VERM (1<<16)
#define S1_AM (1<<17)
#define S1_VERDE (1<<18)
#define S2_VERM (1<<19)
#define S2_AM (1<<20)
#define S2_VERDE (1<<21)
#define CEEE (1<<22)
int d;
int i;
lcd_init();
void ceee (void)
{
IOCLR1 = (S1_VERM);
IOCLR1 = (S1_AM);
IOCLR1 = (S1_VERDE);
IOCLR1 = (S2_VERM);
IOCLR1 = (S2_AM);
IOCLR1 = (S2_VERDE);
lcd_puts("Falta de Energia");
IOSET1 = (S1_AM);
IOSET1 = (S2_AM);
for (d=0; d<100000; d++);
IOCLR1 = (S1_AM);
IOCLR1 = (S2_AM);
}
void main (void)
{
while (1)
{
IODIR0 = 0xFFFFFFFF;
IODIR1 = 0xFFBFFFFF;
lcd_puts("Rua 1 Fechada, Rua 2 OK");
IOSET1 = S1_VERM;
IOCLR1 = S2_VERM;
IOSET1 = S2_VERDE;
for (d=0; d<100000; d++);
IOCLR1 = (S2_VERDE);
if (!(IOPIN1&(CEEE)))
{
while (!(IOPIN1&(CEEE)))
{
ceee();
}
}
IOSET1 = (S2_AM);
for (d=0; d<100000; d++);
IOCLR1 = (S2_AM);
IOSET1 = (S2_VERM);
IOCLR1 = (S1_VERM);
IOSET1 = (S1_VERDE);
lcd_puts("Rua 1 OK, Rua 2 Fechada");
for (d=0; d<100000; d++);
if (!(IOPIN1&(CEEE)))
{
while (!(IOPIN1&(CEEE)))
{
ceee();
}
}
IOCLR1 = (S1_VERDE);
IOSET1 = (S1_AM);
for (d=0; d<100000; d++);
IOCLR1 = (S1_AM);
}
}
Imagem demonstrativa do Proteus:


Nenhum comentário:
Postar um comentário