|
Sayfa 2 Toplam: 2
Özel Karakter Yazdırma İşlemi
MOVLW B'00000100' ;ÜST 4 BİTİ GÖNDER
MOVWF PORTB
KMT
CLRF PORTB ;ALT 4 BİTİ GÖNDER
KMT
Yazdıracağımız özel karakterleri CGRAM’e kaydediyoruz, bunun için de önce CGRAM adresini LCD’ye 4 bit üzerinden komut olarak gönderiyoruz, daha sonra ise yazdıracağımız karakterin her bir satırının değerini veri olarak LCD’ye gönderiyoruz. CGRAM b’01000000’ yani H’40’ adresinden başlamakta ve her bir karakter 8 satır olduğundan karakterler arasında 8 fark olmakta yani tanımlayacağımız bir sonraki karakter H’48’ , sonraki ise H’50’ adresinden başlamaktadır. Bu şekilde CGRAM’e en fazla 8 karakter yazdırılabilir.
KRKTR_TABLO1
ADDWF PCL,F
RETLW H'04'
RETLW H'0E'
RETLW H'0E'
RETLW H'0E'
RETLW H'1F'
RETLW H'00'
RETLW H'04'
RETLW 8
LCD’yi 5x7 fontunda karakterler için ayarladığımızdan tabloya zil şeklinin 7 satırını kaydediyoruz, tablonun sonuna geldiğinin anlaşılması için en son olarak 8 rakamını döndürüyoruz. 0-7 arası özel karakterleri çağırmak için kullanıldığı için 8 sayısını seçtik.
--» b’00000100’ » h’04’
--» b’00001110’ » h’0E’
--» b’00001110’ » h’0E’
--» b’00001110’ » h’0E’
--» b’00011111’ » h’1F’
--» b’00000000’ » h’00’
--» b’00000100’ » h’04’
Siz de yukarıdaki tablo gibi 5x7 boyutunda bir tablo çizip istediğiniz kareleri doldurarak kendi şekillerinizi oluşturabilir ve hex değerlerini hesaplayabilirsiniz, ya da şu adrese girip resim üzerindeki karelere tıklayarak şeklinizi oluşturursunuz ve site de size şeklin otomatik olarak decimal, binary ve hex değerlerini verir.
KARAKTER
MOVF KRKTR,W
CALL KRKTR_TABLO1 ;TABLOYU ÇAĞIR
MOVWF TEMP ;KARAKTERİ DEĞİŞKENE AT
XORLW H'08' ;8 İLE XOR İŞLEMİ YAP
BTFSC STATUS,Z ;İŞLEM SONUCU 1 SE BASLA'YA GİT
GOTO BASLA
SWAPF TEMP,F ;DEĞİŞKENİN ALT 4 BİTİYLE ÜST 4 BİTİNİ ARALARINDA DEĞİŞTİR
MOVF TEMP,W
MOVWF PORTB
MSJ
SWAPF TEMP,F ;DEĞİŞKENİN ALT 4 BİTİYLE ÜST 4 BİTİNİ ARALARINDA DEĞİŞTİR
MOVF TEMP,W
MOVWF PORTB
MSJ
INCF KRKTR,F ;KRKTR DEĞİŞKENİNİ 1 ARTIR
GOTO KARAKTER
CGRAM adresini gönderdikten sonra 7 satır üzerinde oluşturduğumuz şeklin hex değerlerini tablodan çağırıyoruz ve LCD’ye 4 bit üzerinden veri gönderdiğimiz için de hex değerlerinin önce üst 4 bitini LCD’ye yüklüyoruz ve MSJ makrosunu çağırıyoruz, daha sonra da alt 4 bitini LCD’ye yükleyip MSJ makrosunu çağırıyoruz. Başka bir karakter daha oluşturmak isteseydik CGRAM adresi H’48’ den başlayacaktı ve gene karakterin her bir satırının hex değerlerini CGRAM’e yükleyecek sonra da istediğimiz zaman yazdıracaktık.
MESAJ2
ADDWF PCL,F
DT 0,"LCD UYGULAMASI",0,8
MOVF PCL,W
RETURN
Zil karakterini “LCD Uygulaması” yazısının başına ve sonuna 0 sayısını LCD’ye göndererek yazdırıyoruz. Bu CGRAM’e kaydettiğimiz ilk karakter olduğu için 0 sayısıyla LCD’ye yazdırdık, bir sonraki karakteri 1, sonrakini ise 2 ile yazdırabiliriz, diğer karakterler için de bu şekil de artarak gider ve en son karakteri yani 8. yi 7 sayısıyla LCD’ye yazdırabiliriz.
Uygulamanın Isis simülasyonunu buradan indirebilirsiniz.
LCD'ye Özel Karakter Yazdırma ASM Kodu
<< Başa Dön < Önceki 1 2 Sonraki > Sona Git >> |