Kalibrasyon menüsü tasarlama...

Başlatan leflau42, 28 Eylül 2017, 18:00:52

leflau42

Merhaba arkadaşlar bir kalibrasyon menüsü tasarlamaya çalışıyorum. 74hc595 ile 5 adet 7 segment display kontrol ediyorum. Ve hx710 adc'si ile bir sensörden bilgi okuyorum. Şimdi kalibrasyon menüsüne giriyorum orada sıkıntı yok 1. digit yanıyor sadece. Benim istediğim bir buton yardımıyla 1. digitte yazan rakamı hane hane 5.digite doğru kaydırmak. Sonra başka bir buton ile bu rakamı artırmak. Örneğin ilk hane de 0 yazıyor. Kaydırdım 00 oldu bir daha kaydırdım 000 oldu. Böyle böyle bunu en sola kaydırdım ve 00000 oldu. Daha sonra başka butonlarla bunu artırıp azaltıcam. 10000 , 200000, 1000 gibi. Nasıl yapabilirim bunu kafam durmuş durumda yardımcı olabilecek var mıdır ?

rexo

Programını verirsen daha çabuk cevap ve yardım alırsın.

ete

İstediğin şeyin iki boyutu var. Tam anlamadığım için iki boyutu var diyorum.
Birinci boyut da normal desimal sistemin haneleri söz konusu ise işin nispeten kolay.
Ama ikinci boyutta işin içinde sıfırlarıda hane hane kaydırmak istersen o zaman ekstra tedbirler düşünmek gerekir.
Önce normal desimal sayıları düşünelim.
İlk rakamın 1 olsun
sonra artır tuşuna bastın diyelim 1-2-3-4-5-6-7-8-9 oluncaya kadar tek hanede gösterebilirsin. Devamında sayı 10 olur ve bu durumda 2 display gerekir. Benzer şekilde 99'a kadar sayılar artar sonra 100 yani 3 haneye ulaşırsın.
Elbette sayıların da bir limiti var. Word tipi değişken en büyük 65536 rakamını taşıyabilirki buda 5 haneli bir rakamdır.
Displayde rakamları ayırd edip göstermek için DIG komutunu kullanmak faydalı olabilir.
SAYI DIG 0=birler hanesindeki rakamı verir. Bunu alıp ilgili displayde gösterirsin.
SAYI DIG 1=onlar hanesindeki rakamı verir.
SAYI DIG 2=yüzler hanesindeki rakamı verir.
SAYI DIG 3=binler hanesindeki rakamı verir.
SAYI DIG 4=onbinler hanesini sana verir.
Geriye bunları ilgli displaylere koymak kalıyor ki zor olmasa gerek.

Şimdi sayılarla uğraşmadığını ekranda gerekirse 0 - 00 - 000 - 0000 - 0000 da göstermek istediğini varsayarsak bunu nasıl yapabileceğini açıklamaya çalışayım. Bir çok yolu olabilir aklıma ilk geleni söyleyeyim.
HANE isimli bir byte değişkeni tanımlarsın. Başlangıçta HANE=0 dır ve bu ekranda tek hane gösterileceğini belirler. Sen tuşlarla hane kaydırmak isteyince HANE=HANE+1 yapılarak HANE=1 olur. Buda ekranda 2 display kullanıp 2 hane gösterileceğini belirler. Tekrar hane kaydırılınca HANE=HANE+1 formulü ile HANE=2 olur ve buda senin 3 haneyi ekranda göstereceğin anlamına gelir. Bunları nasıl göstereceğin üzerinde durmuyorum. Çünki bir iki if komutu yada Select Case HANE komutu ile bu yapılabilir.
Benzer yolla 5 haneye kadar çıkabilirsin.

Bu kadar az bilgi verilerek sorulan bir soruya epeyce uzun bir cevap verdim ama aradığın cevap içinde varmı emin değilim.
Ete

leflau42

Sorunumu çözdüm hocam teşekkür ederim meğer ben elimi iki bacağımın altından geçirerek kulağımı tutmaya çalışıyormuşum.   ???

elektroxi

Alıntı yapılan: leflau42 - 06 Ekim 2017, 11:43:12Sorunumu çözdüm hocam teşekkür ederim meğer ben elimi iki bacağımın altından geçirerek kulağımı tutmaya çalışıyormuşum.   ???

Nasıl çözdüğünü de bi zahmet yazsan da başka kişilerde faydalansa...

Powered by EzPortal