Protonda glcd’ye giriş grafik lcd uygulamaları

| Mayıs 29, 2023 Tarihinde güncellendi
Protonda glcd’ye giriş grafik lcd uygulamaları

Bu yazı ve diğer sayfalarında GLCD uygulamaları ve PIC MCU ile yapılmış projelerden bahsedilecektir. Kullanılan programlama dili Proton Basic ve kullanılan şematik programı Proteus 7.4 sp3 olacaktır. Kullanılan MCU 16F877 olacaktır.

Bu uygulamada kullandığımız GLCD KS0108 çipli Winstar WG128*64B Beyaz ışıklı arkadan aydınlatmalı GLCD’dir. WG128*64 geniş grafik 128 sütün 64 satır GLCD’dir. Protonda GLCD yazı yazdırmak için kullanılan komut PRINT AT komutudur.Önce GLCD uygulamamız için gerekli olan şemayı verelim

proton glcd uygulama 1

Komutun Kullanımı ; PRINT AT YPOS,XPOS

128*64 GLCD 128 Sütün 64 Satırdan oluşmaktadır. Her bir satırda 21 karakter yazılabilinir. GLCD de Dikeyde 64 satır Yatayda 128 sütün bulunmaktadır.GLCD Toplamda 128*64=8192 pixel vardır. GLCD’nin sol üstteki 1.satır ve 1.sütün dan GLCD uygulamaları yazalım. İlk önce programımızı verelim.

PROTON KODU;

Device = 16F877A           'MCU 16F877A
XTAL = 4                       'KRİSTAL 4MHZ
LCD_DTPORT = PORTB      'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPIN = PORTC.5      'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPIN = PORTC.1      'GLCD E PİNİ PORTC.1 BAĞLI
LCD_RWPIN = PORTC.4     'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1PIN = PORTC.2    'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2PIN = PORTC.3    'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_TYPE =  GRAPHIC      'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
INTERNAL_FONT = On                 
FONT_ADDR = 0	
Cls                               'GLCD EKRANINI TEMİZLE
BASLA:
Print At 0,0,"GLCD UYGULAMALARI  1 "                      
DelayMS 1000
End
Include "font.inc"

glcd uygulamaları lcd

Yukardaki Proton koduna göre glcd istediğimiz portlara bağlayarak çalıştırabiliriz. Eğer proton klasörü içindeki C:\Program Files\Proton\Inc klasör içindeki hazır dosyayı kullanmak istersek program başına PROTON _G4.INT Dosyasını program başına dahil etmemiz gerekir. Mutlaka program sonuna glcd de kullanacağımız font dosyasını da mutlaka program içersinde en sona dahil etmemiz gerekecektir. Şimdide GLCD bütün satır ve sütunlara yazı yazdıralım.

PROTON KODU;


Device = 16F877A           'MCU 16F877A
XTAL = 4                       'KRİSTAL 4MHZ
ALL_DIGITAL= TRUE         'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPORT = PORTB      'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPIN = PORTC.5      'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPIN = PORTC.1      'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPIN = PORTC.4     'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1PIN = PORTC.2    'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2PIN = PORTC.3    'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_TYPE =  GRAPHIC      'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
INTERNAL_FONT = On                 
FONT_ADDR = 0	
Cls                                'GLCD EKRANINI TEMİZLE
BASLA:
Print At 0,4,"www.320VOLT.com"                      
DelayMS 1000
Print At 1,1,"ELEKTRONIK VE BIRAZ"
DelayMS 1000
Print At 2,3,"DAHA FAZLASI"
DelayMS 1000
Print At 3,4,"128*64 GLCD 1 "
DelayMS 1000
Print At 4,5,"UYGULAMASI"
DelayMS 1000
Print At 5,5,"168 KARAKTER"
DelayMS 1000
Print At 6,5,"AYKUT YILMAZ"
DelayMS 1000
Print At 7,4,"www.320VOLT.com"
DelayMS 1000
GoTo BASLA
End
Include "font.inc"

Proteus 7.4 sp3 GLCD çalışma devresi

grafik lcd proteus isis proton

Devrenin pratikteki çalışma görüntüsü

lcd 320volt

Uygulamada karşılaşabilinecek bazı sorunlar ; Devreyi bir borda kurup devreyi farklı uygulamalarda isterseniz mutlaka bağlantıları kontrol edin. GLCD uygulamasında ADC işlemi yaptırılmayacaksa ALL_DIGITAL= TRUE Mutlaka yazılmalıdır.Bu komut yazılmadığı taktirde GLCD ekranında hiçbir görüntü olmayacaktır. GLCD 18 nolu pini VEE (VOUT) pini -5V çıkaran pindir. Bu pine dışardan gerilim kesinlikle vermeyin eğer dışardan enerji verildiği taktirde GLCD kontrast entegresi olan ICL7660 ve Buna bağlı smd 4.7uF 16V kondansatör patlayabilir.

Proton glcd’ ye fontlu yazı yazdırma

GLCD’lerin diğer LCD’lere en büyük avantajı istenilen resim veya yazının görsel olarak gösterilmesidir. 2.Projede GLCD ile fontlu yazı uygulaması yapılacaktır. Bu uygulama için Font generator programı kullanılacaktır. İstenirse proton programı içindeki font dosyalarıda kullanılabilinir. Biz bu uygulamada kendi font dosyamızı istediğimiz gibi oluşturacağız ve istediğimiz büyüklükte yazıları yazdıracağız.

FONT GENARATOR Programının kullanımı

Program 3 dosyadan oluşmaktadır font.exe ,fontconverter.cfg , TABCLT32.OCX Font programı Bilgisayarda yüklü olduğu takdirde açılmaz ise TABCLT32.OCX Dosyasını Windows klasörü içine atmanız gerekecektir.
Programı açıp kendimize boş bir txt uzantılı bir dosya oluşturalım örneğin glcd.txt

proton font converter

Sonra font kısmından yazacağımız yazının tipi ve boyutu incelik ve kalınlık ayarı yapılması gerekir.Ayarlar yapıldıktan sonra Tamam sekmesi seçilir.

proton font converter 2

Sonra file Destination Directory sekmesi seçilir ve hedef dosya( yani font oluşturacağımız) dosya seçilir. Dosya seçildikten sonra Convert Font sekmesine basılır ve font dosyası oluşur. Bu program ile sadece GLCD ekranında fontlu yazılar ve fontlu simgeler yazılabilinir.Bu program ile GLCD ekranında resim gösterilemez.

GLCD Proje2 Devre şeması;

glcd proje 2 isis sema

Devrede şemada ufak bir değişiklik yapılmıştır data portları PORTD’ye atanmıştır.

PROTON KODU;

Device = 16F877
Config XT_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_ALL  
XTAL = 4
ALL_DIGITAL= TRUE           'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPORT = PORTD        'GLCD DATA PORTLARI PORTD'YE BAĞLI
LCD_RSPIN = PORTC.5        'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPIN = PORTC.1        'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPIN = PORTC.4       'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1PIN = PORTC.2       'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2PIN = PORTC.3       'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_TYPE =  GRAPHIC         'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
INTERNAL_FONT = On                 
FONT_ADDR = 0
GLCD_EXTERNAL_PRINT = PPRINT
Cls
DelayMS 500	               
BASLA: 
Print Font ArialK____12
Print At 3,20,"AYKUT 54"
DelayMS 2000
 
Print Font ArialK____12
Print At 20,0,"320VOLT.COM"
DelayMS 2000

Print Font Arial____8
Print At 35,0,"glcd2 karakter basma"
DelayMS 2000

Print Font ArialK____12
Print At 50,0,"16F877 + GLCD : )"
DelayMS 2000
End
Include "Arialk12.txt"
Include "ARIAL8.txt" 

Proton kodunda GLCD yazının hangi şekilde olmasını font genarator programı ile belirleyebiliriz .GLCD Ekranında yazı boyotunu belirleyen font dosyaları

Include "Arialk12.txt" 'GLCD Ekranına 12font büyüklüğü 
Include "ARIAL8.txt"  'GLCD Ekranına 8font büyüklüğünde yazı yazar.

Devrenin çalışma görüntüsü

proton font grafik lcd

Şimdide faklı bir yazı fontu kullanalım Proton kodu;

Device = 16F877
Config XT_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_ALL  
XTAL = 4
ALL_DIGITAL= TRUE         'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPORT = PORTD      'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPIN = PORTC.5       'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPIN = PORTC.1      'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPIN = PORTC.4      'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1PIN = PORTC.2     'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2PIN = PORTC.3      'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_TYPE =  GRAPHIC        'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
INTERNAL_FONT = On                 
FONT_ADDR = 0
GLCD_EXTERNAL_PRINT = PPRINT
Cls
DelayMS 500	               
BASLA: 
Print Font  Ravie_BI_14o25
Print At 0,20,"WWW."
DelayMS 2000

Print Font  Ravie_BI_14o25
Print At 20,0,"320VOLT"
DelayMS 2000

Print Font  Ravie_BI_14o25
Print At 40,30,". COM"
DelayMS 2000
End
Include "RES_FILE.txt"

Devrenin çalışma görüntüsü

grafik lcd 320volt.com

protonda-glcdye-giris-grafik-lcd-uygulamalari

Şifre-Pass: 320volt.com

Yayım tarihi: 2009/12/06 Etiketler: , , , , , ,



22 Yorum “Protonda glcd’ye giriş grafik lcd uygulamaları

  1. salim80salim80

    Teşekkürler Muhittin hoca ve sizin sayenizde baya bir yol kat ettim 🙂 pbp proton karışık gidiyoruz bakalım neler olacak 😀

    CEVAPLA
    1. MURAT CANITEZMURAT CANITEZ

      Sizden istirhamım ekrana nokta bile olsa yazdırabileceğim bir küçük örnek (.bas) proje.

      ’18F4550
      ‘NOKIA 3310 48×84
      ‘PROTON IDE

      PORTD.3 ‘ RES
      PORTD.4 ‘ SCE
      PORTD.5 ‘ D_C
      PORTD.6 ‘ SDIN
      PORTD.7 ‘ SCLK

      CEVAPLA
  2. Muhittin KAPLANMuhittin KAPLAN

    Hocam Ellerine Sağlık Güzel Çalışma Olmuş.

    CEVAPLA
  3. aykut 54aykut 54

    muhittin abi devamıda gelecek şimdi ressim basma işlemleriyle uğraşıyorum hedefte 10’a yakın glcd projesi var bakalım hayırlısı

    CEVAPLA
  4. F.ErdemF.Erdem

    Hocam güzel çalışma olmuş. Elinize sağlık, çalışmalarınızın devamını bekliyoruz. İyi çalışmalar.

    CEVAPLA
  5. zaferzafer

    ellerinize sağlık güzel örnekler. font converter programını temin edebileceğimiz bir link verebilirmisiniz.

    Bir de kafama takılan bir soru var hem yazı hemde resim basmak istediğimiz zaman hem resim hem de yazı inc dosyasınımı programa dahil edeceğiz.

    CEVAPLA
  6. koksalkoksal

    kardeş güzel çalışma.yanlız bir sorum olacak
    benim glcd datasheetinde rs yerine d/i bacağı var.bunu protonda nasıl tanımlayacağım ve nasıl proteusda bağlayacağım. açıklarsan sevinirim.
    teşekkürler

    CEVAPLA
  7. aykut54aykut54

    aynı şekilde hocam benim glcd winstar W G 1 2 8 6 4 B- T M I- V#N geniş ekran glcd bacak yapısında

    Pin No. Symbol Level Description
    1 VDD 5.0V Power supply (+5V)
    2 VSS 0V Power supply (GND)
    3 V0 (Variable) Contrast Adjustment
    4 DB0 H/L Data bus line
    5 DB1 H/L Data bus line
    6 DB2 H/L Data bus line
    7 DB3 H/L Data bus line
    8 DB4 H/L Data bus line
    9 DB5 H/L Data bus line
    10 DB6 H/L Data bus line
    11 DB7 H/L Data bus line
    12 CS1 L Select Column 1~ Column 64
    13 CS2 L Select Column 65~ Column 128
    14 RST L Reset signal
    H: Read (MPU‹Module) , L: Write (MPU›Module)
    15 R/W H/L
    16 D/I H/L H: Data , L : Instruction
    17 E H Enable signal
    18 Vee Negative Voltage output
    19 A Power Supply for LED (+)
    20 K Power Supply for LED (- )

    16 nolu glcd pinini picte RS pini olarak bağladım.

    yazıları iyice okumanı tavsiye ederim benim düştüğüm durumlara ve çektiğim sıkıntıları çekmeni istemem bağlantıları dikkatli yap

    saygılarımla

    CEVAPLA
  8. erdalerdal

    Bana fastlcd programını nerden bula bileceğimi söylerseniz çok sevinirim şimdiden çok teşekkür ederim

    CEVAPLA
  9. Mustafa SARIHANMustafa SARIHAN

    merhaba aykut hocam projenizin PG-12864D GRAPHIC LCD DISPLAY (128X64)lcdye göre uyarlanmış halini veya nasıl uyumlu hale getirileceğini anlatabilirmisiniz.bacak bağlantıları değişik olduğundan yapamadım

    CEVAPLA
  10. Sidki DERYASidki DERYA

    Merhaba,
    fontlu yazı yazdırma ile ilgili bir problemim var 🙁
    pic proton kullanıyorum. bir voltmetre ampermetre devresi tasarladım programı yazdım herşey normal. grafik lcd de büyük punto ile volt ve akım görülüyor fakat değişikliklerde eski karakterlerin izleri kalıyor. cls komutunun döngü içerisinde ekranı titrettiğini biliyorum. herbir değişiklikde görüntüyü titretmeden nasıl değişiklik olan alanı temizleyebilirim?
    araştırmalarıma göre glcd ye gönderdiğimiz dataların sadece 1 kısımları gönderiliyor 0 lar gönderilmiyor. bu durum da mevcut problemi doğuruyor. :(((

    CEVAPLA
  11. yasaryasar

    Aykut hocam bu uygulamayı denedim ama bir türlü istenilen sonuca ulaşamadım glcd de tek satırda bütün yazılar çıkıyor bunun nedeni ne olabilir acaba. birde ekranın sağ bölümü kullanılıyor bir tek. bu arada winstar wg12864a kullandım ama bağlantılarını o madele göre yaptım.
    teşekkürler..

    CEVAPLA
  12. ihsanihsan

    320×240 boyutlarında bir glcd çalıştırmak istesek yine aynı komutlarla calışabilirmiyiz?

    CEVAPLA
  13. yasinyasin

    bunun kayan yazı şeklindeki proton kodlarınıda yazabilirmisiniz ??

    CEVAPLA
  14. Ali kuskonmazAli kuskonmaz

    Hocam ben pbp program yazabiliyorum ama pic basic te glcd kullanimi yok mecburen proton kodlamayi ve derleyici hangisiyse onu bulmayi ve kullanmayi ogrenmem lazim bana bu konuyla ilgili fikirlerinizi verirmisiniz.saygilarimla…

    CEVAPLA
  15. Davut Naci KayaDavut Naci Kaya

    Proton basic son versiyonu linkten indirebilirsiniz.

    protonbasic.co.uk/vbdownloads.php?categoryid=5

    Artık bir çok işlemci için ücretsiz bir idedir proton basic. Protonu kurduktan sonra program helpinde bir pdf var ve komutlarla ilgili çok iyi bilgiler var bu pdfte. Ayrıca bu linktede fazlaca örnek var.

    sites.google.com/view/rosetta-tech/home

    CEVAPLA
  16. Ali kuskonmazAli kuskonmaz

    Çok teşekkür ediyorum verdiğiniz cevap için.

    CEVAPLA
  17. Ali kuskonmazAli kuskonmaz

    sayın hocalarım lcd port is a protected keyword user by the complier preprocesor or assembler and cannot be used at this position(glcd bas) diye buna benzer birkac hata veriyor nedeni ne ollabilir program kopyala yapıtır yaptım derlemiyor
    Device = 16F877
    Config XT_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_ALL
    XTAL = 4
    ALL_DIGITAL= TRUE ‘ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
    LCD_DTPORT = PORTD ‘GLCD DATA PORTLARI PORTD’YE BAĞLI
    LCD_RSPIN = PORTC.5 ‘GLCD RS PİNİ PORTC.5 BAĞLI
    LCD_ENPIN = PORTC.1 ‘GLCD ENABLE PİNİ PORTC.1 BAĞLI
    LCD_RWPIN = PORTC.4 ‘GLCD RW PİNİ PORTC.4 BAĞLI
    LCD_CS1PIN = PORTC.2 ‘GLCD CS1 PİNİ PORTC.2 BAĞLI
    LCD_CS2PIN = PORTC.3 ‘GLCD CS2 PİNİ PORTC.3 BAĞLI
    LCD_TYPE = GRAPHIC ‘GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
    INTERNAL_FONT = On
    FONT_ADDR = 0
    GLCD_EXTERNAL_PRINT = PPRINT
    Cls
    DelayMS 500
    BASLA:
    Print Font ArialK____12
    Print At 3,20,”AYKUT 54″
    DelayMS 2000

    Print Font ArialK____12
    Print At 20,0,”320VOLT.COM”
    DelayMS 2000

    Print Font Arial____8
    Print At 35,0,”glcd2 karakter basma”
    DelayMS 2000

    Print Font ArialK____12
    Print At 50,0,”16F877 + GLCD : )”
    DelayMS 2000
    End
    Include “Arialk12.txt”
    Include “ARIAL8.txt”

    CEVAPLA
  18. Ali kuskonmazAli kuskonmaz

    saygıdeğer hocalarım yukardaki örnek programlardan derleme yapmaya calısıyorum ama ekranda tanımlamaların her satırı için is a protected keyword used by the complier ,preprocesor or assembler,and cannot be used at this position!(grafik bas) yazıyor sizce nerde hata yapıyorum

    CEVAPLA
  19. Ali kuşkonmazAli kuşkonmaz

    Buraya bazı örnekler yapmış koymuşsunuz sanki öğretmekten ziyade bakın ben bunları yapabiliyorum der gibi.font generator demişsiniz linki varmı ben bulamadım.ayrıca yapılan her adım ne maksatla yapılmış tek tek açıklayın.Ben bişey anlamıyorum.Ya ayrıntılı anlatın daha fazla örnekler verin yada hiç girişmeyinnbu işe kardeşim hevesimiz yarıda kalıyor

    CEVAPLA

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir