2x16 LCD'de sadece belirli karakterleri değiştirmek

Başlatan humanus, 18 Mart 2009, 01:27:36

humanus

2x16 karakter bir LCD kullanıyorum. Assembly olarak komutları yazdım, sorunsuz yazabiliyorum. Üst satırdaki metin aynı kalmak üzere, sadece alt satırda bulunan üç karakteri sürekli değiştirmek istiyorum. Yani üst satırda sürekli aynı mesaj yazılı iken alt satırda saat ve dakika gösterimi gibi. Bununla ilgili ASM kodlarını bilen bir arkadaş varsa yardımını bekliyorum.

tayyar

asm den anlamam ama lcd de istedigin satır ve sütüna gidebilecegin komutlar var (en azından pbp ccs ve hitech te var) onlara bakarsan yardımcı olabilirler sana
--EGEMENLİK KAYITSIZ ŞARTSIZ MİLLETİNDİR--

ete

Bu konuda temel prensip kursör denilen nesneyi ki yazı yazılacak noktayı gösterir yazma işlemini yapacağın yere taşımaktır. Kursör LCD de genelde sanal bir eleman olarak kullanılır. Ortada görünmez ama hesaplamada onu nereye taşırsan yazı oraya yazılır diğerlerinin şekli yeri değişmez.
Örnekle açıklayalım.
LCD de ikinci satır yazı yazmanın yolu önce $FE komut bilgisini LCD ye yollamak ve ardından kursorün yerini belirlemek için $C0 değerini LCD ye yollamak gerekiyor. Sorunsuz yazabildiğine göre bu işlemi yapıyor olman gerek.
Burada kullanılan $C0 değeri LCD nin ikinci satırında ilk karekterin yerini göstermektedir. Yani kursör, bu komutla ikinci satır ilk karekter hanesine taşınmaktadır. Böylece peşinden gönderilen yazı değerleri ile ilk yazı orada belirecektir.
Şimdi bu noktada LCD ye $C0 değilde $C8 yollar isen kursör otomatikman ikinci sırada 9. karekter hanesine taşınmış olacak ve artık yaz dediğinde yazı bu hane dahil olmak üzere buradan itibaren yazılacaktır.
İşte genel prensip budur. Yapacağın iş $C0 değeri değil kaçıncı karekteri değiştirecek isen oranın sayısını LCD ye gönder ve sonra yazılacakları aktar. Kullanacağın alan (karekter adresi) 2x16 karekter LCD de $C0 dan başlıyor ve $CF ye kadar uzanıyor.

Hepsi bu kadar.

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

humanus

Arkadaşlar verdiğiniz değerli bilgiler için, özellikle Ete hocam, çok teşekkür ediyorum. Netlikle anladım, bugün uygulayacağım. İyi çalışmalar.

humanus

Ete hocamın önerdiğini uyguladım ve kusursuz oldu. Ben alt satırın 6.karakterinden yazdırdığım için sadece H'C6' yazdım, yeterli oldu, ayrıca alt satıra geçmek için H'FE' yazmam gerekmedi. Belki başka bir arkadaşa yardımcı olur. İyi çalışmalar.