Elektronik Devreler Projeler Elektronik ve biraz daha fazlası İletişim - Araçlar - Dikkat - Topluluk
Elektronik / Mikrodenetleyici Projeleri/

Jalv2 İle Karakter LCD’de Büyük Font Uygulaması

Sponsorlu Bağlantılar

Karakter Lcd’lerde Standart Fontlar dışında özel tanımlı karakterlerde kullanılmaktadır. Bu yazımızda; özel tanımlanmış Karakter parçalarını kullanarak ve uygun program kodunu yazarak 2 satırı tek satır gibi kullanıp ekranda aşağıdaki gibi font kullanılabilir. Tek kötü tarafı ekrana aynı anda 4 tane karakter sığması. Basit bir saat uygulaması yada benzeri bir uygulamada bu şekilde bir tasarım kullanılabilir.

jal-big-lcd-font

Bu uygulamamızda 16×2 karakter LCD kullanarak Jalv2 dilinde kullanımını ve özel karakter tanımlayarak büyük fontları nasıl kullanabileceğimizi göreceksiniz. Öncelikle aşağıdaki şekilde devremizi kurmalısınız.

proteus-isis-lcd-jal-big-lcd-font

Devrede kodumuzu Denemek için 16F628 ve 16×2 Alphanumeric LCD kullanılmıştır. Uygun bağlantı şeklini yapıp sizde kodu deneyebilir veya başka bir dilde program yazabilirsiniz.

Jalv2 ile Karakter LCD kullanımı

Karakter LCD kullanımı için Jallib içerisinde bulunan Kütüphanelerden faydalanacağız. Bunun İçin öncelikle aşağıdaki gibi kod tanımlamalarını yapmamız gerekmektedir.

 alias lcd_rs    is pin_a1       -- LCD command/data select.
alias lcd_rs_direction    is pin_a1_direction

alias lcd_en    is pin_a0       -- LCD data trigger
alias lcd_en_direction is pin_a0_direction

alias  lcd_d4       is  pin_b7
alias  lcd_d5       is  pin_b6
alias  lcd_d6       is  pin_b5
alias  lcd_d7       is  pin_b4

const byte LCD_ROWS     = 2    -- Kullanılan LCD Satır Sayısı
const byte LCD_CHARS    = 16   --  Kullanılan LCD Sutun Sayısı

lcd_rs_direction        = output
lcd_en_direction        = output

pin_b7_direction        = output
pin_b6_direction        = output
pin_b5_direction        = output
pin_b4_direction        = output

Gerekli Tanımlamaları yaptıktan sonra ilgili LCD kütüphanesini Projemize Ekliyoruz.


 include lcd_hd44780_4
lcd_init()   – LCD’yi Hazırla

LCD kütüphanesini Projemize Ekledik. İlgili LCD ye ait alt programları eklediğimiz kütüphane dosyasının içerisine girerek görebilir ve kullanabilirsiniz. Yazımızda temel kullanılabilecek alt programların açıklamalarına yer verilecektir.

LCD kullanımı için gerekli temel fonksiyonlar

lcd_init() à Lcd Başlangıç ayarlarının Yapılmasını sağlar.

lcd_define(adres,karakter) à Lcd’nin ram hafızasına özel karakter tanımlamayı sağlar. 1. parametre olarak ram adresi verilir. 2.parametre olarakta tanımlanan karakter verilir.

lcd_clear_screen à Ekranı temizler.

lcd_cursor_position(satır,sutun) à imleci verilen satır ve sutuna alır.

lcd_write_char(karakter) à Lcd ye karakter verir.

lcd à Alt programlarda pseudo tipinde tanımlanan değişkenlerde kullanılır. Örneğin print fontsiyonlarında aygıt olarak lcd verildiğinde print edilen yazılar lcd ekrana iletilmiş olacaktır.

lcd_home() à imleci 0,0 konumuna alır.

lcd_clear_line(satır) à parametre olarak verilen satırı temizler.

LCD ye kelime yazdırma

Lcd ye harf veya rakam yazdırmak için lcd = “k” şeklinde kod kullanmak yeterlidir. Fakat kelime yazdırmak için öncelikle byte tipinde dizi tanımlanır ve projemize print kütüphanesi dâhil edilir.


 include print

var byte Yazi1[] = "Jalv2 Buyuk Font"

lcd_cursor_position(0,0)

print_string(lcd,yazi1)

Yukarıdaki kod bloğunda görüldüğü gibi önce print kütüphanesi dahil ediliyor. Yazi1 adında bir dizi tanımlanıyor. İmleç 0,0 pozisyonuna alınarak print_string(lcd,yazi1) ile kelime lcd ye yazdırılıyor.

LCD ekrana özel karakter Tanımlama

Kullandığımız LCD de 8 adet özel karakter tanımlaması yapılabilmektedir. Bunun için öncelikle Herhangi bir Karakter oluşturma programını kullanarak ilgili özel karakteri tanımlıyoruz ve tanımlanan karakteri dinamik dizi olacak şekilde tanıtıp lcd_define fonksiyonu ile lcd’nin hafızasına yazdırıyoruz.

 const byte K0[] = {7,15,31,31,31,31,31,31}

lcd_define(0,K0)

- - Kullanımı

Lcd  = 0 

K0 adında özel karakter dizi şeklinde tanımlanıyor ve ardından tanımlanan karakter lcd_define fonksiyonu ile LCD’nin 0.adresine yükleniyor. Karakteri görmek istediğimizde lcd = ram_adresi şeklinde kod yazılması gerekmektedir. Biz 0.adrese yüklediğimiz için lcd = 0 demek yeterlidir.

