28 Eylül 2008 Pazar

PIC16F877 ile kayan yazı yapmak

Pic ile kayan yazı yapmak aslında çok kolaydır. Siz PIC ile displaye satır ve sütün bilgisi vererek sırasıyla ledleri yakarsınız. PIC bu işi o kadar çok hızlı yaparki siz de bu noktalar bütününü sanki hepsi bir anda yanıyormuş gibi görürsünüz. Böylece harfler ve şekiller orataya çıkar.
Aslında her bir led farklı zamanlarda yanıyor. Ama insan gözü belli bir hızın üstündeki değerleri algılayamadığı için sanki hepsi birden yanıyormuş gibi algılar. PIC BASIC te delayms komutu var. Bu komuta eğer 1 değeri veriseniz siz ledlerin hepsini bir anda yandığını görürsünüz, tabi bu göz yanılgısıdır. Eğer Delayms değerini 1000 felan yaparsanız noktaların tek tek yandığını görebilirsiniz.
Şimdi işin yapılışına gelelim. Bize lazım olanlar bir adet PIC ve PIC çalıştırmak için gerekli olan kristal ve kondansatörler ayrıca 8*8 yada 7*5 displayler.
Kayan yazımızın sütün bilgisi çok önemli, sonuçta ona göre bir plan yapmamız gerekecektir. Normalde eğer pic 16f877 kullanırsanız PIC harici hiç bir entegreye ihtiyaç duymadan 16 sütün 8 satırlık bir kayan yazıyı yapabilirsiniz.
Bunun için sadece PIC 16F877 ve 2 tane 8*8 lik display yeterli olacaktır.

Ama daha çok sütüna ihtiyaç duyarsanız ,o zaman PIC in bacak sayılarını çoğalmanıza yarayacak çoğaltıcısı entegresi kullanmanız gerekecektir. Size 4 giriş 16 çıkışlı 74158 çoğaltıcı entegresini kullanmanızı tavsiye ederim. Böylece PIC in 4 çıkışını 16 ya çoğaltmış olacaksınız. Yani normalde 8 çıkışınıda direk displaye bağlarken şimdi bu 8 çıkışını 2 adet 74154 e bağlayarak 32 sütüna sinyal gönderebiliyor olacağız. Bu mantıkla araya istediğiniz kadar çoğaltıcı entegre sürerek satır ve sütün sayınızı çoğaltabilirsiniz.



Ben bir adet PIC 16F877 ve iki adet 74154 kullandım. Böylece 8 satır 32 sütünlü bir kayan yazı yaptım. 74154 ün çalışma diyagramını aşağıda görebilirsiniz.
Mantıken herşey çok güzel gibi görünsede pratiğe geçtiğimizde ufak bir sorunumuz oldugunu göreceksiniz. 74154 ler arasında bir senktranizasyon proglemi oldugunu göreceksiniz. Yani bir tanesi işlem yaparken diğerini kapatmamız gerekecektir. Bunu yapmazsak işler biraz karışacak. O yüzden bunuda düşünerek 74154 entegrelerimizi anahtarlayacak küçük bir entegre yada yine 74154 kullanabiliriz.




Birinci entegreye yani ilk 16 sütüna sinyal gönderdiğimiz zaman bu diğer entegreyi kapatmalıyız bunun içinde E1 ve E2 girişlerine HIGH sinyali yollayarak değerleri sıfırlıyoruz.
Sıra ikinci entegreye sinyal göndermeye geldiğinde bu seferde birinci entegrenin E1,E2 değerlerini HIGH yaparak sıfırlıyoruz. Bu işlemde çok hızlı olacaği için ekranda biz normal yazılarımızı görebileceğiz. Bu mantığın devre üzerinde anlatığı aşağıdaki gibidir.




Aslında bu olay çok basittir , sanki puzzle oyunu gibi. Yapmanız gereken neyin nerde kullanıldığını bilmek, gerisi aynı puzzle.Geriye elemanları alıp boşlukları doldurarak bağlantıları yapmaya kalıyor.

8*8 display için satır ve sütün bilgilerini gösteren bağlantı şeması şöyle. Buna bakarak doğru bağlantıyı yapabilirsiniz.

1 yorum:

Unknown dedi ki...

çalışma mükemmel bende bu konuda bi çalışmak yapmak istiyorum bana yardımcı olabilirmisiniz ? mail adresim alput@msn.com