Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: yolcu27 - 07 Nisan 2016, 11:21:25

Başlık: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 07 Nisan 2016, 11:21:25
3 buton ile GLCD de resim geçişleri yapmak istiyorum yani â b c butonlarının hangisine basarsam onun resmini gostersin ekranda.

128x64 kullanacağım.
Hangi pic i kullanmam lazım.

Hangi programı kullanarak resmin hex kodunu çıkarmalıyız.nasıl bir şema kullanmam lazım.şimdiden tesekkur ederim pic basic ile de yapabilirim.

Hazır kod istemiyorum yol gösterin yeterlidir bana
Ben birşeyler cizerim yanlisim olursa sizlerden yardım isterim yeniden.

mesaj birleştirme:: 07 Nisan 2016, 11:47:43

https://320volt.com/18f452-ile-glcd-resimli-menu-kronometre/ (https://320volt.com/18f452-ile-glcd-resimli-menu-kronometre/)

Suradaki program ile resimlerin hex dosyasını oluştururum.
3 etiketli bir program yazarak(pic basic için konuştum) her etikete farklı resmin hex kodlarını koyarim ve etiketin başına LCD nin silinmesi için kodu yazarım. İf porta.=1 then A şeklinde kodlar kullanarak etiketler arasi geçiş sağlarım. Ekranda resimler gorunmus olur.

Şimdi ilk defa glcd kullanacağım daha önce 2x16 LCD kullandım. Bu biraz farklı sanırım.

Özellikle pic basic ile bunu nasıl yaparım pic basic i biraz daha iyi biliyorum diğer dillere gore.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 07 Nisan 2016, 22:32:01
biraz araştırdım sanırım proton ile daha rahat olacak gibi. ama  yinede ihtiyacım var. inclulde dosytası olusturarak yapmam gerekiyor sanırsam. ama 3 resim olusturacağım bunun için geçiş yapmam gerekiyor. bir  butonda bir inclulde dosyasını diğer butonda ekranı silip diğer inclulde dosytasını acması mi gerekecek?
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 07 Nisan 2016, 23:28:20
once tek bir resmi ekrana bastir sonrasi kolay hangi yzilim ile yaparsan yap hic sorun degil.
include dosyasina gelince gosterilecek grafik dosyasinin hex kodlari sayfada cok yer kapladigi icin ayrica bir dosyaya kaydedilip programa include edilir.yani include dosyasi kullanip kullanmamak onemli diil.

basic bilmiyorum ama mantigi anlatmak icin
basit olarak sunu yapabilirsin.

'resim_goster' adinda bir degisken tanimlasan.

İf porta.=1 then  resim_goster = 1
İf porta.=2 then  resim_goster = 2
İf porta.=3 then  resim_goster = 3

İf resim_goster = 1 then 1.resimi yaz
İf resim_goster = 2 then 2.resimi yaz
İf resim_goster = 3 then 3.resimi yaz

gibi hangi pici kullanacaginiza gelince 128x64 lcdye tam ekran veri atacak isen 128 / 8 = 16.  16*8 = 1024 yani bir kerellik tam ekran icin  1024 byte lik bir alana ihtiyac var. 3 resim icin 3072 byte lik bir alana ihtiyacin var birde yazacagin programi ekle 3 resim icin en az 4k bir islemci lazim 16f877 yeter.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 08 Nisan 2016, 10:14:30
Hocam mantığı  az çok anladım gibi. Ama o resim yaz kodları nasıl olacak orada takikdim şuan.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 08 Nisan 2016, 10:28:02
hocam kullandigin derleyicinin kutuphanesi yok mu yada bir arastirman gerek basic'i iyi bilmedigini bildigim icin kendin yaz diyemiyorum.malesef basic bende de yok.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 08 Nisan 2016, 12:55:52
Alıntı yapılan: dursuncemal - 08 Nisan 2016, 10:28:02
hocam kullandigin derleyicinin kutuphanesi yok mu yada bir arastirman gerek basic'i iyi bilmedigini bildigim icin kendin yaz diyemiyorum.malesef basic bende de yok.

Basic ile değilde sanırım proton ile yapacağım. Onunla bir kaç örnek gordum tek resimlik . ben bunu buton kontrolü ve geçiş ekleyecegim. Tavsiye edeceğiniz standart bir Glcd var mıdır bugün sipariş vereceğim de direnç netten  özellikle pin bağlantıları farkı farklı olunca iş uzayıp gidiyor 😁
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 08 Nisan 2016, 13:11:18
ne ile yazarsan yaz ekrana bir resim atmayi basarirsan gerisi kolay. t6963 islemcili olanini secersen cokca ornek bulabilirsin.glcdyi cok az kullandim sen tam olarak ne yapmak istiyorsun amac ogrenmek mi yoksa yapman gereken bir projen mi var.?
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 08 Nisan 2016, 13:27:22
Alıntı yapılan: dursuncemal - 08 Nisan 2016, 13:11:18
ne ile yazarsan yaz ekrana bir resim atmayi basarirsan gerisi kolay. t6963 islemcili olanini secersen cokca ornek bulabilirsin.glcdyi cok az kullandim sen tam olarak ne yapmak istiyorsun amac ogrenmek mi yoksa yapman gereken bir projen mi var.?

Bir proje hocam.

3 tane trafik levhası olacak resim olarak.
A b c butonları ile değişmiş olacak.

128x64 şeklinde paint ile cizdim. GLCD ve pic slip deneyecegim. Daha önce dediğim gibi 2x16 LCD kullandım yazı animasyonları filan yaptım. Ama ilk defa resim yazdıracagim.
Ozaman bana lazım olan pic16f877 ve bir adet GLCD .
Dediğiniz modele bakıyorum hemen
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 08 Nisan 2016, 16:39:20
sadece uc resim ise evet 876.877 olur.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 08 Nisan 2016, 16:59:06
Alıntı yapılan: dursuncemal - 08 Nisan 2016, 16:39:20
sadece uc resim ise evet 876.877 olur.

Sipariş verdim kargoda ikiside şuan. Modelini bilmiyor larmis 128x64 ve 877 verdim sipariş olarak. Pazartesi ne kadar isis te deneme yapayım
Başlık: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 12 Nisan 2016, 00:37:46
gelen kargodaki glcd de cs2 cs1 pinleri yerine NC ve PSB pinleri mevcut. isiste kodlarımı simüle ediyorum sıkınıt yok ama görüntü alamıyorum.

kodlarım şu şekilde. bağlantı olarak PSB pinini +5 yada 0 da deniyorum görüntü gelmiyor kontrsastta sıkıntı yok .

nasıl bir değişiklik ile kullanabilrim bu lcd yi acaba. sadece 12864b v.2 yazıyor arkasında başka hiçbir kod yok
Device = 16F877
Config HS_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_OFF 
Xtal = 20
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   Samsung 
Internal_Font = On                 
Font_Addr = 0
GLCD_CS_Invert On
Cls
DelayMS 500        

Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  char    As Byte
If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon

arabalar1:
Cls
DelayMS 100
arabalar2:
     For Ypos = 0 To 7
         For Xpos = 0 To 127

             Addr = (Ypos*128)+Xpos
             char = CRead arabalar+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next

If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon
     DelayMS 100

     GoTo    arabalar2
     
dikkat2:
Cls
DelayMS 100
dikkat3:
      For Ypos = 0 To 7
         For Xpos = 0 To 127

             Addr = (Ypos*128)+Xpos
             char = CRead dikkat+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
     If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon

     DelayMS 100

     GoTo    dikkat3
kamyon:
Cls
DelayMS 100
kamyon2:
     For Ypos = 0 To 7
         For Xpos = 0 To 127

             Addr = (Ypos*128)+Xpos
             char = CRead kamyonaraba+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
     If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon

     DelayMS 100

     GoTo    kamyon2


Include  "kamyonaraba.inc"
Include  "arabalar.inc"
Include  "dikkat.inc"
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 12 Nisan 2016, 01:02:57
uzerindeki islemci ye baktimi hangisi diye?
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 12 Nisan 2016, 01:23:18
üzerinde üretim tarihi ve 12864b v2.0 dan başka bilgi yok hocam. damla tip 3 tane işlemci var u1 u2 u3 yazıyor sadece.
entegreyi denedim calısıyor data cıkıslarına led bağladım yanıp ynaıp sönüyor cıkıs var yani. bağlantı sorunum var şuan 5 saattir uğraşıyorum:(

mesaj birleştirme:: 12 Nisan 2016, 01:26:38


(http://s18.postimg.cc/bjnhyu3ut/pinout.jpg) (http://postimg.cc/image/bjnhyu3ut/)


pinler aynen bu şekilde
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 12 Nisan 2016, 01:32:47
hocam bir sekilde datasheet  ini bulmalisin zira bazi urunlerde reset değil olabiliyor yani birinde + ise bazilarinda - olabilir  clr uzerinde cizgi olabilir
bu arada suraya bir goz gezdirirmisin sanki senin islemcin bu gibi.
https://www.ccsinfo.com/forum/viewtopic.php?p=169706 (https://www.ccsinfo.com/forum/viewtopic.php?p=169706)
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 12 Nisan 2016, 09:00:14
hocam sanırım dediğiniz gibi işlemci o olsa gerek.

şimdi okuduklarım ile birkaç şey öğrendim

normalde standart olanlarda cs1 cs2  pinleri lcd nin sağ sol tarafını seçmek için kullanılıyormuş

bendeki psb pini ise lcdnin paralel yada seri bağlantısına göre +5 yada eksiye çekiliyor anladığım kadarıyla.

şimdi benim aklımda 2 soru oluştu..


1. soru=  lcdnin paralel yada seri bağlantısı nasıl yapılır kodda nasıl yazılır?

2. soru=  başka bir lcd daha sipariş verdim cs1 cs2 pinleri olan,    ben yukarıdaki verdiğim kod ile tam ekranın ortasında görüntü alamaz mıyım?

teşekkürler
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 12 Nisan 2016, 13:38:05
cok uzun suredir kullandigim bir urun olmadigi icin vede islemciye kendim baglamadan ezberden bir sey soyleyip yonunu bozmak istemiyorum. paralel seri icin data sheet'e bir bakmak lazim sen benim gonderdigim link teki kodlari  ve baglanti sekillerini inceledin mi.?
Başlık: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 12 Nisan 2016, 14:37:29
Hocam inceledim fakat farklı dille yazıldığı için daha doğrusu benim ccs.c diline daha da yabancı olduğum için fazla birşey anlamadım.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 13 Nisan 2016, 18:26:34
cs1 cs2 pinlerinin bulunduğu lcdl geldi bugün gerektiği gibi bağlantı yapınca gayet temiz bir görüntü elde ettim.

ufak tefek sorunlarım kaldı onuda halledemezsem yazarım buradan yeniden :)
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 13 Nisan 2016, 18:30:37
hadi gozun aydin ama oburunude calistirmalisin.
Başlık: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 13 Nisan 2016, 19:31:15
Onu ardiuno ile kullanmayı düşünüyorum genelde onunla ilgili projeler gordum internette de ondan dolayı. Şimdilik bunu yaptım.  Simdi aklımda resim sayısını çoğaltmak var. Suan 4resim ekli ama bunu 12 filan yapmak istiyorum yeterli gelir mi acaba 16f877 yeterli gelecek midir

Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 13 Nisan 2016, 19:41:09
derlemeyi yaptiktan sonra kalan yere bakarsan anlarsin 12 adet tam resim ise  sadece resimler 1024 * 12 = 12288 byte yapar 877 yetmez.
Başlık: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 13 Nisan 2016, 20:51:56
Anladım hocam  ozaman aynı bağlantı ile belleği daha fazla olan bir işlemci kullanırız.

Peki şunu nasıl yapabilirim.

Etiket içinde butona basınca başka etikete gidiyor ama ben etiketin sonuna koyuyorum bu if then komutunu. Sıra oraya gelmeden butona basınca buton işlev yapmıyor.  Etiket içerisinde hangi sırada olursa olsun butona basınca yani porta.1=1 olunca başka bir etikete yönelmesini nasıl yaparım
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 13 Nisan 2016, 22:37:35
hocam malesef basic bilmiyorum.fakat  eger etiketin icine kocaman bir bekleme koyarsan tabiki o sure bitmeden program oradan cikmaz ,  istedigin zaman cikmaz.mutlaka o gecikmeyi yerine getirir buda sana uzun bir sure gibi gelir.
bunun icin mumkun oldugu kadar etiketlerin icine gecikme yazmamalisin.yapiyi ve isleyis tavrini bilemedigim icin senide yaniltmamak amaci ile sudurr diyemiyorum sadece tahmin ediyorum.yani inteerup kullanmayi ogren derim sana tus okumalarini yapacagin en mantikli yer interruptur.cunku sen programin neresinde olursan ol eger kullanirsan periyodik olarak program seni interrupta goturur.orada yapacagin tus okumalari veya daha baska zamanlamali isleri cok daha rahat edersin.
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 14 Nisan 2016, 08:24:04
Şuan bilgisayar başında olmadığını için deneyemiyorum. Kodlarım şu şekilde
Device = 16F877
Config HS_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_OFF 
Xtal = 20
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   Samsung 
Internal_Font = On                 
Font_Addr = 0
GLCD_CS_Invert On
Cls
DelayMS 500        

Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  char    As Byte
If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon

arabalar1:
Cls
DelayMS 100
arabalar2:
     For Ypos = 0 To 7
         For Xpos = 0 To 127

             Addr = (Ypos*128)+Xpos
             char = CRead arabalar+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next

If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon
     DelayMS 100

     GoTo    arabalar2
     
dikkat2:
Cls
DelayMS 100
dikkat3:
      For Ypos = 0 To 7
         For Xpos = 0 To 127

             Addr = (Ypos*128)+Xpos
             char = CRead dikkat+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
     If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon

     DelayMS 100

     GoTo    dikkat3
kamyon:
Cls
DelayMS 100
kamyon2:
     For Ypos = 0 To 7
         For Xpos = 0 To 127

             Addr = (Ypos*128)+Xpos
             char = CRead kamyonaraba+Addr
             LCDWrite Ypos,Xpos,[char]
         Next
     Next
     If PORTA.0=1 Then arabalar1
If PORTA.1=1 Then dikkat2
If PORTA.2=1 Then kamyon

     DelayMS 100

     GoTo    kamyon2


Include  "kamyonaraba.inc"
Include  "arabalar.inc"
Include  "dikkat.inc"
   


Buradaki if then komutlarını for next içinde mi kullansam daha mı iyi olur acaba diye düşündüm. Akşam deneyecegim
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 14 Nisan 2016, 12:49:09
Alıntı yapılan: dursuncemal - 13 Nisan 2016, 22:37:35
hocam malesef basic bilmiyorum.fakat  eger etiketin icine kocaman bir bekleme koyarsan tabiki o sure bitmeden program oradan cikmaz ,  istedigin zaman cikmaz.mutlaka o gecikmeyi yerine getirir buda sana uzun bir sure gibi gelir.
bunun icin mumkun oldugu kadar etiketlerin icine gecikme yazmamalisin.yapiyi ve isleyis tavrini bilemedigim icin senide yaniltmamak amaci ile sudurr diyemiyorum sadece tahmin ediyorum.yani inteerup kullanmayi ogren derim sana tus okumalarini yapacagin en mantikli yer interruptur.cunku sen programin neresinde olursan ol eger kullanirsan periyodik olarak program seni interrupta goturur.orada yapacagin tus okumalari veya daha baska zamanlamali isleri cok daha rahat edersin.

Hocam peki bazen ekranın yarısı çıkmıyor resimlerim tam ortadan yarım çıkıyordu dedim sanırım cs1 cs2 pinleri breadboard da tam oturmuyor bundan mıdır çünkü biraz sağlam tutunca tam ekran çıkıyor.

Birde ilk açılışta son görüntünün pixelleri gorunuyor tam olmamakla beraber rastgele şekilde bunu önlemek için ne yapabilirim yani ilk açılışta data portlarini sıfıra cekmek ise yarar  mı acaba. İlk açılışta  CLS komutu ile ekranı silmesi gerekli ama yinede pixel kalıntıları oluyor yinede

Bu iki sorunun cevabı yine sizde saklıdır biliyorum :)

Bu arada tesekkur ederim ilginiz için
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: dursuncemal - 14 Nisan 2016, 18:11:13
evet cs1 cs2 pinlleri zanedersem moduldeki 2 cipe ayit  ekranin yarisi 1 i obur yarisi 2. cip ile suruluyor olabilir.data sheete bir bakmak lazim.
eger ekranda aktif piksel kaliyor ise  kesin  senin cls fonksiyonun calismiyorsur.sana amelece bir cozun ureteyim hemen beyaz bir zeminden bir tablo yap silmek istediginde ekrana onu yazdir.biraz kaba oldu ama bunu yapabilecegini biliyorum.zira ben basic bilmiyorum.:=)
Başlık: Ynt: Ynt: 3 buton ile GLCD de resim geçişleri
Gönderen: yolcu27 - 17 Nisan 2016, 14:18:39
Toplamda 10 resim kullanmayı dusunuyorum artık.
Bunun için 16f877 yerine 18f452 kullanirsam direk kodlardaki tanımlamayı ayarlayarak sorun olur mu  acaba. Port pinleri aynı sonuçta .sadece kod içindeki tanımlamalar değişecek gerisi aynı kalacak. 32k hafıza bana hayli hayli yeterli gelecek 10 resim için . 877 nin 8k hafızası var yetmiyor