Lcd de kayan yazi sorunu

Başlatan GuMgUmOk, 28 Mayıs 2009, 15:25:16

GuMgUmOk

Merhaba arkadaşlar LCD de Kayan yazi yapmaya çalışıyorum bir sorunum var bu konuda yardımlarınızı almak istedim.

sayi var byte
pause 200
sayi=$94
basla:
pause 200
lcdout $fe,1
lcdout $fe,sayi,"ferhat"
sayi=sayi-1
if sayi=$80 then sayi=$94
goto basla
end

Program kodu burda Yazı sağdan sola doğru kaymakta problem yok yalnız yazı en sona geldiğinde birden sönüp tekrar sağdan başlamakta .Yapmak istediğim en sola geldiğinde harflerin teker teker kaybolması..Buna nasıl bir çözüm önerebilirsiniz.

Logan

Hoşgeldin GuMgUmOk. Kullanmış olduğun LCD'yi yazmamışsın fakat öyle tahmin ediyorum ki 20 karakterlik. Aslında bu tarz bir program için algoritma oluşturman gerekiyor fakat en basit yöntem ile şu şekilde yapılabilir;

if sayi=$80 then sayi=$94


satırındaki $80 değerini $7A değeri ile değiştirirsen problemi çözebilirsin. Fakat bu legal bir yöntem değildir. LCD haritasında $7A,$7B,$7C,$7D,$7E,$7F, adreslerine denk gelen registerleri incelemelisin. Herhangi bir probleme sebep olabilir. Eğer bu yöntem tutmazsa;

if sayi=$80 then sayi=$94


satırından sonra;

lcdout $fe,sayi,"erhat"  :  pause 200
lcdout $fe,sayi,"rhat"  :  pause 200
lcdout $fe,sayi,"hat"  :  pause 200
lcdout $fe,sayi,"at"  :  pause 200
lcdout $fe,sayi,"t"  :  pause 200


Şeklinde bir çözüm de getirebilirsin. Kullanmakta olduğun LCD'nin desteklediği komutlar içerisinde kaydırma komutları da mevcuttur. Fakat $80 adresine gelince diğer taraftan çıkar mı bilmiyorum. Denemek görmek lazım. İyi günler, iyi çalışmalar...
İmza.

GuMgUmOk

Hocam Öncelikle Cevapladığınız için Teşekkür ederim.

Kullandığım LCD 20 Karekterli .

Hocam lcd nin ilk satırı $80 den basliyor o yuzden daha küçük yazdığım zaman işlemiyor. Ondan sonra önerdiğiniz yöntemde uzun kelimelerde çok sıkıntı yaratacak gibi duruyor :) Buna daha basit bir çözüm uygulama şansımız yokmu?

teknikelektronikci

GIRIS_YAZI:
               
Print At 1,1  

   For B2= 0 To 20
   LookUp B0, ["*** Ege Meslek Yuksek Okulu Endustriyel elek...  ?"], B1
   If B1 = "?" Then
   GoSub EKRAN_TEMIZLE
   GoTo start
   EndIf
   Print  B1
 
   B0 = B0 + 1
   Next B2
   DelayMS 180
   B0 = B0 - 20

   GoTo GIRIS_YAZI  




buyrun size lcd de kayan yazi  yaziyi istediginiz kadar uzun tutun
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!

zakbay



‘Tarih : 18 Ocak 2009

‘Derleyici : Proton Basic

Device 16F628
Declare LCD_DTPIN PORTB.4 ‘ Used for 4-line interface 
Declare LCD_ENPIN PORTB.3 
Declare LCD_RSPIN PORTB.2 
Declare LCD_INTERFACE 4 
Declare LCD_LINES 2Dim a As Byte

a = 0

TRISB = 0DelayMS 500

basla:

Print $fe,1,
"www.picpro.org Zafer AKBAY" 

DelayMS 200 

For a = 0 To 30

   Print $FE,$1E   ; önce sola kaydır
   DelayMS 150
Next

DelayMS 1000

For a = 0 To 30
  Print $FE,$18  ;daha sonra sağa kaydır
  DelayMS 150
Next
 DelayMS 2000
GoTo basla
Tek dostum çalışmak...

uardal

hocam çok  teşekkürler gerçekten çok işime yarayacak

izzethoca

birde bu komutları dene
include "lcdyaz.pbp"
i var byte                 
  basla:  
  lcdout $FE,$0E  'ÇİZGİLİ KURSÖR AÇIK
  for i=11 to 0 step -1
  if i=0 then
  for i=0 to 10
   if i=6 then pause 500
   lcdout $fe,1
  lcdout $fe,$80+i,"melis   " 'BİRİNCİ SATIRIN SOLA KAYMASINI SAĞLAR
  lcdout $fe,$ca-i,"irmak   "  'İKİNCİ SATIRIN SAĞA KAYMASINI SAĞLAR
  pause 100
  next
  endif
  if i=4 then pause 500
  lcdout $fe,1
  lcdout $fe,$80+i,"melis    "
   lcdout $fe,$ca-i,"irmak   "
  pause 100  
  next  
  goto basla
  end