ÇALIŞAN BİR KAYAN YAZI DEVRESİ VE PROGRAMI

Başlatan picman, 20 Temmuz 2006, 00:17:02

picman

arkadaşlar formda bir kaç kez yazmıştım bir kayan yazı devresi yapıyorum diye programı ilk başta asm ile yazmıştım bu sefer pic basic pro ile yazdım aşağıdaki link te programını ve proteusta çizilmiş devre şemasını veriyorum umarım işinize yarar sizden isteğim bu programı pic16f628 için uyarlamanız ve birde ekranda yazacak karakterleri eproma kaydetmek istediğim için karakter_al alt programında ki lookup komutu yerine epromdan okumayı sağlıyacak olan bir komut yazmanız epromlarla fazla uğraşmadığım için yapamadım eprom olarak 24c16 kullanmayı düşünüyorum

saygılarımla herkese başarılar .....
program ve devre şeması için tıklayın
Bilgi paylaştıkça artar..

Logan

Yazdığın program ve devre şeması güzel olmuş, ellerine sağlık.Ben de üzerinde ufak bir oynama yaptım.Mikro işlemciyi 16f628 olarak değiştirdim. Eprom problemine gelince, gerekli ayarları ve register atamalarını yaptım.Sana kalan sadece
KARAKTER_AL:;_______________J DEGİSKEN DEGERİNE GÖRE KARAKTER ALINIYOR________________________
 LOOKUP J,[" PICPROJE  ",5],KARAKTER
 RETURN

yerine;
i2cread sda1,scl1,$a0,eprom_add,[str eprom_data\50]

yazman olacaktır.Fakat epromdan okumadan önce, yazdığın programdaki, "TABLO" isimli etiketin altında bulunan bütün dataları, eproma kaydetmelisin.Bunu yapmak içinde
i2cwrite sda1,scl1,$a0,eprom_add,[yazacağın register]

komutunu kullanman yeterli olacaktır.
Devre şeması ve yeni program aşağıdaki linktedir.Takıldığın bir yer olursa sorarsın.Kolay gelsin.
http://rapidshare.de/files/26375833/Kayan_yazi.rar.html
Not:Devre Proteus 6.9 SP3 ile çizilmiştir.
İmza.

picman

Dostum ilgin için teşşekürler aslında proteusta senin yazdığın komut formatında ben denemeler yaptım fakat bi türlü olmamıştı gerçi üzerinde fazla uğraşamadım ama bakıcaz artık 628 için yaptığın uyarlamalardan dolayı teşekkürler devre seri epromla düzgün çalışırsa onan birde yazı efekti felan koymayı düşünüyorum bide sutun sayısını artırmayı düşünüyorum proje tamamiyle bitince forma koyarız diğer arkadaşlarda faydalanır tekarr teşekkürler çalışmalarında başarılar .........
Bilgi paylaştıkça artar..

ete

@Picman,

Yaklaşık 1 haftadır bir kayan yazı programı yazmak için yola çıkmış idim. Bu işi yapmanın ilk şartı öncelikle iyi bir kontrol devresi tasarlamak olduğu için önce nasıl bir devre ile sistemi kontrol edeyim diye çalışıyor idim. Bir devre tasarladım ve baktımki sen benim tasarladığım devrenin hemen hemen aynısını yapmışsın. Tek fark ben 74HC595 kullandım sen 74164 kullanmışsın. SOnuç olarak pek fark yok. Sonra programlamaya geçtim ve adım adım yazmaya başladım. 4 adet matriks ile çalışan bir program yazdım. Öncelikle işin mantığı üzerinden çalışan bir program yazıp çalıştırdıktan sonra gerekli düzenleme ve iyileştirmeleri yapmayı hedeflerken senin programı gördüm.
Aynı yolda ilerlerken senin benden 2 adım önde olduğunu gördüm ve kendi programımı yazmayı bıraktım. Çünki aynı olayı yeniden keşfetmenin bir anlamı yok idi.

Senin programı inceledim ve ufak tefek hatalar gördüm. Belkide hata değildir ama sonuçta görünüşü etkileyen hususlar.
Sıralamak gerekir ise;

1. Bazı Karekterlerin (P -E-R gibi harfler) birer sırası boş geçmektedir. Bu bir zamanlama hatası olmalı. Kayan yazıya dikkatli bakarsanız göreceksiniz.
2. Matriksin son sütünu kullanılmamaktadır. Dikkat ettim 32 adet veya 0-31 arası sütun var iken neden 0-29 sütun kullandın anlamadım.

