LCD YE 4 karakter şifre yazdırma

Başlatan eprom_20, 06 Ocak 2012, 22:59:55

eprom_20

Sayın ETE hocam,

telefon aramalı alarm devresini (orjinali lcd'siz) lcd gösterge eklemek istedim,sizin dersleriniz yardımıyla ancak keypad den yazdığım rakamları ard arda gösteremiyorum,ayrıca eproma yazılan şifredede hata olduğu kanısındayım ama tam emin değilim,,,Yardımcı olurmusunuz,,,

ete

#1
Bu sorun artık iyice klasik bir sorun oldu. Yüzlerce defa nasıl yapılacağını anlattım.
Biraz kafanızı çalıştırmanız sizi çözüme götürecek ama aklınıza gelmeyince olmuyor işte.
10 tabanına göre sayı sistemini kullanıyoruz. Bu sistemde sayılar nasıl gösteriliyorlar?
123 saysını ele alalım.
1 sayısı yüzler hanesidir. 1*100 şeklinde ifade ediliyor.
2 sayısı onlar hanesidir.  2 * 10=20 şeklinde ifade ediliyor.
3 sayısı birler hanesidir   1*1 şeklinde ifade ediliyor.
Bu sayıyı ekranda 1-2-3 tuşlarına basarak nasıl gösterebilirim dersen girilen tışları 10 tabanına göre sayı oluşturarak gösteririm dediğini duyar gibi oluyorum. Bunu yapmanın yolu ise bir önceki sayı değeri bir hane büyüyeceği için değeri 10 ile çarpılmış olacaktır üzerine yeni tuş değeri eklenecektir. Örnekleyerek açıklayalım.
Basılan rakam tuşlarına TUS diyelim ekranda gösterilen değerede SAYI diyelim.
1 tuşuna basıldı    SAYI=SAYI*10+TUS    formülü ile SAYI=0*10+1=1 oldu ekranda 1 gösterildi.
2 tuşuna basıldı   SAYI=1*10+2 =12     ekranda 12 gösterildi
3 tuşuna basıldı  SAYI=12*10 +3 =123  ekranda 123 gösterildi.

Ne kadar kolay değilmi?  Silme tuşlarını kullanırkende benzer şekilde son girileni silmek için SAYI=SAYI/10 demen yeterli.

Artık programına bakmıyorum. Gerisini sen halledersin.

Ete

Edit: Programa da şöyle bir baktım. Gördüğüm kadarı ile eproma yazdırdıktan sonra yazma gecikmesi hiç koymamışsın. Her yazma yaklaşık 10 ms zaman alır. Bu süreyi koymaz ve yeniden bir yazma emri verirsen birinden birisi yazılmayacaktır.
Ayrıca her tuşa basıldığında bunu gidip eproma yazmaktansa bi kaç tuş (hafızan yettiği oranda ) basılmasını bekleyip sonra yazdırmak daha doğru olurdu. Yöntemin yanlış değil ama başka yöntemde araştırsan fena olmaz sanırım.

eprom_20

Çok teşekkür ederim hocam önerileriniz doğrultusunda hemen deneyeceğim,,,Allaha emanet olun,,,,,Saygılar

eprom_20

Hocam tuş takımı hakkındaki önerilerinizi inanın çok değişik versiyonlarda denedim fakat sonuca ulaşamıyorum,,,Hatta tuş takımını dahi ilk devreye göre değiştirdim ama yine aynı....LCD de ilk çıkan sayı hep 255 oluyor ve sonraki basılan tuşlar 255 ten ya artıyor yada eksiliyor,,,bu yüzden ilk devredeki TUS_DONUS' a atanan 255 i sizin devrenizdeki gibi PORTC=254 yaptım ama malesef tüm denemelerimde hep aynı sonuç çıkıyor,,,Diğer sitelerde verdiğiniz desimal sayı hesaplama örneklerinide inceledim,uyguladım ama sonuç hep aynı,,,nerde hata yapıyorum Hocam yardım edermisiniz,,,Ayrıca eproma veri kaydetme sorununa daha eğilemedim özür dilerim,,,,,Sağlıcakla kalın

ete

Programda pek çok hata var. IF THEN ELSE komutunu yanlış kullanıyorsun.
IF SAY=10 THEN GOTO ATLA
GOSUB AL
ENDIF
şeklinde bir kulanım olamaz. Yanlıştır.
Şayet THEN kelimesinden sonra aynı satırın devamına bir komut yerleştirirsen  Artık ENDIF kullanamazsın.
Yukarıdaki gibi bir komut dizisi şöyle yazılmalıdır.
IF SAY=10 THEN
    GOTO ATLA
    GOSUB AL
ENDIF

Programı epeyce düzelttim. Ama mantığını tam olarak kavrayamadım.  Bu nedenle daha fazla müdahale etmek istemedim.
Gerisini kendin halletmelisin artık.

Ete

eprom_20

Yardımlarınız için çok Teşekkür ederim hocam sağolun,,,,,Hocam program telefon armalı hırsız alarmı,proteus ta deneme yaptığım için devreyi orjinal çizmemiştim ama son yüklediğim dosyada orjinal devre ve çalışma şekli mevcut,dileyen arkadaşlar da faydalansınlar,,,,Bende önerileriniz doğultusunda devrede gerekli değişiklikleri yapacağım hocam,Allah razı olsun,,,,Sağlıcakla kalınız,,,Saygılar

Powered by EzPortal