Ynt: 3 buton ile GLCD de resim geçişleri

Başlatan yolcu27, 07 Nisan 2016, 11:21:25

yolcu27

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/

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.

yolcu27

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?

dursuncemal

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.
:=

yolcu27

Hocam mantığı  az çok anladım gibi. Ama o resim yaz kodları nasıl olacak orada takikdim şuan.

dursuncemal

hocam kullandigin derleyicinin kutuphanesi yok mu yada bir arastirman gerek basic'i iyi bilmedigini bildigim icin kendin yaz diyemiyorum.malesef basic bende de yok.
:=

yolcu27

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 😁

dursuncemal

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.?
:=

yolcu27

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

dursuncemal

:=

yolcu27

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

yolcu27

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"

dursuncemal

uzerindeki islemci ye baktimi hangisi diye?
:=

yolcu27

#12
ü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





pinler aynen bu şekilde

dursuncemal

#13
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
:=

yolcu27

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