Protonda glcd’ye giriş grafik lcd uygulamaları – Elektronik Devreler Projeler
06.12.2009 tarihinde yayımlanan 29.04.2017 tarihinde güncellenen Protonda glcd’ye giriş grafik lcd uygulamaları ile 13 yazısı var. Sayfası; Aykut
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
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.
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
Cls                               'GLCD EKRANINI TEMİZLE
Print At 0,0,"GLCD UYGULAMALARI  1 "
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.
ALL_DIGITAL= TRUE         'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_ENPIN = PORTC.1      'GLCD ENABLE PİNİ PORTC.1 BAĞLI
Cls                                'GLCD EKRANINI TEMİZLE
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ı
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.
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ı;
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
Print At 50,0,"16F877 + GLCD : )"
Include "Arialk12.txt" 'GLCD Ekranına 12font büyüklüğü
Include "ARIAL8.txt"  'GLCD Ekranına 8font büyüklüğünde yazı yazar.
LCD_DTPORT = PORTD      'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPIN = PORTC.5       'GLCD RS PİNİ PORTC.5 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
Print Font  Ravie_BI_14o25
Dosya indirme LINK listesi (TXT formatında) link-8658.zip şifre-pass: 320volt.com
Etiketler: font editor GLCD grafik lcd KS0108 microchip pic projeleri PIC16F877 proton glcd
Teşekkürler Muhittin hoca ve sizin sayenizde baya bir yol kat ettim :) pbp proton karışık gidiyoruz bakalım neler olacak :D
MURAT CANITEZ 2015/01/28
Sizden istirhamım ekrana nokta bile olsa yazdırabileceğim bir küçük örnek (.bas) proje.
‘NOKIA 3310 48×84
PORTD.3 ‘ RES
PORTD.4 ‘ SCE
PORTD.5 ‘ D_C
PORTD.6 ‘ SDIN
PORTD.7 ‘ SCLK
Muhittin KAPLAN 2009/12/09
Hocam Ellerine Sağlık Güzel Çalışma Olmuş.
aykut 54 2009/12/09
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ı
Hocam güzel çalışma olmuş. Elinize sağlık, çalışmalarınızın devamını bekliyoruz. İyi çalışmalar.
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.
font-converters.zip iki adet program var biri yazıda bahsedilen diğeri ise Visual Basic kaynakları ile farklı bir program iyi çalışmalar
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.
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
1 VDD 5.0V Power supply (+5V)
3 V0 (Variable) Contrast Adjustment
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
Bana fastlcd programını nerden bula bileceğimi söylerseniz çok sevinirim şimdiden çok teşekkür ederim
Mustafa SARIHAN 2010/01/24
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
Sidki DERYA 2011/02/15
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. :(((
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.
320×240 boyutlarında bir glcd çalıştırmak istesek yine aynı komutlarla calışabilirmiyiz?
bunun kayan yazı şeklindeki proton kodlarınıda yazabilirmisiniz ??
Önce Analog servo motor devresi matlab simulasyonu
Sonra Visual Basic ile pc kontrollü basit hırsız sensörü