quarta-feira, 8 de setembro de 2010

sequencial de leds 3 cores

video do sequencial de leds colocado em uma moto.



//sequencial individual 2x2
//23/12/2007
#include <16f877A.h> //
#fuses NOWDT, XT, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay (clock=4000000) // usado nos delays, define o CLOCK usado. No caso, 4MHz
long int a;
int b,c,e,d;
// a=tempo, b=auxiliar, c=auxiliar,d=auxiliar.
//C0=vermelho 1-ligado e 0-desligado
//C1=verde 1-ligado e 0-desligado
//C2=amarelo 1-ligado e 0-desligado
//
void uma(void)
{
output_a (255);
output_b (255);
output_d (255);
output_c (2);//verde
delay_ms(a);
output_c (0);//apaga
delay_ms(a);
output_c (1);//vermelho
delay_ms(a);
output_c (0);//apaga
delay_ms(a);
output_c (4);//amarelo
delay_ms(a);
output_c (0);//apaga
delay_ms(a);
}
void bargraf(void)
{
output_a (0);
output_b (1);
output_d (0);
delay_ms(a);
output_b (3);
delay_ms(a);
output_b (7);
delay_ms(a);
output_b (15);
delay_ms(a);
output_b (31);
delay_ms(a);
output_b (63);
delay_ms(a);
output_b (127);
delay_ms(a);
output_b (255);
delay_ms(a);
output_d (1);
delay_ms(a);
output_d (3);
delay_ms(a);
output_d (7);
delay_ms(a);
output_d (15);
delay_ms(a);
output_d (31);
delay_ms(a);
output_d (63);
delay_ms(a);
output_d (127);
delay_ms(a);
output_d (255);
delay_ms(a);
output_a (1);
delay_ms(a);
output_a (3);
delay_ms(a);
output_a (7);
delay_ms(a);
output_a (15);
delay_ms(a);
}
void vai(void)
{
output_a (0);
output_d (0);
output_b (1);
delay_ms(a);
output_b (2);
delay_ms(a);
output_b (4);
delay_ms(a);
output_b (8);
delay_ms(a);
output_b (16);
delay_ms(a);
output_b (32);
delay_ms(a);
output_b (64);
delay_ms(a);
output_b (128);
delay_ms(a);
output_a (0);
output_b (0);
output_d (1);
delay_ms(a);
output_d (2);
delay_ms(a);
output_d (4);
delay_ms(a);
output_d (8);
delay_ms(a);
output_d (16);
delay_ms(a);
output_d (32);
delay_ms(a);
output_d (64);
delay_ms(a);
output_d (128);
delay_ms(a);
output_d (0);
output_b (0);
output_a (1);
delay_ms(a);
output_a (2);
delay_ms(a);
output_a (4);
delay_ms(a);
output_a (8);
delay_ms(a);
}
void vem(void)
{
output_a (0);
output_d (0);
output_b (1);
delay_ms(a);
output_b (2);
delay_ms(a);
output_b (4);
delay_ms(a);
output_b (8);
delay_ms(a);
output_b (16);
delay_ms(a);
output_b (32);
delay_ms(a);
output_b (64);
delay_ms(a);
output_b (128);
delay_ms(a);
output_a (0);
output_b (0);
output_d (1);
delay_ms(a);
output_d (2);
delay_ms(a);
output_d (4);
delay_ms(a);
output_d (8);
delay_ms(a);
output_d (16);
delay_ms(a);
output_d (32);
delay_ms(a);
output_d (64);
delay_ms(a);
output_d (128);
delay_ms(a);
output_d (0);
output_b (0);
output_a (1);
delay_ms(a);
output_a (2);
delay_ms(a);
output_a (4);
delay_ms(a);
output_a (8);
delay_ms(a);
}


void duas(int c,int b)//cor1 cor2
{
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (1);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_a (8);
output_d (0);
output_b (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (2);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_a (4);
output_d (0);
output_b (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (4);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_a (2);
output_d (0);
output_b (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (8);
output_a (0);
output_d (0);

delay_ms(a);
output_c (b);
output_a (1);
output_d (0);
output_b (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (16);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_d (128);
output_a (0);
output_b (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (32);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_d (64);
output_a (0);
output_b (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (64);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_d (32);
output_b (0);
output_a (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_b (128);
output_a (0);
output_d (0);
delay_ms(a);
output_c (b);
output_d (16);
output_b (0);
output_a (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (c);
output_d (1);
output_b (0);
output_a (0);
delay_ms(a);
output_c (b);
output_d (8);
output_b (0);
output_a (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_d (2);
delay_ms(a);
output_c (c);
output_d (4);
delay_ms(a);
}
//do meio para borda
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_d (1);
delay_ms(a);
output_c (c);
output_d (8);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (128);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_d (16);
output_b (0);
output_a (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (64);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_b (0);
output_a (0);
output_d (32);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (32);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_d (64);
output_b (0);
output_a (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (16);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_d (128);
output_b (0);
output_a (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (8);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_a (1);
output_b (0);
output_d (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (4);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_a (2);
output_b (0);
output_d (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (2);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_a (4);
output_b (0);
output_d (0);
delay_ms(a);
}
for(e=0;e<21;e++)//tempo da luz acesa 10ms
{
a=1;
output_c (b);
output_b (1);
output_a (0);
output_d (0);
delay_ms(a);
output_c (c);
output_a (8);
output_b (0);
output_d (0);
delay_ms(a);
}
}


void main()
{
set_tris_a(0); // define o port a como saída
set_tris_b(0); // define o port b como saída
set_tris_c(0); // define o port c como saída
set_tris_d(0); // define o port d como saída
set_tris_e(0); // define o port e como saída
a=200;//30;
for(;;)
{
output_a (0);
output_b (0);
output_c (0);
output_d (0);
output_e (0);

//uma cor
for(b=0;b<20;b++)
{
a=60; //define velocidade
uma();
}

//vai e vem de uma cor
for(b=0;b<2;b++)
{
a=30; //define velocidade
output_c (2);//verde
vai();
output_c (1);//vermelho
vem();
output_c (4);//amarelo
vai();
output_c (2);//verde
vem();
output_c (1);//vermelho
vai();
output_c (4);//verde
vem();
}
//só vai
for(b=0;b<2;b++)
{
a=20;
output_c (2);//verde
vai();
output_c (1);//vermelho
vai();
output_c (4);//amarelo
vai();
}
for(b=0;b<2;b++)
{
a=5;
output_c (2);//verde
vai();
output_c (1);//vermelho
vai();
output_c (4);//amarelo
vai();
}
//só vai 2 cores
for(b=0;b<2;b++)
{
a=50;
output_c (3);//verde/vm
vai();
output_c (5);//vermelho/am
vai();
output_c (6);//amarelo/vd
vai();
}

//tres cores
for(b=0;b<3;b++)
{
output_c (7);
a=50;
vai();
}
//duas cores em direcoes contrarias
for(d=0;d<3;d++)
{
duas(2,1);//vd vm
duas(1,2);//vm vd
duas(1,4);//vm am
duas(4,1);//am vm
duas(2,4);//vd am
duas(4,2);//am vd
}
// vai acendendo
for(d=0;d<2;d++)
{
a=80;
output_c (2);//verde
bargraf();
output_c (1);//vermelho
bargraf();
output_c (4);//amarelo
bargraf();
//
}


}

}

Nenhum comentário :

Postar um comentário

olá,digite aqui seu comentário!