PIC

CCS C’DE LCD DİSPLAYDE KAYARAK BİRLEŞEN YAZI YAZMA

NOT: 2020 YILINDA YENİDEN DÜZENLENMİŞ KODLAR AŞAĞIDAKİ VİDEODADIR. Kodlar videonun açıklamasındadır.

Merhabalar bu yazıda anlatacağım programı lcd display ekranında farklı bir yazı yazma tekniği olarak düşündüm .  Bu çalışmam için kendi geliştirdiğim orijinal bir çalışma diyebilirim. Bu havalı girişe aldanıp sakın HİPEROPTİK BASKÜLER DONDURUCU gibi düşünmeyin bildiğiniz ekrana yazı yazıyor. Bu arada en alta koyduğum videoda proteus simülasyonundaki devredeki displayde karasızlık mevcuttur. Bunun çözümü ile ilgili öneriniz varsa bana iletmenizi rica ediyorum.

lcd_kay1

Yukarıda da görüleceği üzere 1. satırda kullandığım PIC16F877A’ya ait kütüphaneyi ekledim.2. satırda fuses ayarlarını gerçekleştirdim standart fuses ayarları bu programda yeterlidir.3. satırda denetleyiciye komut frekansı elde etmekte kullanacağı osilatörün frekansını bildirdim. 4. satırda b portu pinlerinin kullanıcı tarafından giriş veya çıkış atamasının yapılacağı bildirilmiştir. 5. satırda lcdnin portb yi kullanacağı bildirilmiştir. Bu komutun lcd.c kütüphanesinin eklenmesinden mutlaka önce kullanılması gerekiyor(Eğer nedenini biliyorsanız lütfen bana bildirin.) .Aksi halde program derlenirken hata oluşmaz fakat lcd de yazı görünmez bu her lcd uygulaması için böyledir. 9. satırdan 15. satıra kadar setup ayarlarını yaptım.16. satırda set_tris_b(0x00); komutu ile tüm b portu pinlerini çıkış yaptım.17. satırda lcd_init() komutuyla lcd bundan sonraki komutları işlemek için sıfırdan başlatılmış olunur. buradaki init kısatlması Initializes kelimesinden gelir. Bu komut olmadan lcd komut işleme çalışmasına başlamaz ve bu komuttan önce yazılmış lcd komutları çalıştırılmaz.

lcd_kay2.jpg

18. satırda döngülerde kullanacağım int türündeki değişkenleri tanımladım.19. satırda ad ve yedek olarak çağıracağım iki diziyi tanımladım ardından for döngüsü yardımıyla bu dizilerin her elemanına boşluk atadım. 26. satırda char veri tipinde z değişkeni(tek karakter tutar.) ve isim olarak çağırdığım değişkeni tanımladım. isim ekrana yazdırılmak istenen kelimeyi yazdıracaktır. 27. satırda lcd_send_byte(0,0×01); komutuyla lcd ekranı temizlenir ve imleç sol başa gönderilir.

lcd_kay3

29. satırda while döngüsünü oluşturdum ve sonlandırma parantezini 53. satıra konumlandırdı. While döngüsünün içini 1 yaparak döngünün sonsuz olmasını sağladım. 31.satırda for döngüsünü i’yi 0’dan 29’a kadar 30 sayım yapar. Bunun altında j=30 dan başlayan 30 sayımlık bir döngü vardır.Açıkça görüleceği üzere i birr sayım yaparken j 30 sayım yapar. 35. satırda ad değişkeninin j. elemanı(boşluk elemanı) z’ye atanır. 36. satırda isim değişkeninin i. değişkeni ad değişkeninin j. değişkenine atanır. Her döngüde i. isim elemanı bir öncekine göre sola kayar .37. satırda printf(lcd_putc,”\f%s”,ad); komutuyla ad dizisi display ekranına yazdırılır.Komutun içindeki %s ifadesi ad dizisini ekrana yazdıran tip karakteridir.\f ise display ekranını temizleyen kontrol karakteridir.\f kullanılmasaydı ad değişkenine ait bir eleman displayde aynı anda birden fazla gözükecekti.38. satırda her harfin geçişi kolay görülsün diye 100mslik bekleme süresi koydum.39. satrda i eğer j ye eşit değilse z de bulunan boşluk karakteri ad dizisinin yine j. satırına atanır.42. satırda ise eğer j iye eşitse doğrudan bir sonraki sayıma geçilir. ad dizisi değişmez.Bunların yapılma sebebini açıklamak için şunu hayal edelim: İsim değişkeninin i=0. elemanı olan f harfi ilk olarak ad değişkeninin 30. elemanına atandı ve ekranda gösterildi. ad değişkenin 30.  elemanı tekrar boşluk oldu(ekrandaki f harfi hala duruyor o lcd hafızasındadır.). Sonraki sayımda f harfi 29. ad değişkenine atanır ve böylece display ekranında sürekli sola hareket eden bir f harfi görünür. f değişkeni ad[0] elemanına atandıktan ve ekranda n solda göründükten sonra i=j olduğu için bu sefer ad[0] boşluk yapılamaz ve üsteki dizi i=1 yapar.Bu sefer aynı şekilde a harfi soldan gelir. bu sırada f ekranda durur. i=j=1 olduğunda i=2 döngüsü başlar ve böylelikle bir önceki harf ve onu tutan ad elemanı değişmez. 50. satırda printf ( lcd _  putc , ” \f”);komutuyla display ekranını temizledim. ardında döngü başa döndüğünde ad değişkeninin aynı kullanılması için for döngüsüyle ad değişkeninin tüm elemanlarına yedekteki boşlukları atadım.

e-mail: fatih22alparslan@gmail.com

Ücret karşılığı proje için whatsapp:

https://wa.me/message/4DTQQTTMLPFWC1

proteus simülasyonuna ait video:

CCS C’DE LCD DİSPLAYDE KAYARAK BİRLEŞEN YAZI YAZMA&rdquo için 1 yorum

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: