4X4 NUMERİK KEYPAD PROGRAMI İÇİN YARDIM

Başlatan border, 27 Aralık 2008, 02:04:21

border

4X4 keypad  ile istenilen sayıyı 7 segmentte gösteren bir devre yaptım devre 3 segmentli programı yazdım fakat yazılan rakamların hesap makinesindeki gibi peşi sıra yazılmasını beceremedim. yani ilk basılan sayı birinci segmente gösterirken 2. basılan sayı  , birincide gösterirken ilk basılan 2 segmente göstermsi lazım. kısaca hesap makinelerindeki gibi  kullandığın dil basic bana sadece bunun mantığını anlatacak bir arkadaşım olursa sevinirim .her şey tamam burada takıldım kaldım.  :lol:
yorum yapma, üret

OG

Programı buraya yaz ki yorum yapılsın.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

ete

Burada her hangi bir bilgi vermeden yalnızca yapamadım dersen tabiiki alacağın cevaplarda yalnızca tarif şeklinde olacaktır.
Bu konu bir kaç defa bu forumda işlendi. İşin temelinde 10 tabanına göre sayı sisteminin kullanılması yatıyor. Kullandığın sayıların 10 tabanına göre nasıl yan yana getirildiğini biraz düşünse idin hemen buluverecektin ama nedense her kes düşünmek yerine örnek aramak peşinde koşuyor.

Maddeler halinde açıklıyorum.
1. ilk rakam tuşuna bastın. Diyelimki TUŞ=6 olsun. Hemen bu sayıyı en sağdaki displayde gösterdin. Diğer iki displayde normalde sıfır gösterilmesi gerekir. Bunu şöyle sağlaman lazım. Displeyde gösterilecek sayı, RAKAM değişkeni altında tutulsun. İlk tuş 6 idi hemen RAKAM=6 dedin ve program RAKAM içinde kayıtlı değerin ilk hanesini aldı (DIG 0) ve en sağda gösterdi bu 6 rakamı olacaktır. Ikinci digiti aldın (Dig 1) oda 0 dır çünki rakam zaten tek haneli durumda. Onuda gösterdin ve 3. digiti aldın (Dig 2) oda sıfır ve sonuçta ekranda 006 sayısını gördün.

2. Şimdi 2. tuşa bastın buda TUŞ=4  olsun. Şimdi RAKAM=TUŞ dersen ekranda yalnızca 4 sayısını göreceksin. Halbuki 64 görmen gerekiyor. 64 rakamına bir bak nasıl oluşmuş,   6 sayısı 10 ile çarpılmış 60 olmuş çünki bir hane sola kaydı bu 10 ile çarpılması anlamına geliyor. Buna yeni tuş değeri eklenmiş ve RAKAM=64 olumuş.
O halde, sen her tuşa basıldığında bir formül uygulaman gerek. Şöyle,
Rakam=Rakam*10+Tuş.  İlk rakam değeri 6 idi. Bunu 10 ile çarpınca 60 oldu ve buna yeni tuş değeri olan 4'ü ekleyince yeni rakam değerimiz 64 oldu. Şimdi bunu ekrana verelim. İlk digit (Dig 0) 6 dır en sağda 6 sayısını verdik. 2. digit (Dig 1) 4 dür bunuda ortadaki digite verdik. en soldaki ise sıfırdır. O halde ekranda 064 sayısını görmemiz gerek.

3. Şimdi bir kez daha tuşa basalım ve bu sefer basılan 2 olsun. Hemen formülü işletelim. Rakam=Rakam*10+Tuş = 64*10+2=642 işte gördün ne kadar kolay. Ekran da gösterme sistemi ilk digit olarak 2 yi ikinci digit olarak 4 ü ve son digit olarakda 6 yı gösterince ekranda 642 sayısını görmüş olacaksın ve iş kolayca halledilmiş olacaktır.
Hepsi bu kadar.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

border

evet hocam haklısınız  yanlız gecenin 2 sinde başımda kazan gibi olunca işi biraz kısa kesmek istedim . sabah erken kalkıp yine sitede dolaşırken sizin daha önce yazmış olduğunuz açıklamaları buldum .zaten sizin dersleriniz. sayesinde oldukca yol aldım . sizin yazılarınızı bulunca dikkatli bir şekilde okuyup anlamaya çalışıyorum. 40 ından sonra biraz zor oluyor .
  sağolun var olun yine hiç erinmeden bana yardımcı olmak için yazmışsınız . size çok teşekkür ederim . bu yazı sadece bana değil inanın benim gibi birçok kişiye yol gösterecektir.
  tekrar size teşekkür ederim. sorunu çözdüm. yola devam.
yorum yapma, üret

DumrulBey

Bu işi formulle halletmek bir yolu ama biz hesap makinesi yapmıyorsak PIC içine gereksiz kod gömmenin anlamı ne? Bence kaydırma (shifting) komutları kullanılarak yapılmalı...
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)