Her neyse, bazı düzenlemeler yaptım. Öncelikle 16F628 ile çalışacak şekilde programı değiştirdim. Sonra Pic'in eepromunu hafıza olarak kullanmak üzere gerekli değişiklikleri yaptım. Bu hafıza yaklaşık 127 karekter alabilmektedir. Buda genelde kayan yazılar için yeterlidir diye düşünüyorum.

Sonra , sistemi 6 adet 8x8 matriks ile çalışacak hale getirdim ve son sütünlarıda kullanılır hale getirdim. Çalışan program ve simulasyonlar aşağıdaki linktedir. Faydalanmak isteyenler için iyi bir kaynak olacak umarım. Isis daha fazla matriks ilavesine pek müsaade etmeyecek sanırım. Ayrıca program hafızasıda dolmak üzere. Her matriks ilavesi değişken hafızasını 8 adet artırmaktadır. Bildiğim kadarı ile toplam 96 adet dizi değişkeni tanımlanabilir ancak kullanılan diğer değişkenlerle birlikte bukadar tanımlama yapılabilirmi tam bilmiyorum. Denemek gerekecek.
Kısaca 6 matriks den daha fazla denemeler için artık gerçek devreler gerekecek sanırım. Matriks artırma konusunda tecrübeye sahip arkadaşlar var ise deneyimlerini burada açıklarlar ise sevinirim.

http://www.hemenpaylas.com/download/1227003/KAYAN_1.rar.html

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

picman

arkadaşlar yardımlarınız için çok teşekkürler sutun sayısını 30yapmamın sebebi devreyi ben gerçek ortam da da yaptım ve 30 sutunluktu o yüzden proteusta denerkende öyle yapmışım o zaten önemli değil sutun sayısı progrtamda yapılacak ufak değişikliklerle halledilebiliyor aslında senin yaptığın gibi seri eprom değilde pic in kendi epromunu kuallansam daha iyi olacak sanırım çünki seri epromda bilgi okuma esnasında display taraması bozulabilir . yanlız benim anlamadığım ben seri eprom okuma komutu olan i2cread komutunu bir türlü çalıştıramadım
basit bir devrede denemeler yapıyorum ama bir türlü olmadı neyse
 ilgin için tekrar teşekkürler ederim . çalışmalarınızda başarılar.....
Bilgi paylaştıkça artar..

Gerok

Merhaba

Kaydırma kısmını bu şekilde değiştiriseniz sütun sayısını ne kadar artırsanızda kod şişmiyecektir

KAYDIR:
    s1=47 
    s2=46   
         for s3= 0 to 46 
          sutun[s1] = sutun[s2]
          s1=s1-1 : s2=s2-1
         next  
     sutun [s1]=veri 
 RETURN


s1,s2,s3 değişkenleri tanımlanmalıdır
Mum başka bir mumu yakmakla ışığından birşey kaybetmez...

Gerok

@ETE hocam
sutun sayısını 72 yaptım yazılımdada biraz değişiklik yaptım çalışiyor
kod 750 word a düştü ama sanırım bir yerde hata yaptım.
Bir nokta kaymış. Nerde hata yaptım acaba  :roll:


http://www.hemenpaylas.com/download/1231513/kayanyazi.rar.html
Mum başka bir mumu yakmakla ışığından birşey kaybetmez...

ete

Kaydır bölümünde s3 döngüsünü 71 değil 70 olarak yapmalısın.
Düzeltirsen yazılarda düzelecektir.

Kesmeyi kaldırmışsın. Bu durumda kaydırma hızını ancak gecikme ile kontrol edebilirsin. Tabiiki kesem olmayınca program biraz daha kısalıyor.

Arkadaşlar, biliyorsunuz dizi değişkenleri en fazla 96 adet kullanılabiliyor. Oda 16F877 de. Belki 18 serisinde dahada fazladır.
16F628 de ise en fazla 80 adet kullanılabiliyor. Bu durumda 10 matriks yani 80 sütun demektir. Peki sütün sayısını nasıl artırabileceğiz?. Diyelimki 628 kullanacağız ve sütün sayısını 80 değilde 144 adet yapmak istersem ne yapacağım.

