4x20 lcd ye butonlarla harf ataması yapmak.

Başlatan F®T, 13 Mart 2015, 23:44:14

F®T

4x20 lcd ye 3 buton kullanılıp nasıl bir algoritma ile yazı yazdırılabilir.Her hücreye atanan harf hafızada tutulmalı.Örnegin 4x20 lcd nin 1.satırına FERIT TANRIVERDI yazmayı düşünsem nasıl bir yöntem uygulamalıyım. Fikirler için şimdiden teşekkür ederim.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Yazdırılacak harfleri butonla seçmek istersen yöntem basit. Harfler ascii olarak 65 den başlıyor.
Bir harf değişkeni kullan ve başlangıçta harf değerin 65 olsun. Bunu ekrana yazarken bir yer değişkenin olsun yer=0 dan başla.
Ekran alt programın yalnızca,
Lcdout $fe,$80+yer,harf komut satırını kullansın.
If tusartı=0 then
  harf=harf+1
   İf harf=91 then harf=90( bu rakamı test etmek gerek z harfinden bir sonraki karekter midir)
    While tusartı=0:wend
    Gosub ekran
Endif

If tuseksı=0....
.........
Endif

İf set=0 then
  Yer=yer+1
Endif

Gibi bir form ile bu iş yapılabilir.

Ete

F®T

Tamamdır hocam  örnek bir çalışma yapmaya çalışıcam.Teşekkür ediyorum.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

Hocam dediklerinizi yaptım ve örnek çalışmayı arkadaşlar faydalansın diye yükledim.teşekkür ediyorum.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

#4
Hocam yukardaki çalışma ile ilgili ekleyebileceğiniz bir öneri varmı?Ayrıca ekrana yazılanları tek tek eproma atıp sonra ekrana yazdırma ile ilgili nasıl bir yöntem uygulamalıyız.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Ferit,
Eklenecek pek bir şey yok sanırım. Tarif ettiğim gibi yapmışsın. Kullanışlıda . Ancak farklı bir istek olursa ona göre yeniden düşünmek daha iyi olur sanırım.

LCDOU komutu verdiğin ASCII kodunu direk karekter olarak ekrana yazıyor ise eprom konusunda da yapacak bir şey yok aslında.
Diğerinde birde yer değişkeni kullanmıştık ama aslında ona bile gerek yok. Çünkü,
LCDOUT $fe,$80 şeklinde bir başlangıç yapıp,     LCDOUT 65,66,67,68
şeklinde bir komut dizisi veya
LCDOUT 65
LCDOUT 66
LCDOUT 67
LCDOUT 68
şeklinde komut satırları yazarsan ekranda ilk satırda ABCD harflerinin yan yana yazıldığını görürsün. Buradan şu anlam çıkıyor.
Ekrana bir karekter yazdığın zaman kursor (yazma) konumun bir sonrakine ayarlanır otomatik olarak.
Bu durumda epromdan karekter okuyup ekrana yazdırma yapılacak ise,
- Önce yazının başlayacağı adres verilir (LCDOUT $fe,$85 gibi)
- Sonra epromdan bir karekter okunur ve LCDOUT Karekter komutu ile ilgili adrese yazdırılır.
- Bu gibi işlerde genellikle bir sonlandırma karekterine kadar okuma devam eder. (Mesela IF Karekter=255 then bitir gibi)

Hepsi bu kadar.

Ete

F®T

Anladım hocam teşekkür ediyorum ilginiz için.
Şimdi asıl yapmak istediğim aslında 16 adet farklı menü oluşturup bu menulere 20 şer karekteri butonlar yardımı  ile girebilmek ve bu girdiğim menu karekterlerini daha sonra farklı senaryolarda çağırıp kullanmak.dolayısı ile eepromdan baya bir yer kullanacak görünüyor.16 x 20 =320 byte bu işlem için kullanılacak.bu tip bir kayıt yaptıktan sonra okumayıda program ilk startından basladan önce okuyup değişkenlere yükledikten sonra  program içinde kullanmayı düşünüyorum.Basladan önce eepromdan okuyup değişkenlere yüklediğim değerleri program içinde kullanmamda bir sıkıntı oluşurmu.Yada nasıl bir yöntem sağlıklı olur sizce.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Bir sıkıntı olacağını sanmıyorum. Kayan yazılarda ve benzeri işlerde kullanılan bir yöntem. Zaten topu topu 2 yöntem var. Birisi söylediğin. Diğer ise lazım olduğu zaman o karekterleri epromdan okuyup dizi değişkenine yerleştirmek ve gerektiği yerde kullanmak. İkiside kullanılabilir.

Ete

F®T

Anladım hocam dediğim yöntemle çalışmaya devam ediyorum.Teşekkürler.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

Hocam harfleri belirleyip menu1 olarak byte tipi değişkenlere kaydediyorum.fakat eski harf ile yeni harf aynı ise eepromu kaydetmeden o harfi nasıl es geçerim.

If ZN=1 Then
For X=0 To 19
EWrite X,[MENU1[X]]
DelayMS 10
Next
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

#10
Soruyu anlamadım. Eski harf den kastın o anda ekranda olan karektermidir yoksa nedir.
Eski dediğin bir yerden alınıp yenisi ile karşılaştırılacak ise bence boşuna zahmete girme. Eskisi yenis aynı olsa bile sen yinede kayıt et en fazla üzerine kayıt edersin. Soruyu yanlış yorumluyorsam neden es geçmek istediğini söylemen gerek.
Şayet düşündüğüm şekilde zaten kayıtlı olan bir şeyi bir daha kayıt etmekle uğraşmayayım diyorsan karşılaştırma işi daha çok zaman alacak bence kayıt etmek daha uygun gibi.

Aklıma geldi de belkide eprom yerine bir lookup tablosu kullanmak daha akıllıca olurdu.
Örnek vereyim.,
LCDOUT $FE,$80
FOR INDEX=0 to 9
GOSUB ANA_MENU_1  'ana menünün 1. satırı
LCDOUT ALDIM
NEXT

....
...
ANA_MENI_1:
LOOKUP INDEX,["SAYI SECME"],ALDIM
RETURN


Ete


F®T

Hocam doğru anlamışsınız.Ekrandaki harf yenisi ile aynı ise boşuna kayıt yapmıyam diye düşünüyordum.Haklısınız baya bir işlem yapıp süre kaybı olacak.
Eprom yerine lookup tablosu kullanıp hafıza olayını nasıl yaparız onu anlayamadım.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Menü seçenekleri belli ise onları lookup tablosundan çağırmak daha kolaydır diye düşünmüştüm.
Ama konuyla alakası olmayan bir öneri oldu galiba.
Ete

F®T

ETE hocam menu işini lookup ile yaparım.Daha kullanışlı olur dediğiniz gibi.Neticede 16 adet 20 adet karekter tanımlayacağım ve eeproma kayıt yapacağım menu olacak.Ayrıca bide bu 16 menuyu istediğim zaman ekrana yansıtmam gerekiyor o kısmıda lookup ile yapmak daha iyi olacak.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

#14
Hocam lcd de karekter ayarlar iken cursor yanıp sönüyor fakat değiştirmek istediğim karekter üzerinde değil bir sonraki karekterde yanıp sönüyor.Sebebininin ne olduğunu anlayamadım.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Powered by EzPortal