Pic Buton yardımı

kuralsiz

Üye
Katılım
2 Eyl 2011
Mesajlar
5
Puanları
1
Selam arkadaşlar.
Temel elektronik bilgim var.Ben bir devre yaptım.
Röle ve transistörler çok yer kaplıyor ve maliyetli oluyor
Bu yaptığım devreyi pic ile yapmak istiyorum.
Yardım edermisiniz lütfen..

B1 basılınca L1 yanacak, tekrar basana kadar yanık kalacak. eğer L2,L3,L4 yanıyorsa onlarıda söndürecek.
B2 basılınca L2 yanacak, tekrar basana kadar yanık kalacak. eğer L1 yanıyorsa onuda söndürecek.
B3 basılınca L3 yanacak, tekrar basana kadar yanık kalacak. eğer L1 yanıyorsa onuda söndürecek.
B4 basılınca L4 yanacak, tekrar basana kadar yanık kalacak. eğer L1 yanıyorsa onuda söndürecek.
 

Ekli dosyalar

  • butonn.rar
    12.5 KB · Görüntüleme: 9
  • butonn.rar
    12.5 KB · Görüntüleme: 5
Son düzenleme:
Picle led yakıp söndürebiiyor musunuz?
Yazdığınız kod nerede?
Hangi dili kullanıyorsunuz?
Yaptım dediğiniz devre nedir?
Pic çıkışları en fazla 20-25 mA verebilir, her halükarda transistör+ role kullanmak zorunda kalabilirsiniz.
Isis çiziminizde ufak hata olsada iyi gözüküyor, hata butona basılırsa pice direk besleme(+5V) giriyor, 470 ohm gibi bir dirençle girmek lazım, ayrıca geröek devrede osilatör (xtal+kondansatör veya RC veya varsa dahili) ve mclr pinine 10k ile +5V vernek gerekir (mclr yazılımsal olarak devre dışı bırakılamıyorsa)
 
pic bilgim yok. o yüzden yardım istiyorum.
benim yaptığım devre 555 entegrelerle çalışıyodu.
pic 16f84A dahili osilatörü yok. ISIS te osilatör kullanmadanda çalışabiliyor.
pic in çıkışları 1 adet led sürmek için yeterli.
sadece kod yardımı istiyorum.
teşekkürler.
 
#include <16f877.h> //a1=1.led-a2=2.led-a3=3.led-a5=4.led b1=1.buton-b2=2.buton-b3=3.buton-b4=4.buton
#use delay (clock=4m)
void main()
{
static short x=1,y=1,z=1,k=1;
while(1)
{
delay_ms(20);
if(input(pin_b1))
{
while(input(pin_b1));
output_low(pin_a2);
output_low(pin_a3);
output_low(pin_a5);
y=1;
z=1;
k=1;
output_bit(pin_a1,x);
x=~x;
}
if(input(pin_b2))
{
while(input(pin_b2));
output_low(pin_a1);
output_bit(pin_a2,y);
y=~y;
x=1;
}
if(input(pin_b3))
{
while(input(pin_b3));
output_low(pin_a1);
output_bit(pin_a3,z);
z=~z;
x=1;
}
if(input(pin_b4))
{
while(input(pin_b4));
output_low(pin_a1);
output_bit(pin_a5,k);
k=~k;
x=1;
}
}
}
 
yukarıda #include <16f877.h> yazan yere kendı ıslemcının ısmını yaz

 
kardesım sanırım hıc bılgın yok ccs konusunda ledleri istediğin yere bağla programdada nereye bagladıysan ona gore degısıklık yap a1-a2-a3-a5-yazan yerlerde benım gozumden kacmıs senın programı 16f84a ya gore ıstedıgını
 
ewet çok bilgim yok. kodu düzelttiğimi zannediyorum hex ede cevirdim ama hex isiste çalışmadı bide siz bakabılırmısınız :confused:




#include <16f84a.h> //a0=1.led-a1=2.led-a2=3.led-a3=4.led b0=1.buton-b1=2.buton-b2=3.buton-b3=4.buton
#use delay (clock=4m)
void main()
{
static short x=1,y=1,z=1,k=1;
while(1)
{
delay_ms(20);
if(input(pin_b0))
{
while(input(pin_b0));
output_low(pin_a1);
output_low(pin_a2);
output_low(pin_a3);
y=1;
z=1;
k=1;
output_bit(pin_a0,x);
x=~x;
}
if(input(pin_b1))
{
while(input(pin_b1));
output_low(pin_a0);
output_bit(pin_a1,y);
y=~y;
x=1;
}
if(input(pin_b2))
{
while(input(pin_b2));
output_low(pin_a0);
output_bit(pin_a2,z);
z=~z;
x=1;
}
if(input(pin_b3))
{
while(input(pin_b3));
output_low(pin_a0);
output_bit(pin_a3,k);
k=~k;
x=1;
}
}
}
 
program çalısıyor dostum şimdi tekrar denedim isis devresini yanlış kuruyorsundur biraz araştır onuda koymucam buraya
 

Forum istatistikleri

Konular
130,165
Mesajlar
933,916
Kullanıcılar
453,290
Son üye
CanTekin01

Yeni konular

Geri
Üst