bilmemek ayıp değil gene soruyorum glcd yardım

Başlatan ibo1973, 15 Ocak 2008, 19:58:10

ibo1973

arkadaşlar bilmemek ayıp değil öğrenmemek ayıp derler bence doğru bi laf ben bu konuda uzman sayılmam hatta acemi sayılırım ben bu grafik lcd lerin mantığını bi türlü çözemedim mantığı nasıldır diye. elimde seiko firmasının ürettiği ks-92f1016 bir GLCD var data sheedene bakarak pic16f877 ye bağladım doğru bağladığımı varsayıyorum

BAĞLANTIM BU SEKİLDE

       PORTD.0=0 ' E ENABLE UCU
       PORTD.1=0 ' R/W  READ WRİTE
       PORTD.2=0 ' D/I  DATA INSTARCTION
       PORTD.3=0 ' RST  RESET
       PORTD.4=0 ' CS11 CHIP SELECTED
       PORTD.5=0 ' CS12 CHIP SELECTED
       PORTD.6=0 ' CS13 CHIP SELECTED
       PORTD.7=0 ' CS14 CHIP SELECTED
       
       PORTB.0=0 ' DB7
       PORTB.1=0 ' DB6
       PORTB.2=0 ' DB5
       PORTB.3=0 ' DB4
       PORTB.4=0 ' DB3
       PORTB.5=0 ' DB2
       PORTB.6=0 ' DB1
       PORTB.7=0 ' DB0
bu bağlantı şekline göre ufak bir program yazarmısınız ekranda tek bir harf çıksa bile yeterli olur
birde acemi birinin anlıyacağı şekilde açıklama yazarsanız çok iyi olur

erkan614

forumda gldc hakkında arama yaptınmı
ete abibizin verdiği bi program olcaktı isis te deneye bilirsin ampire 128x64 glcd ile
ayrıca semple da epe grafik demo var onunlada oynayabilirsin pbp ile yazılmış bi programı vardı
harf için bi font creator lazım sana onuda basic için yapılmışlarını yine forumda bulabilirsin
tavsiyen elindeki lcd den önce isisteki lcdlere harf yaz
kolay gelsin
http://rapidshare.com/files/84048219/Proton_Plus_me.rar.html
dosya içinde ne olduğunu hatırlamıorum saçma bişeler yazılıysa kusura bakma

ibo1973

araştırdım ama dediğim gibi mantığını anlayamadımkki değiştiriyim üzerinde oynama yapıyım sabahtan beri bunla uğraşıyorum birisi bana şurdan başla şunu söyle yap şu programla dene dese bi yerden başlasam devamı gelirdi sanırım

OG

ibo1973
bilenler, sormaya utanmayanlardır.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

erkan614

bu arada bende daha önce hiç glcd kullanmadım daha bu gün ks0108 driverli 128x64 lcd aldım :)
çok yeni olan biri olarak bildiğim ekran ikiye ayrılıyor cs1 ve cs2 ile bu bölümlere ulaşıorsun her nokta kümesininde bi kodu var
mesela verdiğim örnekte
      
        BIL=0:PORTC.6=1:GOSUB YOL 
        FOR X=0 TO 7 
        LOOKUP X,[0,0,128,128,128,128,128,240],PORTD 
'        LOOKUP X,[158,190,176,176,176,176,190,158],PORTD 
        GOSUB ONAY:NEXT X      'L yazıldı 
        
        BIL=1:GOSUB YOL 
        FOR X=0 TO 7 
        LOOKUP X,[0,0,8,24,36,60,66,66],PORTD 
'        LOOKUP X,[249,253,205,205,205,253,249],PORTD 
        GOSUB ONAY:NEXT X ' A yazıldı ----- AL

yerine
      
        BIL=0:PORTC.6=1:GOSUB YOL 
        FOR X=0 TO 7 
'        LOOKUP X,[0,0,128,128,128,128,128,240],PORTD 
        LOOKUP X,[158,190,176,176,176,176,190,158],PORTD 
        GOSUB ONAY:NEXT X      'L yazıldı 
        
        BIL=1:GOSUB YOL 
        FOR X=0 TO 7 
'        LOOKUP X,[0,0,8,24,36,60,66,66],PORTD 
        LOOKUP X,[249,253,205,205,205,253,249],PORTD 
        GOSUB ONAY:NEXT X ' A yazıldı ----- AL


yaz ve ekran daki değişiklikleri gör

teknikelektronikci

aynen ekran 2 ye ayriliyor ama ibo1973 senin 4 tane secme ucumu var onu anlamadim  onu bi datashetden iyice bir bak birde bn glcd de az cok tecrübem var belkide glcd calismasina ragmen kontrastin yanlis baglanmasindan doalyi ekranda bir sey gözükmüor ollabilir bu glcd lerde contrast ayari normal lcd lerdeki gibi değil yani potun orta ucuna vo(contrast) diger uclarina vdd ve gnd baglanmior glcd de bazialrinda -vee bazisinda ise +vee cikis ucu vardir tam olarak emin değilim cükü baya bi oldu ugrasali ve cizimelrimide kaybetim ama eger glcd -vee ye sahipse vo ucu potun orta ucuna diger diger uclardan bir ucu -vee ye digeri ise vdd ye baglanir eger +vee cikisa sahip ise potun orta ucuna vo diger ucu +vee digeri ise gnd ye baglanir yani kisaca senin problemin program dogru ise ve pic calisor ise -vee contrast problemi olabilir ayrica programlama dili ollarak ne kullaniiorsun ?
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

ErsinErce



Lcdnin yapısı bu şekilde hd44102ch nin datasheeti de önceden verdiğim gibi burda http://www.datasheets.org.uk/pdf/1549746.pdf bu datasheetin içinde nasıl kumanda edileceği mevcut

iyi çalışmalar

ete

Aslında bir kaç defa ayzdım bu işin mantığını ama sürekli soruluyor. Bu mesajlar forumdan siliniyormu yoksa.
İşin temelinde ekranın noktalardan oluştuğu yatmakta. Nokta sayısı ekran çözünürlüğüne bağlı bir olay. 64x128 lik bir ekranda 64x128 adet nokta var demektir. Bu noktalar verilen komutla aktif (siyah nokta haline) getirilebiliyor. İşte aktif hale getirilen noktaların bir araya gelemsi ile şekiller yada harfler oluşturulmaktadır.
Kontrol sistemi aslında yukarıdan aşağıya 8'er noktalık sütünlar halinde yapılıyor.
Erkanda her bir noktanın belirli bir adresi mevcut. Adres  olarak ekranın en üst sol kenarını gösterdikten sonra ki bu iş data sheet de verildiği şekilde önce komut verileceği ekrana belirtiliyor ardından adres veriliyor. Diyelimki ekranın en üst sol kenarını adres olarak verdik. Ekranın GLCD kontrolü içine bir ram adresi mevcut. Bu ram'e şayet 255 bilgisini yazarsan bu yan yana 8 adet 1 demektir (binary olarak). Burada bu 8 adet bir yukarıdan aşağıya nokta şeklinde yerleşiyor. Dolayısıyla ekranda en sol üstten itibaren alta doğru 8 adet nokta görmüş oluyorsun. Buraya 255 yerine 1 değerini yerleştirirsen yalnızca 1 adet nokta koymuş olacaksın. İşte şekil bu şekilde oluşturuluyor. Bilgiyi peş peşe verirsen adres değeri otomatik artırılıyor. Atlama yaparsan yeni adresi sen belirleyip vermen gerekiyor.
Biraz data sheeti okuduktan sonra konuyu daha iyi anlayacaksınız umarım. Bu konuda benim yayınladığım bir program var idi. Orada ekrana getirilen şekiller harflerin nasıl oluşturulduğu detaylı biçimde anlatılıyor.
Ama temel mantık benim açıkladığım gibidir. Ekranı silmek bile vereceğiniz programla mümkün. Aynı adrese sıfır bilgisini yerleştirirseniz ekranı silmiş oluyorsunuz. Hepsi bu kadar.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

teknikelektronikci

arkadasim simdi senin problemin ne programi yazdinda lcd mi calismior yoksa programin nasil yazilacagi hakkinda bilgimi istiorsun daha halen kullandigin programlama dilini yazmamisin eger amacin sirf bir denem programi ise devre semanin bacak baglantilarini söyle sana bi program atayim kolay gelsin
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

ibo1973

arkadaşlar öncelikle cevap yazan herkeze çok teşşekür ederim allah razı olsun hepinizden

teknik elektronikçi:
1 : evet benim 4 tane şeçme ucum var
2: datashedene bakarak ekranı  +5v u bir ayağını pota bir ayağını vdd ye
-5v u direk potun diğer ayağına bağladım potun orta ayağınıda vlc ye bağladım gnd yi direk vss ye bağladım bu şekilde yapınca potu açınca ekranda dolu kareleri görebiliyorum veya kısınca kareler gidiyor ama ekranın ışıklarını yakamadım soluk çıkıyor lar yani aydınlatma yok ama dolu kareler görünüyor port bağlantılarınıda gene data sheede bakarak

PORTD.0=0 ' E ENABLE UCU
       PORTD.1=0 ' R/W  READ WRİTE
       PORTD.2=0 ' D/I  DATA INSTARCTION
       PORTD.3=0 ' RST  RESET
       PORTD.4=0 ' CS11 CHIP SELECTED
       PORTD.5=0 ' CS12 CHIP SELECTED
       PORTD.6=0 ' CS13 CHIP SELECTED
       PORTD.7=0 ' CS14 CHIP SELECTED
       
       PORTB.0=0 ' DB7
       PORTB.1=0 ' DB6
       PORTB.2=0 ' DB5
       PORTB.3=0 ' DB4
       PORTB.4=0 ' DB3
       PORTB.5=0 ' DB2
       PORTB.6=0 ' DB1
       PORTB.7=0 ' DB0
bu şekilde pic16f877 ye girdim

evet devreyi kurdum picbasickulanıyorum microcodestudio bacak bağlantısı yukardaki gibi
evet örnek bir program yazarsan harika olur .
hem kızma cevap yazmadığım :D için ben akşam saat 9 dan sonra bilgisayar basında olamıyorum o yüzden cevap yazmam uzun sürdü

ete:

çok teşşekür ederim daha önce yazdığın programı ve yazıyı okudum senin yazdığından doğru bu işin sıralı bir led yakmak gibi olduğunu anlamıştım bu konuda daha detaylı yazmışşın şimdi biraz daha iyi anladım ancak anlamadığım bazı yerler var programında bunları yazmışşın

   INS CON 63
   XAD CON 184'184 SAYISI
   YAD con 64 '64 SAYISI
bular ne anlama geliyor
birde
burda LOOKUP X,[249,253,205,205,205,253,249],PORTD demişşin ama bunuda anlamadım
birde bu glcd lerin açılmasını kapanmasını reset gibi şeylerini anlamadım ben data shhede baktığım kadar bunları bulamadım

arkadaşlar kusura bakmayın belki çok acemice şeyler soruyorum ama hakkten bilmiyorum anlamadığım yerleri soruyorum

tekradan teşşkür ederim kolay gelsin

ete

Alıntı Yap
ete:

çok teşşekür ederim daha önce yazdığın programı ve yazıyı okudum senin yazdığından doğru bu işin sıralı bir led yakmak gibi olduğunu anlamıştım bu konuda daha detaylı yazmışşın şimdi biraz daha iyi anladım ancak anlamadığım bazı yerler var programında bunları yazmışşın

INS CON 63
XAD CON 184'184 SAYISI
YAD con 64 '64 SAYISI
bular ne anlama geliyor
birde
burda LOOKUP X,[249,253,205,205,205,253,249],PORTD demişşin ama bunuda anlamadım
birde bu glcd lerin açılmasını kapanmasını reset gibi şeylerini anlamadım ben data shhede baktığım kadar bunları bulamadım
INS yani instruction yani komut demek ve bunun sabit bir rakam değeri var ona 63 olarak belirlemişim. Benim kullandığım LCD ye 63 verdinmi kendisine bir komut verileceğini anlıyor demektir bu.
XAD ise yatay adres değeri  YAD ise dikey adres değeri. Biliyorsun bir nokta ekranda yatay ve dikey adres değerleri verilerek konumlandırılabiliyor.
Ekranın 0,0 noktasının adresi ise 184,64 olarak verilmiş. Bu ekran ram inin bir özelliği farklı LCD lerde bu değer değişebilir. Data sheetlerine bakmak lazım.
LOOKUP komutu bir index değerine karşılık tablodan değer alır ve sonda verilen değişkene bu değeri yerleştirir. Yukarıdaki örnekte,
X=0 ise PortD ye 249 bilgisi gönderilir.
X=1 ise PortD ye 253 bilgisi gönderilir.
..
..
X=5 ise  PortD ye 253 bilgisi gönderilir (5.sırada olduğu için)
Hatırladğım kadarı ile displayin aktif edildiği (açıldığı) bir komut ile kapatıldığı bir komut var idi. Bunlardı kastediyorsun sanırım. İlk çalıştırmada ekranı açmaz isen hiç bir şey göremiyorsun. (Hatırladığım kadarı ile programlara bakmadım şimdi).

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ibo1973

ete çok teşşekür ederim hazine gibi bilgiler vermişsin ben birde şu gflcd açma kapatmayı sağlayan kodlarıda datasheeden çıkaramadım bunuda bana göre anlatman mümkünmüdür benim gflcd in datasheddende bunlar yazıyor

kodlar http://img261.imageshack.us/img261/6061/kodlared6.jpg
adres set http://img158.imageshack.us/img158/3964/adrssethb4.jpg
http://img340.imageshack.us/img340/6108/displaydw8.jpg
http://img151.imageshack.us/img151/4708/displayonofsetqi2.jpg
http://img151.imageshack.us/img151/4299/displayreadvv8.jpg

bunlara bakarak bana mümkün se ufak bir örenk başlangıç yazabilirmisin picbasicpro mcs için

ete

ibo verdiğin ilk resimde 3 cü sırada Display on/off komutu var işte açma kapatma odur.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ibo1973

ete kusura bakma sabrını zorladığımın farkındayım aslında bu kadar yardımcı olduğun halde daha fazlasını istemem lazım ama hala anlamadığım şeyler var yazdıklarından ve anlattıklarından baya bir şeyler anladım benim anladığım senin yazdıklarından doğru anladıysam

glcd lerde öncelikli olarak glcd ye açma kapatma komutunu yollıyıcağım sonrada açmak kapatmak istediğim noktaları açıcam kapatıcam anlamadğım ise bu açma kapatma kodunu ve diğer kodları glcdnin hangi bacağına yollıyacağım ve bu esnada diğer bacakların konumu ne olucak yani aslında örnek bir kod yazsan iyi olurdu
yani özetle lcd nin hangi bacağına neyi göndericem örnek bir kod yazarsan çok iyi olur yazmassanda sorun değil baya bi yardımcı oldun zaten teşşkür ederim allah razı olsun.

ibo1973

bende bağlantı bu şekilde        
       PORTD.0=0 ' E ENABLE UCU
       PORTD.1=0 ' R/W  READ WRİTE
       PORTD.2=0 ' D/I  DATA INSTARCTION
       PORTD.3=0 ' RST  RESET
       PORTD.4=0 ' CS11 CHIP SELECTED
       PORTD.5=0 ' CS12 CHIP SELECTED
       PORTD.6=0 ' CS13 CHIP SELECTED
       PORTD.7=0 ' CS14 CHIP SELECTED
       
       PORTB.0=0 ' DB7
       PORTB.1=0 ' DB6
       PORTB.2=0 ' DB5
       PORTB.3=0 ' DB4
       PORTB.4=0 ' DB3
       PORTB.5=0 ' DB2
       PORTB.6=0 ' DB1
       PORTB.7=0 ' DB0