Devam: Flowcode - Örnek 2 - GİRİŞE bağlı LED YAKMA SÖNDÜRME Diyagramı

Başlatan M.Salim GÜLLÜCE, 14 Nisan 2013, 18:45:32

M.Salim GÜLLÜCE

Flowcode - Denemeler 2 - GİRİŞE bağlı LED YAKMA SÖNDÜRME Diyagramı

Bu bölümde 1. derste yakıp söndürdüğümüz ledin bir giriş düğmesiyle yakılıp söndürülmesini sağlayacağız.

İlk açtığımızda dosya açma menüsünde
Create a new Flowcode...
Diğer Dosyalar...
seçiniz.

Açılan Pencereden
16 sekmesinde
16F628A
seçiniz.


Hemen Aynı Pencerenin Genel Seçenekler Sekmesinden Kristal frekansını belirleyin


Aynı sekmedeki Configure chip... Butonuna basarak Config penceresinden aşağıda gördüğünüz ayarları gerçekleştirin.

Burada Osilatörümüzü kristalsiz ve dahili mod ta seçtik. MCLR pini dışındaki ayarları kapalı seçtik.

Ayarlamalarımızı tamamladığımızda OK ve TAMAM tuşuna basarsak Aşağıdaki gibi bir görünümü
Bazı Pencere düzenlemelerle elde edeceksiniz.

Rahat çalışabilmeniz için size kalmış olsada bu düzende çalışmak daha kolay olacak sanırım.

Şimdi Gerekli Olan Donanımları ekleyelim:
Bir adet Led:



Bir Adet Buton:


Ekleyelim

Led ve Butonda Değişik görüm ayarlayabilirsiniz.
Üzerinde Sağ Fare Genişletilmiş Özellikler altında Büyüklüğü Tipi ve Basıldığında 1 mi 0 mı verceği gibi ayarları yapın.



Şimdide Led ve Butonu hangi portlara bağlayacağımızı belirleyelim.


Ledi PortA 0a, Buttonu PortB 0a Bağlamış olduk

Şimdi programlama bölümünde:
Hesaplama ve Tanımlama Simgesi yerleştirelim

Bu Açılış Başlangıç değerleri tanımlama ve bir takım atama veya hesapların yapıldığı alandır.

Şimdi bir adet bağlantı noktası yerleştirelim


Şimdi bir adet Girdi Simgesi yerleştirelim


Şimdide bir adet Hüküm Karar Simgesi yerleştirelim


Şimdi kararın sağdaki Evet Dalına ve Alttaki Hayır dalına birer Çıktı simgesi yerleştirelim


Evet kanadındaki çıkışın altına Gecikme ekleyelim


Evet ve hayır birleşimlerinden sonraya
Bağlantı noktasına atlama simgesi yerleştirelim


Arkadaşlar program akışımız algoritmamız hazır. :)
Buraya kadarki halini şu şekilde göreceğiz:


Şimdi içini doldurmaya kaldı:
Girdiyi kaydedeceğimiz bir değişken tanımlayıp başlangıç değerini atayalım:


Değişkenimizi 1 bitlik tanımladık. Zira Button 1 veya sıfır değeri taşıyacak. Fazlası israf olurdu :)


Hesaplamanın içeriğine şimdilik başka birşey yazmıyorum.
Ama bazı özellikler eklemeyi düşündüğümüzde içeriğine gerekli olan değişken veya başlangıç sabitlerini koyabiliriz.

Girdi portunu PortB,0 a ayarlayalım Butona bağlamış olalım.

Buton okumayı Porttan tek bit olarak okuduk ve Button değişkenine aktarılmasını sağladık.

Karar, Yargılama işlemini gerçekleştirmek için kuralları, şartları belirtelim:

Buton basılınca Port sıra inecek şekilde tanımlamıştık buton ayaralarında.
Şimdi basıldıysa yani sıfır olduysa evete dallanmasını sağladık basılmadıysa hayıra dallanacaktır.

Evet Dallanmasındaki Çıkışı Yani PortA,0 ı Lojik 1 e çekelim Ama bunu PortA nın sadece bir bitini değiştirerek yapalım


Aynı şekilde Hayır Dallanmasındaki Çıkışı Yani PortA,0 ı Lojik 0 a çekelim Ama bunu PortA nın sadece bir bitini değiştirerek yapalım


Son olarakta Ledin Buton bırakıldıktan sonra ne kadar yanık kalacağını ayarlayalım


Nihayet Programımız tamamlandı bende tamam oldum Pöffffff.   :o :'(

Şimdi Bize Çalıştırmak ve derlemek Kalduı arkadaşlar.
Bir önceki dersten hatırlarsanız çalıştırmak için play ikonuna basmanız yeterli. Animasyonu canlı olarak görün. Butona basın ve bırakın.  ;D

Bıraktıktan sonraki gecikme biraz tesadüfi gibi oldu.
Şimdi gecikmeyi tam yapmak için Evet dallanmasındaki Süre Simgesini Fareyle Hayır Simgesindeki Çıkış Simgesinin üzerine taşıyıp yeniden deneyin.  ;)

Artık kusursuz bir gecikme göreceksiniz.
Şimdi Bunu Çipe yazılmak üzere derleyelim
Programın Yonga Menüsünden HEX koduna derleyi seçerseniz Dosyanızı bir isim vererek (Önemli NOT:ürkçe karakterlerle dosya adı verirseniz Derleme Hatası alabilirsiniz.) kaydettikten sonra aşağıdaki pencereyle nihayet bulur. (aradaki bazı satırları çıkardım) Geri dönüş kodları Sıfır ise Derleme Başlarılıdır.


Size Lazım Olabilecek Dosyalar ve Uzantılarına Dikkat edin.


Programımızın nihai şeklinide buraya koyalım hatalı yapan arkadaşlarımıza referans olsun.
FİNAL: