Autor: Lucimar | Publicado: 2012-12-09T15:24:00-08:00

SINALEIRA II

Dificulades encontradas, não consgui conectar a sinaleira numero 5, mesmo alterando o código, quanto as outras consegui uma sincronia.
Tive que fazer 2 projetos, pois só consegui ativar duas sinaleiras por vez.
&nbsp;Segue código:

I -&nbsp; SINALEIRA&nbsp; I E II

#include &lt;lpc213x.h&gt;
#include "c:\Keil\ARM\3_LCD 2X 16\lcd.h"

#define vermelho (1&lt;&lt;16)
#define amarelo (1&lt;&lt;17)
#define verde (1&lt;&lt;18)

#define vermelho_2 (1&lt;&lt;19)
#define amarelo_2 (1&lt;&lt;20)
#define verde_2 (1&lt;&lt;21)

#define verm_5 (1&lt;&lt;23)
#define am_5(1&lt;&lt;24)
#define verd_5(1&lt;&lt;25)

#define pino_energia (1&lt;&lt;22)

int i; //iniciando varial

/******************************************************************************************
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INICIANDO FUNCAO DE ECONOMIA DE ENERGIA COM TODOS&nbsp; PINOS limpando
**************************************************************************************************/

void modo_energia (void)
{
&nbsp;&nbsp; IOCLR1 = ( vermelho);
&nbsp;&nbsp;&nbsp; &nbsp;IOCLR1 = ( amarelo);
&nbsp;&nbsp;&nbsp; &nbsp;IOCLR1 = (verde );
&nbsp;&nbsp;&nbsp; //sinaleira dois 
&nbsp;&nbsp;&nbsp; IOCLR1 = ( vermelho_2);
&nbsp;&nbsp;&nbsp; IOCLR1 = (amarelo_2 );
&nbsp;&nbsp;&nbsp; IOCLR1 = (verde_2 );
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (1&lt;&lt;23);
&nbsp;&nbsp;&nbsp; IOCLR1 = (1&lt;&lt;24);
&nbsp;&nbsp;&nbsp; IOCLR1 = (1&lt;&lt;25);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("Iniciando modo");
&nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);
&nbsp; lcd_puts("de economia");
&nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0) ;
&nbsp;&nbsp;&nbsp; lcd_puts ("ECONOMIA");
&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);
&nbsp; lcd_puts("DE ENERGIA");
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; while (IOPIN1 &amp; (pino_energia)) //enquanto pino energia 1
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (amarelo);&nbsp; //ligando amarelo sinaleira um;
&nbsp;&nbsp;&nbsp; IOSET1 = (amarelo_2); // ligando amarelo sinaleira dois
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++) ; // informando tempo de parada
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (amarelo); // desligando amarelo 1
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (amarelo_2); // desligando amarelo2
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++); //iniciando tempo
}
int main (void)
{
&nbsp;&nbsp;&nbsp; init_lcd ( );
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IODIR1 = 0xFF0FFFFF; //informando os pinos 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; while (1) //enquanto for = 1, acontece loop infinito
&nbsp;&nbsp;&nbsp; {
/*********************************************************************************************
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RUA UM SINAL VERMELHO, RUA DOIS SINAL VERDE
&nbsp;&nbsp;&nbsp; ********************************************************************************************/
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (vermelho);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (vermelho_2);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (verde_2);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_clr( );
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA UM VERMEL");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);

&nbsp;&nbsp;&nbsp; lcd_puts ("RUA DOIS VERDE");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,5);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA CINCO VERMEL");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,5);

&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++);
&nbsp;&nbsp;&nbsp; IOCLR1 = (verde_2);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //colocando um teste , acionando o pino_energia
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if(IOPIN1 &amp;(pino_energia))
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_clr();
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; modo_energia(); //fazendo funcao modo de energia, os parenteses do dinal sao necessários para chamar a funcao
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; /*********************************************************************************************
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUA DOIS SINAL VERMELHO, RUA 2 AMARELO
&nbsp;&nbsp;&nbsp; **********************************************************************************************/
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (amarelo_2);
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++);
&nbsp;&nbsp;&nbsp; IOCLR1 = (amarelo_2);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //rua um verde, rua 2 vermelho 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (vermelho_2);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (vermelho);
&nbsp;&nbsp;&nbsp; IOCLR1 = (1&lt;&lt;23); //desligando vermelho cinco
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (verde);
&nbsp;&nbsp;&nbsp; IOSET1 = (1&lt;&lt;25);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_clr( );
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA UM VERDE");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA DOIS VERMEL");
&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,5);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA CINCO VERDE");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,5);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; IOCLR1 = (verde);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;IOCLR1 = (1&lt;&lt;25);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // TESTANDO ACIONAMENTO DO PINO
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if(IOPIN1 &amp;(pino_energia))
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_clr();
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; modo_energia();
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //RUA DOIS AMARELO, RUA 2 VERMELHO
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (amarelo);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (amarelo_2);

&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000;i++);
&nbsp;&nbsp;&nbsp; IOCLR1 = (amarelo);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (amarelo_2);
&nbsp;&nbsp;&nbsp; 
}
}
&nbsp;&nbsp;&nbsp; 
SINALLEIRA III E IV
#include &lt;lpc213x.h&gt;
#include "c:\Keil\ARM\3_LCD 2X 16\lcd.h"

#define verm_3 (1&lt;&lt;16)
#define am_3 (1&lt;&lt;17)
#define verd_3 (1&lt;&lt;18)

#define verm_4 (1&lt;&lt;19)
#define am_4 (1&lt;&lt;20)
#define verd_4 (1&lt;&lt;21)
#define pino_energia (1&lt;&lt;22)

int i; //iniciando varial

/******************************************************************************************
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INICIANDO FUNCAO DE ECONOMIA DE ENERGIA COM TODOS&nbsp; PINOS limpando
**************************************************************************************************/

void modo_energia (void)
{
&nbsp;&nbsp; IOCLR1 = (verm_3);
&nbsp;&nbsp;&nbsp; &nbsp;IOCLR1 = (am_3);
&nbsp;&nbsp;&nbsp; &nbsp;IOCLR1 = (verd_3 );
&nbsp;&nbsp;&nbsp; //sinaleira dois 
&nbsp;&nbsp;&nbsp; IOCLR1 = ( verm_4);
&nbsp;&nbsp;&nbsp; IOCLR1 = (am_4);
&nbsp;&nbsp;&nbsp; IOCLR1 = (verd_4);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("Iniciando modo");
&nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);
&nbsp; lcd_puts("de economia");
&nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0) ;
&nbsp;&nbsp;&nbsp; lcd_puts ("ECONOMIA");
&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);
&nbsp; lcd_puts("DE ENERGIA");
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; while (IOPIN1 &amp; (pino_energia)) //enquanto pino energia 1
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (am_3);&nbsp; //ligando amarelo sinaleira três;
&nbsp;&nbsp;&nbsp; IOSET1 = (am_4); // ligando amarelo sinaleira quatro
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++) ; // informando tempo de parada
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (am_3); // desligando amarelo 3
&nbsp;&nbsp;&nbsp; IOCLR1 = (am_4); // desligando amarelo4
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++); //iniciando tempo
}

int main (void)
{
&nbsp;&nbsp;&nbsp; init_lcd ( );
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IODIR1 = 0xFFBFFFFF; //informando os pinos 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; while (1) //enquanto for = 1, acontece loop infinito
&nbsp;&nbsp;&nbsp; {
/*********************************************************************************************
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RUA TRÊS SINAL VERMELHO, RUA QUATRO SINAL VERDE
&nbsp;&nbsp;&nbsp; ********************************************************************************************/
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (verm_3);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOCLR1 = (verm_4);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (verd_4);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_clr( );
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA TRES VERM");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);

&nbsp;&nbsp;&nbsp; lcd_puts ("RUA QUATRO VERD");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,5);

&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++);
&nbsp;&nbsp;&nbsp; IOCLR1 = (verd_4);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //colocando um teste , acionando o pino_energia
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if(IOPIN1 &amp;(pino_energia))
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_clr();
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; modo_energia(); //fazendo funcao modo de energia, os parenteses do dinal sao necessários para chamar a funcao
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; /*********************************************************************************************
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RUA QUATRO SINAL VERMELHO, RUA QUATRO AMARELO
&nbsp;&nbsp;&nbsp; **********************************************************************************************/
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (am_4);
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++);
&nbsp;&nbsp;&nbsp; IOCLR1 = (am_4);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //rua um verde, rua 2 vermelho 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (verm_4);
&nbsp;&nbsp;&nbsp; IOSET1 = (verm_3);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (verd_3);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_clr( );
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA TRES VERD");
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,0);
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; lcd_puts ("RUA QUATRO VERM");
&nbsp; &nbsp;&nbsp;&nbsp; lcd_gotoxy (1,5);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000; i++);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; IOCLR1 = (verd_3);
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; // TESTANDO ACIONAMENTO DO PINO
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; if(IOPIN1 &amp;(pino_energia))
&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lcd_clr();
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; modo_energia();
&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; //RUA TRÊS AMARELO, RUA QUATRO VERMELHO
&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp; IOSET1 = (am_3);
&nbsp;&nbsp;&nbsp; IOSET1 = (am_4);

&nbsp;&nbsp;&nbsp; for (i=0; i&lt;1000;i++);
&nbsp;&nbsp;&nbsp; IOCLR1 = (am_3);
&nbsp;&nbsp;&nbsp; IOCLR1 = (am_4);
&nbsp;&nbsp;&nbsp; 
}
}
&nbsp;&nbsp;&nbsp; 
ESTAS SÃO AS IMAGENS: