PIC

İKİ ADET PIC16F877A İLE UART SERİ HABERLEŞME UYGULAMASI

ikipicserial bağlantı

Yukarıdaki devrede iki PIC16F877A birbirlerine donanımsal uart haberleşme pinleri ile iletim yapacak hale getirilmiştir. Her ikisinin c6 ucu(TX) öbürünün c7 ucuna(RX) bağlandı. Böylece birinin çıkış olarak verdiği data bir diğerinin giriş olarak alacağı data olacaktır. Ardından lcd ekranlar yukarıdaki gibi mikrodenetleyicilere bağlandı. Bu lcd ekranlar bağlı oldukları mikrodenetleyicinin diğer mikrodenetleyiciden aldığı datayı göstermek için bağlanmıştır. Her iki mikrodenetleyicinin A portlarına dirençler ve butonlar bağlanmıştır. Bu butonlar açıkken bağlı oldukları pinlere lojik 0 değeri gider. Butonlar kapalı iken de pinlere lojik 1 değeri gider. A portu 6 bitlik bir pindir. Bu portun a0,a1 ve a3 pinleri uygulamada kullanılmıştır. Bu pinler ikili tabanda basamakları ifade eder ve 0’dan 7’ye kadar değerler elde edilebilir. Toparlayacak olursak her iki mikrodenetleyiciye bağlı lcd ekranlar diğer mikrodenetleyicinin a portundan okunan değeri gösterecektir. Aşağıdaki resimlerde bunun yapılması için yazılan CCS C  programı yer almaktadır.

UART1

Yukarıda 1. satırda kullanılan mikrodenetleyiciye ait kütüphane eklenmiştir.2. satırda standart sigorta ayarları yapılmıştır.3. satırda mikrodenetleyicinin osilatör frekansı 4MHz programa bildirilmiştir. 4. satırda mikrodenetleyicinin b portundan lcd ekranın kontrol edileceği bildirilmiştir.5. satırda lcd komutlarını içeren kütüphane programa eklenmiştir.6. satırda seri haberleşmeyi sağlamak için kullanılan rs232 protokolüne ait hız oranı 9600bps ,veri iletim pininin c6 ,veri alım pini c7 olması ile parity biti kullanılmaması ve bir adet sonlandırıcı biti kullanılmasını bildiren ayarlar programa tanıtılmıştır. 7. satırda char veri tipinde alinan ve ver adındaki iki string dizi programa tanıtılmıştır. alinan adlı string dizi karşı mikrodenetleyiciden alınan string diziyi tutmaması için eklenmiştir. ver isimli string dizi ise karşı taraftaki mikrodenetleyiciye gönderilecek diziyi tutar. 8. satırda a portundan alınacak olan sayısal değeri tutacak olan değişken tanımlanmıştır. 9. satırdan 19. satıra kadar olan kısımda programın main fonksiyonu içinde genel kurulum ayarları yapılmıştır.

Yukarıdaki program kısmı ve açıklamaları her mikrodenetleyiciye yüklenecek olan program için geçerlidir ve aynıdır. Aşağıdaki resimlerde görülen program kısımlarından biri bir mikrodenetleyiciye yüklenirse diğeri de karşıdaki mikrodenetleyiciye yüklenmiştir. Böylece her iki mikrodenetleyici birbiriyle uyumlu çalışır.

UART2

Yukarıdaki resimde 21. satırda while döngüsü başlatılmıştır. ardından döngünün sürekli olması için döngü şartı TRUE=1 yapılmıştır. 23. satırda input_a() komutuyla 6 bitlik a portundan okunan değer int veri tipindeki verilecek değişkenine atanmıştır. 24. satırda sprintf fonksiyonu ile resimdeki gibi int tipinde değişkenin değeri string tipindeki değişkene string olarak atanmıştır. Bu işlemin sebebi seri haberleşme fonksiyonlarının hepsinin string veya char veri tiplerinde işlem yapmasıdır.25. satırda gets fonksiyonu ile karşıdan gelen veri okunarak alinan adlı değişkene atanmıştır.Bundan dolayı karşıdaki işlemcideki programda uyumun sağlanması için ilk olarak karşıya veri gönderen puts fonksiyonu ile başlamalıdır.26. satırda alınan x datası  lcd ye “alınan deger x” şeklinde yazdırılır. Buradaki fonksiyoda printf fonksiyonu kullanılmasından dolayı veri göndermede  puts fonksiyonu kullanılmıştır. fonksiyon içinde yer alan \f kendisinden önce olan tüm yazıları siler.\r ise imleci satır başına götürür.27. satırdaki 1 sn’lik bekleme koymamın sebebi ise buttonların istenilen şekilde değiştirilmesi için gerekli süreyi sağlamaktır.

uart3.jpg

Yukarıdaki resimdeki 23. satırdaki puts fonksiyonu karşıdaki gets fonksiyonu ile uyumu sağlamak için ilk olarak eklenmiştir. 24. satırda bekleme süresi belirtilmiştir. 25. satırda ikinci olarak karşı mikrodenetleyicideki puts fonksiyonundan gelen veriyi almak için gets fonksiyonu ekledim.

Dosyaları buradan indirebilirsiniz: https://github.com/Fatihalparslan/Two-PIC-Serial-Communication

Galiba hepsi bu kadar 🙂 Ha bide video olayı var

İKİ ADET PIC16F877A İLE UART SERİ HABERLEŞME UYGULAMASI&rdquo için 1 yorum

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

%d blogcu bunu beğendi: