ödevim için microVision3 derleyicisi ile C de 8051 chip i için kod yazıyorum. programda yapmam gereken kullanıcı 4 tane buton aracılığıyla değeri değiştirecek yanlız bu butonların durumunu 8051 chipinin pinlerinden değerlerini c de nasıl okurum
port B de 4 tane pin kullanıcam yardım edebilirmisiniz
şimdiden Teşekürler
Aslında bu sorunun yeri burası değil ve bende 8051 ile çalışmadım hiç ama bildiğim kadarıyla şöyle olabilir.
Portb yi komple pull down yaptığını var sayıyorum. Bu durumda hiçbir butona basılmadan değeri 0000 0000 olur. 4 buton ilk 4 bite bağlı olsun. Birinci butona basıldığı zaman portb 0000 0001 olur. Birinci butona basılıp basılmadığını anlamak için bu sayıyı portb ile VE işlemine sokman gerekir. Yani bir if içinde şöyle kullanırsan; if(PORTB & 0b00000001) // birinci butona basıldı.
Bu ifade şu şekilde daha anlaşılır yazılabilir: if(PORTB & 1<<0) // İlk butona basıldı. if(PORTB & 1<<1) // İkinci butona basıldı. if(PORTB & 1<<2) // Üçüncü butona basıldı. if(PORTB & 1<<3) // Dördüncü butona basıldı... gibi.
8051 C derleyicilerinde, BIT veritipi olur genelde. Bu durumda, örneğin,
BIT dugme_1 p1.0;
gibi tanımlar yapılır. Böylece siz;
if (dugme_1) { hede(); hodo(); }
şeklinde kullanabilir, yada örneğin;
BIT led p1.2;
.... ....
led = 1; // LED'i yak. led = 0; // LED'i söndür..
yapabilirsiniz.
Bu gibi bir özelliğin var oluğ olmadığı, nasıl olduğunun vs. detayı kullandığınız derleyiciye bağlı. Onun dökümanlarına bir göz atın.