Elektronik / Mikrodenetleyici Projeleri/

DS89C430 ile 7 Segment Display Göstergeli Hız Ölçümü

Sponsorlu Bağlantılar

Devrenin Çalışması :
Devre 4 kısımdan oluşmakta. Bunlar; Besleme katı, Sensör algılayıcı kat, mikrodenetleyici katı ve mikrodenetleyiciden elde ettiğimiz hexadesimal sayılarla 7 segment displey süren kod dönüştürücü katı.

Besleme katı DC 12V ile çalışmakta. Ancak displey ve mikrodenetleyici katı 7805 ile elde ettiğimiz regüleli 5V ile beslenmektedir. 12V ile opamlar besleniyor opamplar sensörlerden aldığı bilgiye göre karşılaştırıcı olarak çalışıyor ve potansiyometre ile belirlediğimiz referans gerilimini sensörlerden elde ettiğimiz gerilimle karşılaştırıp çıkışta 0 – 12 elde ediyoruz 12V u mikrodenetleyiciye direkt olarak uygulayamayacağımız için zenerle 5.1V a sabitleyip bu bilgiyi lojik 5V ve 0V olarak kullanmış oluyoruz.

P3_0 a verilen başlangıç sensörü denetleyici içinde Timer Mod2 sayıcısı başlatılıyor ve bitiş sensörü P3_3 ilede sayıcı durduruluyor Bu geçen zamanda elde ettiğimiz sayı k değişkenine atanıyor ve sabit bir sayıya bölünüyor. Bu sabit sayı sensörler arası uzaklığa göre değişir.

Bu bölme sonucu elde ettiğimiz sayı birler onlar ve yüzler basamağı olarak tek tek ayrılıyor ve P1 ve P2 den displeylere gönderiliyor Bu gönderilen sayı hex sayı formatında olduğundan 7 segment kod çözücü entegre olan 74LS47 ye gönderiliyor buradanda displeyler sürülüyor.

Hazırlayan: Serdal ARSLAN Projenin Kaynak Dosyaları DS89C430 ile 7 Segment Display Göstergeli Hız Ölçümü

Dosya indirme LINK listesi (TXT formatında) link-3324.zip şifre-pass: 320volt.com
Emeği geçen Kişilere Teşekkürler

Hız Ölçer Devre Şeması :

hız ölçer devresi

Malzeme Listesi :

U1 – DALLAS DS89C430 Mikrodenetleyici
12Mhz Kristal Osc
U5, U6 – 741 Opamp X 2
U2, U3, U4 – 74LS47 X 3
7 segment Ortak anot Displey X 3
U7 – 7805
D6 – 1N 4001
10K Trimpot X 2
Led X 3
51 V Zener X 2
C3 – 100Uf
C4 – 22uF
C6, C5 – 100nF X 2
C1, C2 – 22pF X 2
470R X 4
15K X 10
R12, R14 – 47K X 2
R16 – 10K
R6, R15 – 2 X 1K
10X20 Bakırlı Plaket

Hız Ölçer Devresinin C Kodları

#include 
#include 
unsigned int k,hiz,soniki,sayi1,sayi2,sayi3;
ilk() interrupt 2
{  
   while(!P3_0)
   {}
   while(P3_0)
   { 
	while(!TF0)
    {}
    TF0=0;
    k++;
   }
  hiz=300000/k;
  soniki=hiz%100;        	// Gelen sayinin 100'e göre modu alinarak son iki basamagi edildi.
  sayi1=soniki%10;         	// Ilk basamaktaki rakam bulundu.
  sayi2=(soniki-sayi1)/10; 	// Ikinci basamaktaki rakam bulundu.
  sayi3=(hiz-soniki)/100;	// Üçüncü basamaktaki rakam bulundu.
  P2=sayi2*16+sayi1;       	// Sayinin ilk iki basamagi P2'ye gönderildi.
  P1=sayi3;                	// Sayinin üçüncü basamagi P3'e gönderildi. 
  k=0;
  while(!P3_3)
  {}
}
void main(void)
{
EX1=1;
TMOD=0x02;
TH0=-255;
TL0=-255;
TR0=1;
P2=0;
P1=0;
 while(!P3_0&&!P3_3)
 {}
 EA=1;
 while(1)
 {
 }  
}

  • Cüneyt

    iyi akşamlar. Öncelikle emeğiniz için teşekkürler. Bu devre ile ilgili birşey soracaktım. her şeyi çok güzel paylaşmışsınız, ancak sensörler 4 bacaklıdır bildiğiniz gibi ve devre üzerinde nereye konulduğu gösterilmemiş. bu proje üzerinde çalışıyorum ve sensörü nereye bağlayacağımı bilmiyorum. Bu konuda beni aydınlatırsanız sevinirim. şimdiden çok teşekkürler. sadece bu değil tüm çalışmalarınızı taktir ediyor, saygılarımı sunuyorum. umarım kısa zamanda geri dönüş yaparsınız.

    • arkadaşım bence sensörler potların oraya bağlanmalı ama nasıl bağlanmalı nasıl tetiklenmeli bende bilemedim biri yardımcı olursa cok sevinicem bu devreyi yapmam lazım

  • BARIŞ

    sensör katı hangisi acaba?