C ile led kontrol

shugogo

Üye
Katılım
18 Şub 2007
Mesajlar
21
Puanları
1
herkese merhaba;
aşağıdaki uygulamayı c ile nasıl yazarız.

lütfen yardımcı olabilir misiniz.

herhangi bir butona basıldığında o butona bağlı led yanacak, yanan diğer ledler sönecektir. (Yani her seferinde tek led yanacaktır.) Aynı butona iki kez basıldığında da yanan led sönecektir. (Osilatör: 4 MHz)
 

Ekli dosyalar

  • led.jpg
    138.3 KB · Görüntüleme: 19
Son düzenleme:
burda yapman gereken butona kacıncı kez basıldıgını hafıza tutman gerekir,yani butonun son durumunu hafızada tutacan ve eger hafızadaki deger bir se sıfıra,sıfırsa bire cekeceksin.

int def_buton1=0;
int def_buton2=0;
int def_buton3=0;

while(1){
if (Buton1 ==1) {
if (def_buton1==0){ led1=1; led2=0; led3=0;def_buton1=1;}
else{led1=0;led2=0;led3=0;def_buton1=0;}

if (Buton2 ==1) {
if (def_buton2==0){ led1=0; led2=1; led3=0;def_buton2=1;}
else{led1=0;led2=0;led3=0;def_buton2=0;}

if (Buton3 ==1) {
if (def_buton3==0){ led1=0; led2=0; led3=1;def_buton3=1;}
else{led1=0;led2=0;led3=0;def_buton1=0;}

delay(250);
}
bu sekilde bir program yazarsan butona bir kez bastıgında o butona ait led yanar digerleri söner,ikinci kez bastıgında bütün ledler söner.
mantık bu sekilde programına göre kendin düzenlersin.
 
Kod:
buton = (( Portb<<4) & 0x0F);  // butonların son durumunu alt 4 bite kaydır
led = (Portb & 0x0F); // ledlerin durumu alt 4 bitte
if(buton != 0 ); //butona basıldıysa
{ Portb = ( (buton & led) ^ buton ); // exor ne araştır }
delay_ms(40); // 40ms bekle
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…