buton ile trafik lamba kontrolü

Başlatan ican43, 04 Mayıs 2016, 15:15:44

ican43

Selamlar
Hocam herhangi bir etki ile trafik lambalarının kontrolü üzerinde çalışıyorum. Butona(a2) bastığımda 4.lamba yanıp sönecek, butona basılmazsa trafik lambaları bilindiği gibi çalışacak. Yaptığım programda belli bir yere kadar oluyor, lambalar sırayla yanıp sönüyor. Fakat lambaların sırayla değil bildiğimiz trafik lambaları gibi yanmasını istiyorum. kırmızı 1.lamba(0x01) yanacak 3sn sonra sarı3.lamba(0x02) yanacak, sonra ikisi sönüp yeşil3.lamba(0x04) yanacak. İşte burasını yapamadım yardımcı olursanız sevinirim. hayırlı çalışmalar
NOT: Daha önce konuda hata iletisi vermişsiniz, dikkat ediyorum ama nerde hata yaptım anlamadım
#include <16f877A.h>
#fuses XT,NOWDT,NOPUT,NOPROTECT,NOLVP,
#use delay(clock=4000000)
#use fast_io(a)//port yonlendirme komutları a portu için geçerli
#use fast_io(b)//port yonlendirme komutları b portu için geçerli
#byte port_a=5
#byte port_b=6

void main()

   set_tris_a(0);// a portu giriş
   set_tris_b(0x00);// b portu çıkış
   while(1)
   {   
      if(input(pin_a2)==1)//azalt butonuna basıldı ise
      {
         output_b(0x08);
         delay_ms(200);
         output_b(0x00);
         delay_ms(200);
      }
      else
      {
      output_b(0x01);
      delay_ms(5000);
      output_b(0x01);
      output_b(0x02);
      delay_ms(3000);
      output_b(0x04);
      delay_ms(5000);
      }
   }
}

kareli

#1
a portu gırıs demıssın ama gırıs yapabılmen ıcın 0xff tapman lazım veya 0b00001111 seklınde yapman lazımdı sankı

mesaj birleştirme:: 05 Mayıs 2016, 07:36:35

ayrıca ınput ıcerısını yukarıda su sekılde tanımlaman lazım
#bit ra0=0x05.0
seklınde ve ardından ınput(ra0==1) yapman gerekırdı

mesaj birleştirme:: 04 Mayıs 2016, 17:39:26

ve neden byte ıfadesını kullandın dongunde bole ıfadelere yer vermemıssın ..
#byte trisa=0x85 seklınde yaparak ardından

trisa=0x00;  cıkıs olur  trisa=0xff dersen gırıs olur
'Bırakın bugün onların olsun: ama uğrunda çok uğraştığım gelecek, benimdir' Nikola Tesla.

dursuncemal

burada sadece a potunun gerekli pinleri giris yapilmamis baska bir sorun yok gibi.?
:=

ican43

Tamam doğru hocam.. Devre normalde else ye kadar çalışıyor, fakat else den sonra kırmızı(01) yanarken 2sn sonra sarı(02) lambasını yakamadım. Sonra ikisi de sönecek yeşil(04)lambası yanacak. Burayı tam yapamıyorum. sadece sırayla yanıp döngü devam ediyor, burayı kodlayabilirmisiniz.

kareli

Sunlari output_high yaparak istedigin portu bi lojik 1 yap sonra low yapmayi unutma bu sekilde olmaz
'Bırakın bugün onların olsun: ama uğrunda çok uğraştığım gelecek, benimdir' Nikola Tesla.

ican43

tamam o şekilde oldu.output_high ve low ile ayarladım. sağol