PIC Programlama Dersleri 2: TRIS ve PORT Komutları – Giriş ve Çıkış Kontrolü
PIC mikrodenetleyicilerle program yazarken en sık kullanacağımız komutlardan ikisi TRIS ve PORT kayıtlarıdır. Bu kayıtlar sayesinde işlemci pinlerini giriş veya çıkış olarak ayarlayabilir, butonları okuyabilir ve LED, röle gibi elemanları kontrol edebiliriz.Bu derste örneklerimizi PIC16F628A ve mikroC PRO for PIC üzerinden hazırlayacağız.
1. PORTA ve PORTB nedir?
PIC16F628A mikrodenetleyicisinde iki temel giriş-çıkış portu bulunur:- PORTA: RA0, RA1 ve diğer kullanılabilir A portu pinleri.
- PORTB: RB0, RB1 ve diğer B portu pinleri.
2. TRISA ve TRISB kayıtları
TRISA ve TRISB, pinlerin yönünü belirler.Genel kural şöyledir:
- Bit değeri 1 ise ilgili pin giriş olarak ayarlanır.
- Bit değeri 0 ise ilgili pin çıkış olarak ayarlanır.
TRISB = 0b00000001;
Bu ayarda RB0 giriş, RB1–RB7 pinleri çıkış olur.
Başka bir örnek:
TRISB = 0b00000000;
PORTB'nin bütün pinleri çıkış olarak ayarlanır.
PORTA için de benzer şekilde TRISA kullanılır.
3. PORTA ve PORTB kayıtları
Pinlerin yönü belirlendikten sonra PORTA ve PORTB üzerinden girişler okunabilir veya çıkış seviyeleri kontrol edilebilir.Örnek:
PORTB.F0 = 1;
RB0 pininin çıkış seviyesini lojik 1 yapar.
PORTB.F0 = 0;
RB0 pininin çıkış seviyesini lojik 0 yapar.
Bir portun tamamını kontrol etmek de mümkündür:
PORTB = 0x00;
PORTB çıkışlarını sıfırlar.
PORTB = 0xFF;
PORTB'nin bütün bitlerini 1 yapar. Bu örneği kullanırken portun ilgili pinlerinin çıkış olarak ayarlandığından emin olun.
4. Uygulama: Butonla LED kontrolü
Bu uygulamada RA0 girişine bağlı bir butonla RB0 çıkışına bağlı LED'i kontrol edeceğiz.Bağlantı örneği:
- RA0: Buton girişi.
- RB0: LED çıkışı; uygun seri direnç kullanılmalıdır.
- Buton girişinde kararlı lojik seviye için uygun pull-up veya pull-down bağlantısı yapılmalıdır.
Kod:
void main() {
CMCON = 0x07; // Karşılaştırıcıları kapat
TRISA = 0b00000001; // RA0 giriş
TRISB = 0b00000000; // PORTB çıkış
PORTB = 0;
while(1) {
if (PORTA.F0 == 1) {
PORTB.F0 = 1;
} else {
PORTB.F0 = 0;
}
}
}
Kodun çalışma şekli
- CMCON = 0x07; komutu karşılaştırıcıları kapatır ve ilgili pinlerin dijital giriş olarak kullanılmasına yardımcı olur.
- TRISA ile RA0 giriş yapılır.
- TRISB ile PORTB çıkış yapılır.
- Program sürekli olarak RA0 pinini okur.
- RA0 lojik 1 olduğunda RB0 açılır; lojik 0 olduğunda RB0 kapanır.
5. Bit işlemlerine giriş
Bir portun tamamını değiştirmek yerine yalnızca tek bir pini kontrol etmek çoğu zaman daha kullanışlıdır.Örneğin:
PORTB.F0 = 1;
PORTB.F1 = 0;
Bu komutlar RB0 ve RB1 pinlerini ayrı ayrı kontrol eder.
Birden fazla pini aynı anda ayarlamak için ikilik veya onaltılık sayı gösterimleri de kullanılabilir:
PORTB = 0b00000011;
Bu değer PORTB'nin ilk iki bitini 1, diğer bitlerini 0 yapar. Bu tür toplu atamalar, aynı porttaki başka çıkışların durumunu da değiştirebilir.
Sonuç
TRISA ve TRISB pinlerin giriş veya çıkış yönünü belirler. PORTA ve PORTB ise pin seviyelerini okumak ve çıkışları kontrol etmek için kullanılır. Bu dört kayıt, buton, LED, röle ve sensör uygulamalarının temelini oluşturur.Sonraki ders: PIC Programlama Dersleri 3 – if, else ve while Komutlarıyla Karar Verme ve Döngüler.