Elektronik / Mikrodenetleyici Projeleri/

Proton glcd resim basma uygulaması

Sponsorlu Bağlantılar

GLCD 3 RESİM BASMA UYGULAMASI

Bir önceki yazımda (Protonda glcd’ye giriş grafik lcd uygulamaları ) protonda grafik lcd üzerinde yazı karakterleri ile uygulamalar paylaşmıştım bu yazımda ise grafik lcd üzerinde resim kullanımından bahsedeceğim.

Bu uygulama için PIC16F877 dahili eprom hafızası kullanılacaktır. 128*64 GLCD 128 sütün 64 satır dan oluşmaktadır.Toplamda 128×64=8192 pixelden oluşmaktadır. Hazır font ve Hazır kod çevirici dosyalar ile GLCD de resim ve grafik gösterelim.

İlk kullanacağımız programımız FASTLCD Bu program bize GLCD deki bütün pixelleri göstermektedir. Tek yapmamız gereken istediğimiz satır ve sütundaki pixeli seçmek bu program ile yapmış olduğumuz grafik resim veya karakterleri BMP Dosyası olarak kaydedip diğer kullanacağımız programımız PİXEL V1.2 ile oluşturduğumuz resmin font ve proton kodunu oluşturabiliriz.

FASTLCD PROGRAMI

fast lcd programi

About sekmesi altındaki mavi pencereli ikon tıklanıldığı zaman karşımıza gelen FASTLCD size bize kullanacağımız GLCD’ nin kaç satır ve kaç sütün olduğunu belirtmek için kullanılır. Burada 128*64 kullanıp OK butonuna basacağız. Kullanacağımız GLCD örneğin 320*240 olsa idi width=320 height=240 olacaktı.

Resim yapmak için mause sol düğmesi basılı tutularak istenilen resim çizilir. Resimde hatalı görünen yerler silmek istenirse mouse sağ düğmesi basılı tutularak seçilen alan üzerinde mause gezdirelerek silme işlemi gerçekleştirilmiş olunur. Resim yapıldıktan sonra kaydet düğmesine basılarak resim BMP resim formatı olarak kaydedilir. Kaydedilen resim boyutu 128*64 olarak kaydetilmiştir.Kaydetmiş olduğumuz Resim dosyamızı PİXEL V1.2 ile proton koduna dönüştürelim.

fast lcd programi grafik

PİXEL V1.2

pixel-v1

Bu program ile hem yazı hem de resim dosyaları proton koduna dönüştürebilinir.Resim yüklemek için resim yükle butonuna basılır ve resmi kaydettiğimiz hedef seçilir ve resim programa tanımlanır. PİXEL V1.2 hem BMP hem de JPEG uzantılı resim dosyalarını açabilir.

Tamam butonuna basıldığında sol köşede kelebek simgesinin olduğu bölümde yapmış olduğumuz resim dosyasının görüntüsü olacaktır. Resim seçildikten sonra INCLUDE dosyası oluşturalacaktır sonrasında Örnek bas dosyası oluştur butonuna basmalıyız. Tarama biçimi Dikey taramada olacaktır. Font dosyası ve proton dosyası artık oluşmuştur.

Oluşturulan Proton Kodu;

Include  "PROTON_G4.INT" 
Dim  Xpos    As Byte	‘XPOS BİLGİSİ 0….127
Dim  Ypos    As Byte	‘YPOS BİLGİSİ 0….63
Dim  Addr    As Word     ‘EPROM ADRES BİLGİSİ
Dim  char    As Byte     ‘FONT KARAKTER BİLGİSİ
START:
  For Ypos = 0 To 7      ‘YPOS 0’DAN 7’YE KADAR ARTTIR
         For Xpos = 0 To 127 ‘XPOS 0’DAN 127’YE KADAR ARTTIR
 
             Addr = (Ypos*128)+Xpos
             char = CRead a+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
     DelayMS 100
      GoTo    START 
Include  "a.inc"

Include “PROTON_G4.INT Program başındaki başlık dosyası Bize GLCD bağlantılarının protonda standart olarak bağlamamıza izin verir.

Include “a.inc Oluşturmuş olduğumuz resmimizin font kodlarıdır.

Proteus 7.4 sp3 GLCD DEVRE ŞEMASI

proteus 7.3 sp3 devre semasi

Eğer standart bağlantı yapmak istemiyorsak Include “PROTON_G4.INT” başlık dosyasını silmeliyiz.

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	         
Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  char    As Byte
BASLA:
 For Ypos = 0 To 7
         For Xpos = 0 To 127
 
             Addr = (Ypos*128)+Xpos
             char = CRead a+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
 DelayMS 100
   GoTo BASLA
Include  "a.inc"

Devrenin protikteki çalışma resmi

proton glcd analog dijital

Şimdi de Türkiye harita resmi oluşturalım.

canim turkiye

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	  
 
Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  char    As Byte
 
 
 
START:
 
     For Ypos = 0 To 7
         For Xpos = 0 To 127
 
             Addr = (Ypos*128)+Xpos
             char = CRead AAAA+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
 
     DelayMS 100
 
     GoTo    START 
 
 
Include  "AAAA.inc"

Proteus isis proton kod ve fast lcd pixel program dosyaları: Proton glcd resim basma uygulaması

Dosya indirme LINK listesi (HTML formatında) link-8675.zip şifre-pass: 320volt.com

  • muhittin kaplan

    Güzel Çalışma ellerine sağlık Aykut.
    Hatalı Image Basma Problemini Nasıl Çözdün ?
    Buradan Yazarsan Daha Kalıcı Olur.

  • Mustafa Sayan

    İyi bir paylaşım sağol.

  • aykut54

    saygıya değer muhittin abi ilkönce şöyle anlatayım? GLCD data portlarını portbye bağpladığım zaman ekranda istemediğim görüntüler vardı bunun sebebi pullup dirençlerinin aktif olması bu dirençleri iptal edersen sorun ortadan kalkması gerekir eğer sorun halen devam ederse glcd sorun olabilir

    diğer bir öneride glcd data portlarını portdeye bağlı olması zira orjinalde istenen bağlantı portd abi

    4.uygulamada görüşürüz selamlar

    saygılar

  • Mustafa SARIHAN

    merhaba aykut arkadaşım
    ben glcd olarak bunu değilde PG-12864D GRAPHIC LCD DISPLAY (128X64) display kullanmak istiyorum acaba gerekli değişiklikler ve datasheetlerdeki farklılıklar hankkında bana bilgi verebilirmisin. Senin yaptığın devredeki displayı bulamadım o yüzden PG-12864D GRAPHIC LCD DISPLAY (128X64)kullandım… teşekkürler

  • Mustafa SARIHAN

    aykut hocam sizden türkiye resimli uygulamanın PG-12864D GRAPHIC LCD DISPLAY (128X64) için tasarlanmış olanını rica edebilirmiyim.Proton hakkında hiç bilgi sahibi değilim yardımcı olursanız mutlu olacam proje dersim için lazım.