Teknomerkez
TR EN ES
Konular

LCD Ekranlı Kayan Yazı - PIC 16F84 ile JAL programlı

Yazar: Mehmet Yılmaz
Tarih: 01.05.2008
Türkçe

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

Murat - 30.10.2008
hocam emegine saglik ben bunu led'ler ile yapmak isitorum bide saat ve sıcaklık gostergesi olacak... bana yardimci olrmusunuz???? e-postam var tsk ederim simdiden..
StyLe - 05.03.2009
qardeSım emeqıne SaqLık ßende Led LerLe Ama kırmızı Kayan yazı yapmak ıstıyorum naSıL yapCam ;)
MEHMET - 06.08.2010
s.a emeğinize sğlık güzel bir paylaşım fakat ben bunu uyguladım çalışmadı ekranda kareler yanıp sönüyo
caner - 02.10.2010
hocam ben bunu yapcam Da başlıyacam çalışıyor deil mi emin olmak isDedim yaNi.! kusura bakmayın.
Hasan - 04.10.2012
Devresini yaptım pici programladım devreye taktım sadece kareler gözüktü ve pici yeniden programlamak için taktiğimda jdm programlayıcının led söndü pici tekrar programlayamaz oldum...
Oymak - 06.11.2012
Acaba bu lcd lerin fiyatları nelerdir ?

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>