Büyük Font Tanımlama ve Kullanma

LCD ekranımızda büyük Font tanımlayıp kullanmak için öncelikle aşağıdaki şekilde karakter tanımlamaları yapmamız gerekmektedir.

jal-lcd-buyuk-font-tanimlama-ve-kullanma

Tanımlanan Bu karakterleri uygun şekilde birleştirerek rakam,harf ve noktalama işaretlerini oluşturabiliriz. Tabiki öncelikle bu karakterleri birleştiren ve uygun satır ve sütunlara aktararak karakterleri oluşturan alt programı yazmamız gerekmektedir.

K0…K7 adını verdiğimiz karakter parçalarını LCD ekranımızın RAM hafızasına tek tek yazdırıyoruz.


 -- ------------------------------------------------------------------------
--    Özel kullanılacak Karakterleri parçalarını Tanımlama
-- ------------------------------------------------------------------------

const byte K0[] = {7,15,31,31,31,31,31,31}
const byte K1[] = {28,30,31,31,31,31,31,31}
const byte K2[] = {31,31,31,31,31,31,30,28}
const byte K3[] = {31,31,31,31,31,31,15,7}
const byte K4[] = {31,31,31,0,0,0,0,0}
const byte K5[] = {0,0,0,0,0,31,31,31}
const byte K6[] = {31,31,31,0,0,0,31,31}
const byte K7[] = {31,31,31,31,31,31,31,31}

-- ------------------------------------------------------------------------
--     Karakter Parçaları LCD'nin RAM hafızasına yükleniyor.
-- ------------------------------------------------------------------------
lcd_define(0,K0)
lcd_define(1,K1)
lcd_define(2,K2)
lcd_define(3,K3)
lcd_define(4,K4)
lcd_define(5,K5)
lcd_define(6,K6)
lcd_define(7,K7)

Tanımladığımız karakter parçalarını uygun şekilde birleştiren alt programı yazmamız gerekmektedir. Böylece yazdığımız alt program LCD ekranda karakterleri oluşturacaktır. Uygulamamızda sadece rakamları oluşturulmuştur. İsteğe göre harflerde oluşturulabilir.

 -- -----------------------------------------------------------------------------
--     Rakamları Oluşturmak için Gerekli Alt Program
--
--     Line : Yazının Hangi Satırdan Başlaması gerektiği
--     pos  : Yazının Hangi Sutundan Başlayacağı
--     rakam: Yazdırılması istenen Numara
--
--     yazan : Sercan TEK
-- -----------------------------------------------------------------------------
Procedure Number_Font(byte in line,byte in pos,byte in karakter) is
pos = pos * 4  -- Karakter Sirası = 0,1,2,3
case karakter of
0 : block
    lcd_cursor_position(line,pos)   lcd = 0 lcd = 4 lcd = 1
    lcd_cursor_position(line+1,pos) lcd = 3 lcd = 5 lcd = 2
    end block
1:  block
    lcd_cursor_position(line,pos)   lcd = 4 lcd = 1
    lcd_cursor_position(line+1,pos) lcd = 5 lcd = 7 lcd = 5
    end block
2:  block
    lcd_cursor_position(line,pos)   lcd = 6 lcd = 6 lcd = 1
    lcd_cursor_position(line+1,pos) lcd = 3 lcd = 5 lcd = 5
    end block
3:  block
    lcd_cursor_position(line,pos)   lcd = 6 lcd = 6 lcd = 1
    lcd_cursor_position(line+1,pos) lcd = 5 lcd = 5 lcd = 2
    end block
4:  block
    lcd_cursor_position(line,pos)     lcd = 3 lcd = 5 lcd = 7
    lcd_cursor_position(line+1,pos+2) lcd = 7
    end block
5:  block
    lcd_cursor_position(line,pos)   lcd = 3 lcd = 6 lcd = 6
    lcd_cursor_position(line+1,pos) lcd = 5 lcd = 5 lcd = 2
    end block
6:  block
    lcd_cursor_position(line,pos)   lcd = 0 lcd = 6 lcd = 6
    lcd_cursor_position(line+1,pos) lcd = 3 lcd = 5 lcd = 2
    end block
7:  block
    lcd_cursor_position(line,pos)     lcd = 4 lcd = 4 lcd = 1
    lcd_cursor_position(line+1,pos+2) lcd = 7
    end block
8:  block
    lcd_cursor_position(line,pos)   lcd = 0 lcd = 6 lcd = 1
    lcd_cursor_position(line+1,pos) lcd = 3 lcd = 5 lcd = 2
    end block
9:  block
    lcd_cursor_position(line,pos)    lcd = 0   lcd = 6 lcd = 1
    lcd_cursor_position(line+1,pos+2)lcd = 7
    end block
end case
end procedure

Yazdığımız alt programı kullanabilmek için bazı parametreler verilmelidir. Örnek kullanım aşağıdaki gibidir. Number_font(satır,sutun,rakam)

number_font(0,1,6)

Yukarıdaki örnek kodumuzda 0 satır 1 sutuna 6 rakamını yazmaktadır.
Aşağıda büyük font ve normal font kullanımı ile ilgili demo program hazırladım bu sayede kullanımını daha rahat algılayabilir ve uygulamalarınızda kullanabilirsiniz.

Projeye ait kaynak jalv2 kodları ve proteus isis simülasyon dosyası: jalv2-ile-karakter-lcdde-buyuk-font-uygulamasi.RAR

  • davut naci kaya

    Tebrik ederim güzel çalışma olmuş. Özel devrelerde kullanilabilir.