Site içi Arama

Ara

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

Mehmet Yılmaz - 01.05.2008

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)



Adana'da dünyaya geldi. Televizyon tamirciliğınde çırak olarak erken dönemde iş hayatına başladı. Daha sonraları Adana ve Ankara'da imalat, bilgisayar ve danışmanlık sektöründe iş hayatına devam etti. Şu anda kendisine ait işyerinde çalışmalarına devam etmektedir.
Web adresi: www.teknimer.com
E-posta: mehmet@teknimer.com
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı