yürüyen ışık uygulaması

Başlatan optimum, 12 Haziran 2011, 15:22:08

optimum

benim amacım bir devre yapıp programını yazmak ve bir ledde yüriyen ışık uygulaması yapmak.ışıklar yukarı aşağı yukarı aşağı şekilde olcak.içinde 2 tane buton 8 tane led olcak.2 buton olmasının sebebi bi buton ışıklar arası geçiş süresini azaltcak diğeri ise arttırcak.aşağıda bunun devresi var:

ve onun için yazdığım program ise bu ve çalışmıyor sorun nedir acaba yardımcı olur munuz?

#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(a)
int1 x;
int1 y;

void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_a(0b00000001);
set_tris_b(0x00);




basla:

x=input(pin_a0);

output_bit(pin_b0,x);
delay_ms(100);
x=input(pin_a0);
output_bit(pin_b1,x);
delay_ms(200);
x=input(pin_a0);
output_bit(pin_b2,x);
delay_ms(300);
x=input(pin_a0);
output_bit(pin_b3,x);
delay_ms(400);
x=input(pin_a0);
output_bit(pin_b4,x);
delay_ms(500);
x=input(pin_a0);
output_bit(pin_b5,x);
delay_ms(600);
x=input(pin_a0);
output_bit(pin_b6,x);
delay_ms(700);
x=input(pin_a0);
output_bit(pin_b7,x);

goto basla;

}
else
{
break;
}

basla2:

y=input(pin_a1);


output_bit(pin_b0,y);
delay_ms(700);
y=input(pin_a1);
output_bit(pin_b1,y);
delay_ms(600);
y=input(pin_a1);
output_bit(pin_b2,y);
delay_ms(500);
y=input(pin_a1);
output_bit(pin_b3,y);
delay_ms(400);
y=input(pin_a1);
output_high(pin_b4,y);
delay_ms(300);
y=input(pin_a1);
output_bit(pin_b5,y);
delay_ms(200);
y=input(pin_a1);
output_bit(pin_b6,y);
delay_ms(100);
y=input(pin_a1);
output_bit(pin_b7,y);

goto basla2;
}

else
{
break;
}
}

Ersin

#1
Daha önce yaptığım bu örneği bir incele. delay 20 ve 50 ms olan yerlere değişken yap ve o değişkenin değerini  artır up/down butonları ile

/////////                     KARASIMSEK                        ////////////////
//////                       Led dipsw (SW): On                 //////////////// 
//////                       J13           :Pull-up             //////////////// 
//////     Diger butun switch ve jumperlar :Off                 ////////////////
//////                 Kullanilan butonlar :A0,B0,C0,D0         ////////////////
////////////////////////////////////////////////////////////////////////////////
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

int8 i,k,m;
void slightrght(){
i,m=1;
for (i=1;i<=7;++i)
{delay_ms(20);
  output_bit(k,1);
    delay_ms(50);
     output_bit(k,0);  ++k;
}

}
void slightlft(){
i,m=1;
for (i=1;i<=7;++i)
{delay_ms(20);
  output_bit(k,1);
    delay_ms(50);
     output_bit(k,0);  --k;
}

}
///////////////////////////////////////////////////////////////////////////////
void main() {
disable_interrupts(GLOBAL); // all interrupts OFF

//-----------------------------------------------------
  set_tris_a(0);  set_tris_b(0);  set_tris_c(0);  set_tris_d(0);
 output_a(0x00); output_b(0x00); output_c(0x00);output_d(0x00);
  k=48;
  while(TRUE) {
 
slightrght ();
slightlft ();

  }
 }