LCD Ekranlı Kayan Yazı - PIC 16F84 ile JAL programlı
Kayan yazı ile ilgili gelen sorulara bakıldığında çok çeşitlilik
arzetmektedir. Bu sebepten dolayı LCD ile ilgili yeni bir anlatım ve
uygulama örneği yapma ihtiyacı doğdu. Bu yazıda amaçlanan kayan yazı
konusunun en temel yönünü incelemektir.
Kayan yazı yapmak için
öncelikle kullanacak olan malzemeler tesbit edilmelidir. Bu malzemeler
ile önce taslak devre en azından tasarlanmalıdır. (Simülasyon
programlarını kullanmamanızı tavsiye ediyorum.) Daha sonra ise
elimizdeki taslak devreye göre program yazılmalıdır. Biz bu devrede
PIC16F84 mikrokontrolcü ve 2X16 LCD ekran kullanacağız. Programda ise
tercihen JAL kullanacağız. Aslında ne ile programlarsanız programlayın
malzemenin yapacağı iş aynıdır.
Bir kayan yazı programı
oluştururken her zaman çeşitli seçenekler vardır. Bu yazı için aklıma
gelen ilk iki seçeneği anlatacağım.
Birincisi; LCD ekranda
görünecek her şeyi tek tek yazarak program oluşturmaktır. Bu yöntem en
basit yöntemdir ve hiç bir işlem yapmaya gerek yoktur. Tek kusuru her
görünecek şey programa yazıldığından dolayı program biraz uzun oluyor.
Programda geçen;
hd44780_line1 hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bos bos bekle
satırları kayma özelliği verecek şekilde sonuna kadar tekrarlanıyor. Böylece programcılık açısından ilkel sayılabilecek bir yöntemle kayan yazı yapılmış oluyor ama kesinlikle çalışmakta ve yazıyı kaydırmaktadır.
-- =========================================== -- KAYAN YAZI -- MEHMET YILMAZ mehmet.yilmaz@teknomerkez.net -- Tarih: 30.04.2008 -- kayan1.jal -- =========================================== include 16f84_4 include jlib include hd447804 -- === AYARLAR === HD44780_clear -- LCD ekran siliniyor -- === ALT PROGRAMLAR === procedure bos is hd44780 = " " -- bosluk karakteri end procedure procedure bekle is -- kayma hizini buradan ayarla delay_10ms(25) -- 250 milisaniye bekleme hizi end procedure -- === PROGRAM BASI === forever loop hd44780_line1 -- birinci satira git hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bos bos bekle hd44780_line1 hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bos bos hd44780 = "M" bekle hd44780_line1 hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bos bos hd44780 = "M" hd44780 = "e" bekle hd44780_line1 hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bos bos hd44780 = "M" hd44780 = "e" hd44780 = "h" bekle hd44780_line1 hd44780 = "e" hd44780 = "t" bos bos bos hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" bekle hd44780_line1 hd44780 = "t" bos bos bos hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" bekle hd44780_line1 bos bos bos hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bekle hd44780_line1 bos bos hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bekle hd44780_line1 bos hd44780 = "M" hd44780 = "e" hd44780 = "h" hd44780 = "m" hd44780 = "e" hd44780 = "t" bos bos bekle end loop -- === PROGRAM SONU ===
Bu programa ait JAL dosyasını indirmek için tıklayınız.
Bu programa ait HEX dosyasını indirmek için tıklayınız.
İkinci yöntem ise genel geçer olarak çoğunlukla kullanılan programlama
yöntemidir. Bu programda bilgiler değişkenlere atanarak, değişkenlerdeki
bilgiler yer değiştirilmekte ve böylece kaydırma işlemi yapılmaktadır.
Bu şekilde yapılan program daha kısa olmakta ve çok çeşitli seçenekler
üretmeye ve geliştirmeye uygundur.
Programda geçen;
d = d0 d0 = d1 d1 = d2 d2 = d3 d3 = d4 d4 = d5 d5 = d6 d6 = d7 d7 = d8 d8 = d
satırları kayma işlemini gerçekleştirmektedir. Program ise şöyledir:
-- =========================================== -- KAYAN YAZI -- MEHMET YILMAZ mehmet.yilmaz@teknomerkez.net -- Tarih: 30.04.2008 -- kayan2.jal -- =========================================== include 16f84_4 include jlib include hd447804 -- === DEGISKENLER === var byte d,d0="M",d1="e",d2="h",d3="m",d4="e",d5="t" var byte d6=" ",d7=" ",d8=" " -- === AYARLAR === HD44780_clear -- LCD ekran siliniyor -- === ALT PROGRAMLAR === procedure bekle is -- kayma hizini buradan ayarla delay_10ms(25) -- 250 milisaniye bekleme hizi end procedure -- === PROGRAM BASI === forever loop hd44780_line1 -- birinci satira git hd44780 = d0 hd44780 = d1 hd44780 = d2 hd44780 = d3 hd44780 = d4 hd44780 = d5 hd44780 = d6 hd44780 = d7 hd44780 = d8 d = d0 -- degiskenlerdeki bilgileri kaydir d0 = d1 d1 = d2 d2 = d3 d3 = d4 d4 = d5 d5 = d6 d6 = d7 d7 = d8 d8 = d bekle end loop -- === PROGRAM SONU ===
Bu programa ait JAL dosyasını indirmek için tıklayınız.
Bu programa ait HEX dosyasını indirmek için tıklayınız.
Yukarıda verilen programlarda kayma hızı delay_10ms(25) satırından
ayarlanmaktadır. Bu programda 250 milisaniyelik zaman gecikmesi
kullanılmıştır. Ayrıca bu programda LCD ekranın satırı tamamen
doldurulmamıştır. Belli bir alanda kaydırma işlemi yapılmaktadır.
İstenirse kaydırma alanı değiştirilebilir veya ikinci satırda da ayrı
bir kaydırma yapılabilir. Bu örneğimizde ikinci satır için ayrı bir
kaydırma işlemi yapılıyor. Birinci satırın değişkenleri d d0 d1...
şeklinde tanımlanmıştı. İkinci satırda ise s s0 s1 s2 s3 s4 şeklinde
tanımlandı. Kaydırma için değişkenlerdeki bilgilerin değiştirilmesi
ayrıca yapıldı. Burada ayrıca s s0 s1 s2 s3 s4 değişkenleri iki defa
gösterilerek daha uzun bir satır oluşturuldu. Kayan tazıda kaydırılacak
cümle kısa ise bu şekilde tekrar gösterimle daha uzun bir kayma alanı
oluşturulabilir.
-- =========================================== -- KAYAN YAZI (Ust satir sola, alt satir saga) -- MEHMET YILMAZ mehmet.yilmaz@teknomerkez.net -- Tarih: 30.04.2008 -- kayan3.jal -- =========================================== include 16f84_4 include jlib include hd447804 -- === DEGISKENLER === var byte d,d0="M",d1="e",d2="h",d3="m",d4="e",d5="t" var byte d6=" ",d7=" ",d8=" " -- Yazi arasindaki bosluklar var byte s,s0=")",s1="=",s2="-",S3=">",s4=" " -- === AYARLAR === HD44780_clear -- LCD ekran siliniyor -- === ALT PROGRAMLAR === procedure bekle is -- kayma hizini buradan ayarla delay_10ms(25) -- 250 milisaniye bekleme hizi end procedure -- === PROGRAM BASI === forever loop hd44780_line1 -- birinci satira git hd44780 = d0 hd44780 = d1 hd44780 = d2 hd44780 = d3 hd44780 = d4 hd44780 = d5 hd44780 = d6 hd44780 = d7 hd44780 = d8 d = d0 -- degiskenlerdeki bilgileri kaydir d0 = d1 d1 = d2 d2 = d3 d3 = d4 d4 = d5 d5 = d6 d6 = d7 d7 = d8 d8 = d hd44780_line2 -- Bu satira tersten kayma yapılacak hd44780 = " " hd44780 = " "hd44780 = " " hd44780 = s0 hd44780 = s1 hd44780 = s2 hd44780 = s3 hd44780 = s4 -- Daha uzun olsun diye tekrar gosterilecek hd44780 = s0 hd44780 = s1 hd44780 = s2 hd44780 = s3 hd44780 = s4 s = s4 -- degiskenlerdeki bilgileri kaydir s4 = s3 s3 = s2 s2 = s1 s1 = s0 s0 = s bekle end loop -- === PROGRAM SONU ===Bu programa ait JAL dosyasını indirmek için tıklayınız.
Bu programa ait HEX dosyasını indirmek için tıklayınız.
Devre şeması ve baskı devresi KiCad programı ile hazırlanmıştır.
Devreye ait şema
Devreye ait şemayı büyük görmek için tıklayınız.
Devreye ait şema ve baskı devre çizimlerine ait KiCad dosyalarını indirmek için tıklayınız.
Devreye ait baskı devre
Montajı yapılmış ve çalışır şekilde görünüm
Çalışan devre vidyosu (kayan3.jal için)
Yorumlarınız
Bir yorum ekleyin
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>