Proton glcd resim basma uygulaması

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

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.

PİXEL V1.2
![]()
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

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

Şimdi de Türkiye harita resmi oluşturalı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
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-uygulamasi.zip
Yazar: Aykut
Yazarımızın 320volt.com Blog üzerinde şu an okuduğunuz yazı dahil 13 yazısı bulunmaktadır. Yazarımız hakkında bilgileri ve diğer yazılarını görmek için bakınız; Aykut












Güzel Çalışma ellerine sağlık Aykut.
Hatalı Image Basma Problemini Nasıl Çözdün ?
Buradan Yazarsan Daha Kalıcı Olur.
İyi bir paylaşım sağol.
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
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
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.