LCD bilgi girişi ötelemek

Başlatan efe1409, 14 Nisan 2006, 14:41:08

efe1409

Arkadaşlar tuş takımı kullanılan sistemlerde LCD ye girilen karakterleri nasıl kaydırabiliriz.Mesela LCD ye 125 rakamını yazalım.Tuş takımında önce 1,sonra 2,daha sonra 5'e basıldığında ekrandaki kursörü nasıl öteleyebiliriz.Teşekkürler.
Vatanın bağrına düşman dayamış hançerini, Yok mudur kurtaracak bahtı kara maderini (Anasını)                                                                       Namık Kemal

Klein

hocam LCD'nin konfig bitlerinde öteleme ve öteleme yönünü seçebiliyorsun. Yani senin hiçbirşey yapmana gerek yok. veriyi yaz kendisi öteler. Ama illa öteleyecem  dersen : tuştakımından gelen bilgiyi bir array'a yazdır. o array'ı da olduğu gibi LCD'ye çak derim.
Ya da  bir değişken tanımla her tuşa basıldığında bu değişkenin içeriğini 1 artır. Bu değişkeni de LCD'nin sütun değeri olarak kullan. kolay gelsin.

efe1409

Kursör kaydırma ile bu konfigürasyon bitleri hangisidir.Nasıl ayarlanır.
Vatanın bağrına düşman dayamış hançerini, Yok mudur kurtaracak bahtı kara maderini (Anasını)                                                                       Namık Kemal

Lütfi AYYILDIZ

Lcd de ilk satırın adresi $80 dir. bunu bir  değişken olarak tanımlarsın
satir=$80 ve her bir veri girişinden sonra satir=satir+1 olarak yazdığında olay çözülmüş olur.
if satir=$d0 then
pause 10
lcdout $fe,1
satir=$80
endif
PAUSE 10
LCDOUT $FE,satir,veri
PAUSE 10
satir=satir+1
if satir=$90 then
satir=$c0
endif

Klein

LCD'ye komut olarak 00000111 yazarsan ileri öteleme yapmış olursun.
config şöyle  
rs  w/r  db7 db6 db5 db4 db3 db2 db1 db0
0   0      0     0     0    0    0     0    x     x

db1= 1 ise her veri yazıldığında cursor ileri kayar
db1= 0 ise her veri yazıldığında cursor geri kayar

db0= 0 ise display de kaydırma yapılmaz
db0= 1 ise display kaymalı çalışır

Kolay gelsin.

ete

Bence bu açıklamalrın hiçbirine gerek yok;

RAKAM=1
LCDOUT $FE,$02,"SAYI =",RAKAM,"    "

komutunu verdiğiniz zaman ekrana 1 yazılır.

RAKAM=12
LCDOUT $FE,$02,"SAYI =",RAKAM,"    "

komutunu verdiğiniz zaman ekrana 12 yazılır,

RAKAM=125
LCDOUT $FE,$02,"SAYI =",RAKAM,"    "

komutunu verdiğiniz zaman ekrana 125 yazılır.

Böylece sayılar ötelenmiş olur otomatik.

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

Klein

Alıntı yapılan: "ete"Bence bu açıklamalrın hiçbirine gerek yok;
ETE

Hocam haklı olabilirsiniz. Ama yukarıdaki açıklamalardan  ikisi zaten bu söylediğiniz  yöntem üzerine kurulu. Demek ki bu açıklamaya da gerek yoktu.  Ayrıca Böyle yaparak her seferinde tüm veriyi ve satır sütun değerlerini yazıyorsunuz LCD'ye. Bu da zaman demek. Çok efektif bir programcılık örneği değil.  

Bizim amacımız burada sadece şu nasıl , yapılır bu nasıl yapılır'ı anlatmak değil. En iyi nasıl yapılır ı da anlatmak olmalıdır diye düşünüyorum.  Eğer programınızı simüle ederseniz verdiğiniz örneğin, optimizasyondan ne kadar uzak olduğunu görebileceğinizi sanıyorum.  Herkese kolay gelsin.