|
Sayfa 2 Toplam: 2
Kayan Yazı Mantığı
Yazıyı sağa kaydırma mantığı oldukça basit, araya belirli miktarda gecikmeler koyarak ve 1 hücre sağa kaydırarak yazıyı yazdırıyoruz. Yazının başlangıcı satır sonuna geldiğinde yazıyı başa alıyoruz ki sonra yazı yolunu kaybetmesin :) Tabi her yazdırmadan sonra da ekranı temizliyoruz, yoksa önceki karakterler ekranda kalır ve ekranın tamamı karakterlerle dolar.
Kod Analizi
ADRESE_GIT1
SWAPF ADRES1,F
MOVF ADRES1,W
MOVWF PORTB
KMT
SWAPF ADRES1,F
MOVF ADRES1,W
MOVWF PORTB
KMT
RETURN
;1. satırda istenilen adrese gider. 4 bit lcd mantığına göre gönderilecek verinin önce üst 4 biti, sonra da alt 4 biti data pinlerine gönderilir, bunun için de SWAPF komutuyla ilk ve son 4 biti aralarında değiştiriyoruz ve üst 4 biti portb'ye aktarıyoruz, sonra tekrar aralarında değiştirerek alt 4 biti portb'ye aktarıyoruz. Kodun üst kısımlarında ADRES1 değişkenine b'10000000' binary sayısını ilk değer olarak yüklemiştik. Bu değerle yazıyı 1. satır, 1.sütundan başlatmış oluyoruz. 16x2 lcd ekranda ilk satır adresleri b'1000d3d2d1d0' değeri veri pinlerinden lcd ye gönderilerek seçilir. 2. sütunu seçmek için d0 1, d1, d2, d3 ise 0 yapılır ve diğer sütun adresleri de bu şekilde artarak gider.
ADRESE_GIT2
SWAPF ADRES2,F
MOVF ADRES2,W
MOVWF PORTB
KMT
SWAPF ADRES2,F
MOVF ADRES2,W
MOVWF PORTB
KMT
RETURN
; 2. satırda istenilen adrese gider. ADRES1 değişkenine ilk değer olarak b'11000000' değerini yüklemiştik. 1. satır seçiminden farklı olarak 6. biti de 1 yapıyoruz.
KAYDIR
INCF ADRES1,F
MOVF ADRES1,W
ANDLW B'10001111'
MOVWF ADRES1
INCF ADRES2,F
MOVF ADRES2,W
ANDLW B'11001111'
MOVWF ADRES2
CALL UPUZUN_GECIKME
CALL UPUZUN_GECIKME
CALL UPUZUN_GECIKME
TEMIZLE
GOTO BASLA
;Belirttiğimiz adresi her yazma işlemi tamamlandıktan sonra 1 sağa kaydırır ve ekranı temizler. 1.satır adresini b'10001111' sayısıyla AND işlemine tabi tutuyoruz ki 16. sütundan sonra yazı 1. sütuna dönsün. 2. satır adresini de aynı sebepten dolayı b'11001111' sayısıyla AND'liyoruz.
Isis simülasyon dosyalarını buradan indirebilirsiniz.
<< Başa Dön < Önceki 1 2 Sonraki > Sona Git >> |
|
|