|
||||||||
Elektronik Kategorisinde ve Hobby Elektronik Forumunda Bulunan Elektronik Devre İstekleri Buraya Konusunu Görüntülemektesiniz => Alıntı: Gerçek Mesajı Gönderen s4vcı Merhaba Arkadaşlar Ben lise 1öğrencisiyim ve fizikten proje ödevi aldım ödevimi anlatayım yardımlarınız bekliyorum nasıl ...
![]() |
|
|
Konu Araçları |
|
|
#26 | |
|
Mυδταfα KεмαŁ Aτατüгκ
![]() ![]() |
Alıntı:
Motorun uçlarını döndürdüğünde bu sefer motor uçlarında elektrik oluşur ufak bir elektrikli motor al motorun dönen yerini çevirerek uçlarından ufakta olsa bir elektrik akımı alabilirsin
|
|
|
|
|
|
|
#27 |
|
Üye
![]() |
74LS83 ün bacak bağlantısı ve 3 bitlik toplayıcının bağlantıları 74LS83 ün 4 bitlik çıkarıcı devresi SN74LS85 in 4 bitlik karşılaştırıcı bağlantıları lzm |
|
|
|
|
|
#28 |
|
Geçerken Uğradım
![]() ![]() ![]() ![]() |
evet mesela bu kapı devreleri var ex-or ex-nor bunlar en basitleri tabi biz elektroniğe başladığımızda logic kapılardan başlamıştık okulda şuanda da elektronik M.Y.O. dayız.zaten önce yapacağım bi devreyi mantıken oluşturmalısn |
|
|
|
|
|
#29 |
|
Yabancı
![]() |
slm arkadaşlar cok fonsiyonlu hesap makinesi yapmak istiyorum yardımcı olurmusunz.Devre şeması felan lazım |
|
|
|
|
|
#30 | |
|
İstikbal Göklerdedir !
![]() ![]() |
Alıntı:
LCD göstergerli [Linkleri sadece kayıtlı üyelerimiz görebilir.ForumTR üyesi olmak için tıklayınız] Kaynak ve dökümanlar için aşağıya tıklayınız. [Linkleri sadece kayıtlı üyelerimiz görebilir.ForumTR üyesi olmak için tıklayınız] Kolay gelsin. Yazılım içeriği #define sil 1 #define solayaz 4 #define sagayaz 6 #define kursorgizle 12 #define displaykapat 8 #define birincisatir 128 #define ciftsatir4bit 48 //tus takimi tanimlamalari #define sut1 P2_0 #define sut2 P2_1 #define sut3 P2_2 #define sut4 P2_3 #define sata P2_4 #define satb P2_5 #define satc P2_6 #define satd P2_7 //cikis tanimlamalari #define Data P1 #define rs P3_4 #define rw P3_1 #define en P3_0 #define maks_karakter 10 enum ERROR { OK = 0, HATA = 2}; void tanitim(); // Fatih Yıldırım yzisinin LCD ye yazildigi islev void hesap_basla(); //hesap makinesi calismaya baslar char tustakimi_tara (void); void hesap_format (float f); void hesap_yaz (char *buf); //[Linkleri sadece kayıtlı üyelerimiz görebilir.ForumTR üyesi olmak için tıklayınız] sonuclarini LCD ekranina basmak icin kullanilan islev void hesap_islev (char token); //matematik islemlerinin yapildigi islev signed char rakam_test (char ch); //tus takimindan girilen karakterin rakam mi? nokta mi? islem operatoru mu? oldugunu belirleyen islev void ekranitemizle(void); //LCD'yi temizler. void Datakomut(int komut); //LCD'ye komut yazdirmak icin RS ve EN girislerini ayarlar. void Dataveri(char veri); //LCD'ye karakter yazdirmak icin RS ve EN girislerini ayarlar. void Datayaz(char veri); void lcdkur(void); //LCD'yi kullanima hazirlayan islev void gecikme(long int sure); //geciktirme islevi char tus(void); //tus takimi kontrolunun yapildigi islev //Program Kısmı #include <89c51rd2.H> #include "hesap.h" #include "stdio.h" #include "math.h" #include "stdlib.h" //Genel degiskenler static float sondeger; static float yenideger; static char sonislem; void main (void) //Degiskenler kurulur ve LCD icin kurulum islevi cagirilir. { lcdkur(); tanitim(); hesap_basla(); } void hesap_basla() { char sayi[maks_karakter+1], rakam; signed char pos; float k; // statik degerlerin baslangic degeri atandi: sondeger = 0; yenideger = 0; sonislem = 0; // Display acildiginda ekranda ilk olarak 0 gozukmesi icin. hesap_format(0); // Baslamadan once sayi dizisi (buf) temizlenir. pos = 0; for (; ![]() { rakam = tustakimi_tara(); if (rakam_test(rakam)) { // rakamin + olup olmadigi test edilir buf dizisine kaydedilir // ve LCD'ye yazilir. // Sayinin boyutu en fazla 8 dir. // eger sonuc - ise onune - isareti konmasi icin dizide bosluk birakilir. if (pos != maks_karakter - 2) { sayi[pos++] = rakam; sayi[pos] = 0; hesap_yaz(sayi); } } else { //sondeger saklanir, eger yeni bir islem secilirse // saklanan sayi ile islem yapilir. if (pos != 0) { k = atof(sayi); /////*********sayi string bilgisi double tipinde cift duyarli bir sayiya donusturulur *********///// if (sonislem == 0) sondeger = k; else yenideger = k; } // sayi dizisi sifirlanir. pos = 0; //sonislem degiskeninde en son secilen islem operatoru saklanir ve komut islenir if (sonislem != 0) hesap_islev(sonislem); if (rakam != '=') sonislem = rakam; else sonislem = 0; } } } void hesap_islev (char token) // Islemler yerine getirilir. "sondeger", "sonuc" degiskeninde tutulur ve //ardisik islemler icin tuslar test edilir. { signed char sonuc = OK; switch (token) { case '+' : sondeger += yenideger; break; case '-' : sondeger -= yenideger; break; case '*' : sondeger *= yenideger; break; case '/' : if (yenideger != 0) sondeger /= yenideger; else sonuc = HATA; break; } if (sonuc == OK) hesap_format(sondeger); else if (sonuc == HATA) hesap_yaz("*BOLME HATASI*"); } /**** ********************* Yardimci programlar********************* *****/ void hesap_format (float f) { char buf [maks_karakter+1]; float bolen = 100000000; float l; signed char boy=0, p=0; // isaret arti mi? eksi mi? if (f >= 0) buf[p++] = ' '; else { buf[p++] = '-'; f = -f; } if (f >= bolen) //eger hesaplanan islemin sonucu 100000000 den buyukse hata veririr. buf[p++] = 'E'; else while (p < maks_karakter && (bolen > 1 || f >= 0.0000001)) { bolen /= 10; l = floor(f/bolen); //sonuc basamaklarina ayrilir. if (bolen < 1 && bolen > 0.01) //sayinin varsa noktali kismi belirlenir buf[p++] = '.'; if (l != 0 || bolen < 10)//LCD ye gonderilecek karakterler sirasiyle diziye aktarilir. { buf[p++] = l + '0';// boy = 1; // } else if (boy) buf[p++] = '0'; f -= l*bolen; } buf[p] = 0; hesap_yaz(buf); } signed char rakam_test (char rakam) //tus takiminden girilen hane bir rakam,nokta veya islem operatoru olabilir. //Eger 1 donuyorsa rakam veya nokta , 0 ise islem operatoru { if ((rakam == '.')|| ((rakam >= '0') && (rakam <= '9'))) return 1; else return 0; } /**** ****************** giris/cikis programlari ************** ****/ char tustakimi_tara (void) { char key; while ((key = tus()) == 0x00) /* 0 ise tekrar tara */; return key; } void hesap_yaz (char *buf) // Islemin sonucu ekrana basilir. { signed char i; ekranitemizle(); // Once ekran temizlenir. for (i=0 ; buf[i] != 0; i++) { Dataveri(buf[i]); } } /*********** ****************** giris/ cikis yardimci programlar ****************** ******/ void tanitim() { char ad[]="FATIH ",soyad[]="YILDIRIM "; signed char i; ekranitemizle(); // Once ekran temizlenir. for (i=0 ; ad[i] != 0; i++){ Datayaz(ad[i]); } gecikme(9000); for (i=0 ; soyad[i] != 0; i++){ Datayaz(soyad[i]); } gecikme(9000); } void gecikme(long int sure) {long int i; for(i=0;i<=sure;i++); } void Datakomut(int komut) { rs=0; rw=0; en=1; Data=komut; en=0; gecikme(150); } void datayaz(char veri) // tanitim() islevindeki isimlerin yavasca kaymasini saglar { rs=1; rw=0; en=1; Data=veri; en=0; gecikme(1000); } void Dataveri(char veri) { rs=1; rw=0; en=1; Data=veri; en=0; gecikme(50); } void ekranitemizle(void) { Datakomut(sil); //ekrani temizler,kursoren sola gelir. Datakomut(birincisatir+15); // kursor en sagda. } void lcdkur(void) { Datakomut(ciftsatir4bit); // 8-bit ara birim - 1 satir. Datakomut(kursorgizle);// Display'i ac - kursor gozukmesin. Datakomut(solayaz+3); // kendiliginden arttirma- display sola kaysin. Datakomut(birincisatir+15); // kursor en sagda. } char tus(void) { char don; sut1=0;//1.sutunu kontrol et while(!sut1) { while (sata==0) {while (sata==0) if(sata==1);don='1';} while (satb==0) {while (satb==0) if(satb==1);don='4';} while (satc==0) {while (satc==0) if(satc==1);don='7';} while(satd==0) {while (satd==0) if(satd==1);don='.';} sut1=1; } sut2=0;//2.sutunu kontrol et while(!sut2) { while (sata==0) {while (sata==0) if(sata==1);don='2';} while (satb==0) {while (satb==0) if(satb==1);don='5';} while (satc==0) {while (satc==0) if(satc==1);don='8';} while (satd==0) {while (satd==0) if(satd==1);don='0';} sut2=1; } sut3=0;//3.sutunu kontrol et while(!sut3) { while (sata==0) {while (sata==0) if(sata==1);don='3';} while (satb==0) {while (satb==0) if(satb==1);don='6';} while (satc==0) {while (satc==0) if(satc==1);don='9';} while (satd==0) {while (satd==0) if(satd==1);don='=';} sut3=1; } sut4=0;//4.sutunu kontrol et while(!sut4) { while (sata==0) {while (sata==0) if(sata==1);don='/';} while (satb==0) {while (satb==0) if(satb==1);don='*';} while (satc==0) {while (satc==0) if(satc==1);don='-';} while (satd==0) {while (satd==0) if(satd==1);don='+';} sut4=1; } return don; } |
|
|
|
|
![]() |
| Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz |
| Konu Araçları | |
|
|
|
FrmTR Facebook |
FrmTR Twitter |
Vidyotup |
YorumTR | Haberler |
Okul Arkadaşım |
Kıbrıs |
Kısa Link |
Domain
|