C18 Diliyle Robot Programlama – Buton Yapma

Genel olarak output mantığı burada da geçerli. Bu sefer bazı portları giriş için (TRIS = 1) bazı portları ise çıkış için (TRIS = 0) ayarlayacağız. Amaç butonlara bağlı pinlerden sinyal (5 volt) geldiğinde ledlere bağlı pinlere sinyal (5 volt) vermek.

Benim kullandığım kart üzerinde butonlar 35,34 ve 33. pinlere bağlanmış durumda. Datasheet’e bakarsak bu pinlerin RB2, RB1 ve RB0 pinleri olduğu görülebilir.

RB2 pinine bağlı butona basıldığında RB5 pinine bağlı ledin yanması için yazılacak kodlar aşağıda verilmiştir.

/*
 *File: main.c
 *Author: cagatay
 *
 *Created on 23 Ocak Pazartesi, 13.19
 */

#include <p18f4585.h>
#include <stdio.h>
#include <delays.h>

#pragma config OSC = HS, WDT = OFF, LVP = OFF

void main(void) {

	TRISBbits.RB5 = 0;
	TRISBbits.RB2 = 1;

	PORTB = 0;

	while(1) {

		while(PORTBbits.RB2 == 0)
			PORTBbits.RB5 = 1;
		PORTBbits.RB5 = 0;

	}

	return;

}

16. satırda RB5 pini çıkış için, 17. satırda RB2 pini giriş için ayarlanıyor. 19. satırda B portu pinlerine çıkış olarak 0 volt veriliyor. 23. satırda RB2 portundan sinyal gelip gelmediği kontrol ediliyor (Eğer sinyal geliyorsa butona basılmamış, eğer sinyal gelmiyorsa butona basılmış demektir). Butona basılmışsa 24. satırsa RB5 pinine bağlı led yakılıyor. Butona basılmadığı zaman program döngüden çıkıyor ve 25. satırda led tekrar söndürülüyor.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s