BU soru için bir ip ucu vereceğim. İkinci bir dizi değişkeni tanımlarsanız en fazla galiba 64 tane tanımlamanıza izin veriyor. Bu durumda 80+64 =144 eder. Ancakprogramda bazı ilaveler gerekiyor.  bU ÇÖZÜM BENİM AKLIMA GELEN BİR ÇÖZÜM. Bakalım başka birisi daha değişik bir çözüm üretebilecekmi?.

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

picman

sutun kaydırma işlemi için düşündüğünüz kod baya zekice olmuş  :D  şimdi bende bi soru sorayım yine 16f28 de eprom hafızası sanırım 128 di 877 de kaç arkadaşlar bunu bilen var mı valla ben denemeler yapıyorum bi türlü seri epromdan okumayaı yapamadım da neyse bari pic in kendi epromuna yazayım dedim 16f628 kullanıyoruz o da en fazla 127 karakter olıyo 877 nin eprom hafızası nedir arkadaşlar yada 24c16 dan okuma yapabilen varsa bu programa dahil ederse sevinirim aslında çok basit cod ama ben yapıyorum bi türlü proteusta çalıştıramadım ama pic in kendi epromundan gayet güzel çalışıyor.  beyler sizden ricam şu seri eprom işine de bi el atın böylece 100 lerce karakter yazdıra biliriz.... :D
Bilgi paylaştıkça artar..

ete

16F876 kullanarak, 12 matrix led kullandım. Program ve devre aşağıdaki linktedir.

BU arada 16F877 ve 16F876 da eepromda 255 karekter yer alabilir.

Ete


http://www.hemenpaylas.com/download/1235049/kayan-876.rar.html
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sapkaliamca

Arkadaşlar ellerinize sağlık aklımda bulunan birsürü soruyu ortadan kaldırdınız elinize sağlık 1 şey kaldı anlamadığım karakterleri tanıtırken
LOOKUP OFSET,[_
   $3F,$48,$48,$48,$3F,_      ;A   0-4
   $36,$49,$49,$49,$7F,_      ;B   4-9
   $22,$41,$41,$41,$3E,_      ;C   9-14


kullanılmış bunu neye göre yazıyoruz bir açıklaması yokmudur birde türkçe karakterler yok burada mesela (Ç,İ,Ğ,Ü,) gibi bunları nasıl tanıtacağız tşk ederim.
ŞAPKALIAMCA MUTLULUKLAR DİLER

ete

@Sapkaliamca,

Verilen hex değerlerini binary sisteme çevirip her bir binary değeri alt alta yazarsan 5 adet rakamın 7 x 5 şeklinde yanındaki harfi oluşturduğunu görürsün. Kısaca bu değerler matriks olarak harflari oluşturmaktadır.
Benzeri mantık ile türkçe karekterlerde oluşturulabilir ve yeni karekterler programa ilave edilebilir.

Bu program gerçekten basik kod yapısı ve düzgün çalışması ile örnek bir kayan yazı devresi ve programı oluyor. Biraz da imece usulü gelişmeye başladı buda pozitif bir olay. Meraklı arkadaşlardan Türkçe karekterleri oluşturmalarını bekliyorum.

Ayrıca kodun iyileştirilmesi için yapılabilecek şeyler var ise araştırılması da programın gelişmesi açısından yararlı olacaktır.

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

Gerok

Türkçe harfleri ekledim 5x7 olarak.
Aslında Türkçe harfler 8x8 de daha düzgün görünür.


http://www.hemenpaylas.com/download/1240810/kayan-876.rar.html
Mum başka bir mumu yakmakla ışığından birşey kaybetmez...

Gerok

@Picman  Bu karakter tablosunu neye göre oluşturdun?
Çünkü standart karakter setine göre tam tersi gibi geldi bana.
Mum başka bir mumu yakmakla ışığından birşey kaybetmez...

ete

Matriks sayısını 24'e çıkardım. Yani toplam 192 sütun çalışan devreyi yaptım.
Ancak isis simulasyonu yapmakta bayağı zorlanıyor. Gerçekte çalışırmı bilemem. Denemek isterdim doğrusu. Kaydırılacak karekter adedi 255 oldu.
İlgilenenler için dosyaların linki aşağıdadır.

http://www.hemenpaylas.com/download/1242444/kay_coksutun.rar.html

kolay gelsin

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