Kayan Yazı ve Mesaj Projeleri

Başlatan XNHCX, 05 Ocak 2003, 17:28:27

SERRO EFE

o pause komutunu öylesine yazmıştım.
kaydırma ise karakterin tutulduğu degişkenden sıra ile gösterilecek değişkenin içersine almak için yani tek karakterin üst satırı gibi düşünebilirsin.

akkuzu1969

Alıntı yapılan: "vatandas30"evet senin verdiğim ipucundan yola çıkarak yazdım.
şu an 877 ye uyarlamaya çalışıyorum ama program derlenirken hata veriyor.

Vatandaş.. merhaba.
74164 shıft register ve pic kontrollü basit bir kayan yazı devresi konusunda yardımcı olabilirmisin? nezamandır 7 satır 16 sütun 74164 entegreli devre üzerinde çalışıyorum.ama başarılı olamadım.bu konu hakkında bilg verirseniz çok memnun olacağım.şimdiden teşekkür ediyorum.

baykalll

COK TESEKKURLER :lol:  :lol:  :lol:  :lol:

vatandas30

akkuzu.
devresi hakkında mı yoksa programı hakkında mı . ne tür bir bilgi istiyorsun.

SERRO EFE

vatandas 30 yaptığın klevye okuma uygulamasının mantığını biraz anlatabilirmisin.

vatandas30

ben bunu aşağıda linkini verdiğim mhk üstadın programından aldım. ve kendi programına uyguladım. ama önce klavyede kodlar nasıl üretiliyor bunu epey bir inceledim. osiloskopla falan baktım ve ürettiği kodları buldum. link şu:
https://www.picproje.org/index.php/topic,4607&start=0&postdays=0&postorder=asc&highlight=

klavyede bir tuşa basılınca clock sinyali ile senkronize olacak şekilde kodlar üretiliyor. bırakıldığında da hem bırakma kodu ve arkasından da genelde yine basma anındaki kod üretiliyor. yapacağınız programda karakterler çift olmaması için bırakılma anındaki kodları gözardı etmeniz gerekiyor. mhk üstat da bunu çok güzel yazmış. programı incelerseniz anlarsınız. klavyenin tuşlarına ait kodları da aşağıda veriyorum.
http://rapidshare.de/files/16255361/Klavye.pdf.html

türkçe karakterler tabloda yok. ama klavye resminin üzerinde var.
kolay gelsin.

SERRO EFE

Verdiğin bilgiler için teşekkür ederim.
Kaydirma kısmındaki kodları kısalta bildinmi. Ben bu gün daha önce verdiğim kaydırma üzerine biraz çalıştım.
kay: 
    low portb.2 
    high portb.2 
    if say = 8 then  ss 
   satir1 = satir1 << 1 
    satir1.0 = sayi.7 
   sayi = sayi<<1 
 goto göster

(bir karakterin ilk satırı için.)
ben bu şekilde kaydırdım.

vatandas30

senin verdiğin kodlar anladığım kadarı ile bir değişken için. 80 sütunda 10 tane değişken var bir satırda.yani bu işlemi hemen hemen tüm değişkenler için yapmak gerekiyor. biraz kısalttım ama daha fazla kısaltamadım. ekrana gönderme kısmında da her satır için 9 kere shiftout komutunu kullanmam gerekiyor. bunu da array değişken kullanarak kısaltmaya çalıştım. (bit) ama bu seferde çok titreme oluyor.

SERRO EFE

Bende 56 sütun için 7 adet shiftout kullanıyorum.Bu kodları tüm değişkenler için uygulamak gerekiyor.

vatandas30

senin ekran kısmı da böyle mi. herhalde burası kısalmıyor. çok uğraştım ama kısaltamadım.

tarama:
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir19]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir18]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir17]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir16]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir15]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir14]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir13]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir12]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir11]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir10]  
PORTC=%01111111
PAUSE 1
PORTC=%11111111


ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir29]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir28]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir27]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir26]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir25]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir24]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir23]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir22]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir21]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir20]
PORTC=%10111111
PAUSE 1
PORTC=%11111111

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir39]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir38]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir37]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir36]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir35]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir34]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir33]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir32]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir31]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir30]
PORTC=%11011111
PAUSE 1
PORTC=%11111111

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir49]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir48]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir47]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir46]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir45]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir44]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir43]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir42]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir41]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir40]
PORTC=%11101111
PAUSE 1
PORTC=%11111111

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir59]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir58]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir57]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir56]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir55]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir54]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir53]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir52]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir51]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir50]
PORTC=%11110111
PAUSE 1
PORTC=%11111111

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir69]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir68]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir67]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir66]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir65]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir64]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir63]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir62]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir61]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir60]
PORTC=%11111011
PAUSE 1
PORTC=%11111111

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir79]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir78]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir77]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir76]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir75]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir74]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir73]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir72]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir71]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir70]
PORTC=%11111101
PAUSE 1
PORTC=%11111111

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir89]  
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir88]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir87]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir86]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir85]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir84]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir83]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir82]
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir81]  
ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir80]
PORTC=%11111110
PAUSE 1
PORTC=%11111111

return

(bu arada birşey soracağım. sen bu kodları buraya nasıl yapıştırıyorsun?)

SERRO EFE

Evet bende de aynı şekilde. ama kısaltmak istersen bir lookup tablosu oluşturup değişkenleri sıra ile alıp.tek shiftout ile kullanabilirsin.kodları ise üstte diyez
  • sembolü var ona bikere tıkla sonra kodu yapıştır tekrar diyeze tıkla gönder.

vatandas30

lookup tablosu olmuyor. bildiğim kadarıyla bu tablonun kullanılabilmesi için bu değişkenlerin bir etiket altında olması lazım. yani;
lookup i, [etiket1, etiket2.......], j

SERRO EFE

Vatandas 30 senin etiket dediğin branch komutu ile kullanılıyor.
Benim ilk tasarladığım yazıda karakterlerin hepsini ayrı değişkenlere alarak lookup2 tablosundan seçip göstermiştim.Tabi karakter sayımda sınırlı kalmıştı.

Lookup2 komutunun değer yerlerine değişken alabiliyorsun
lookup2 x,[sayi1,sayi2,sayi3],z  

Veli B.

ShiftOut DATAPIN1,CLOCKPIN1,1,[gsatir89,gsatir88,gsatir87,gsatir86.....gsatırn]


Bir de böyle  deneyin.Daha lezzetli olur. ;)

vatandas30

teşekkür ederim sayın katana.
böyle daha kısa oldu.