PROTEUS DISPLAY SAYMA İŞLEMİ

Başlatan hasandemirkol, 02 Mayıs 2020, 18:52:22

hasandemirkol

MERHABA ÖNCELİKLE HAYIRLI RAMAZANLAR BENİM TAMAMLAMAM GEREKEN BİR VİZE ÖDEVİM VAR FOTOĞRAFTA GÖZÜKEN ŞEKİLDE TASARLANACAK KOD YAZILACAK BEN BİR KOD YAZMAYA ÇALIŞTIM FAKAT MAALESEF HATA ALDIM VE ÇALIŞTIRAMADIM YARDIMCI OLURSANIZ GERÇEKTEN ÇOK SEVİNİRİM ŞİMDİDEN TEŞEKKÜR EDERİM.

BEN ŞU ŞEKİLDE YAZMIŞTIM

#include <main.h>

int digit[10] = { 0x3F 0x06 0x5B 0x4F 0x66 0x6D 0x7C 0x07 0x7F 0x6F };

int yuzler=9, birler=0, onlar=0;

void main()
{
   set_tris_b(0x00);
   output_b(0x00);
   set_tris_c(0x00);
   output_c(0x00);
   while(TRUE) {
     output_d(digit[birler]);
     output_c(digit[onlar]);
     output_b(digit[yuzler]);
     birler++;
     if(birler==10) {
        onlar++;
        birler=0;
     }
     if(onlar==10) {
        yuzler++;
        onlar=0;
     }
     if (yuzler==10) {
         yuzler=0;
     }
     delay_ms(500);
   }
}




ete

Dikkat etmen gereken şeylere pek dikkat etmediğini görüyorum. Madem bu sana ödev olarak verilmiş bu işi çözecek bilgiyede sahip olman gerekir.
İşe 7448 entegresi ile başlayalım. Bu entegrenin ABCD şeklinde binary girişi mevcut. Buraya desimal sayının binary kodlanmış halini girdiğin zaman çıkışından displayi sürecek rakam kodunu alıyorsun. Örnek verelim. 7448 girişinin binary gösterim şekli şöyle olsun %DCBA . Bu durumda bu girişlere %0000 bilgisini verdiğin zaman o na bağlı displayde sıfır rakamını göreceksin.
Girişe %0001 bilgisini verdiğin zaman ise displayde 1 rakamını göreceksin. Girişe%0111 bilgisini verirsen displayde 7 rakamını göreceksin.
Buraya kadar displayde nasıl rakam oluşturacağımızı anlamış olduk (umarım) şimdi rastgele pinlere bağlamış olduğun yada hocanızın bağlamış olduğu ABCD giriş pinlerine nasıl gereken değeri vereceğine bakalım.
Örnek olarak birler basamağına bakacak olursak PORTD nin sondaki 4 bitine bağlanmış.
Burada diyelimki 3 rakamını göstermek istiyoruz. PORTD=3 dersen PORTD=%00000111 şeklinde bilgi girmiş olursun. Ama senin bilgi gireceğin pinler PORTD=%DCBA0000 şeklindedir. Bu durumda bu işi doğru yapmanın iki yolu olacaktır. PORTD=(BIRLER)<<4 şeklinde yani PORTD ye 3 rakamını girip bunu 4 bit sola kaydırırsan sonuç PORTD=%01110000 şeklinde olacak ve hemen 3 rakamıda displayde görülecektir. Bir başka yol ise BIRLER=3 iken BIRLER=BIRLER<<4 ve PORTD=BIRLER şeklinde olacaktır. Kısaca ABCD pinlerinin hangi bitlere bağlandığına dikkat edip ona uygun bit kaydırma yapman gerekecek.
Bunu C dilinde nasıl yapacağınıda sen bulacaksın artık. Benden bu kadar.

Ete

fatih88

Sayın hasandemirkol lütfen sorularını sorarken küçük harfleri kullanmaya özen gösterir bağırmak anlamına gelir
Bide sayıcı yapmak için bu kadar büyük mcu ya gerek var mi
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

hasandemirkol

Alıntı yapılan: ete - 02 Mayıs 2020, 21:08:01Dikkat etmen gereken şeylere pek dikkat etmediğini görüyorum. Madem bu sana ödev olarak verilmiş bu işi çözecek bilgiyede sahip olman gerekir.
İşe 7448 entegresi ile başlayalım. Bu entegrenin ABCD şeklinde binary girişi mevcut. Buraya desimal sayının binary kodlanmış halini girdiğin zaman çıkışından displayi sürecek rakam kodunu alıyorsun. Örnek verelim. 7448 girişinin binary gösterim şekli şöyle olsun %DCBA . Bu durumda bu girişlere %0000 bilgisini verdiğin zaman o na bağlı displayde sıfır rakamını göreceksin.
Girişe %0001 bilgisini verdiğin zaman ise displayde 1 rakamını göreceksin. Girişe%0111 bilgisini verirsen displayde 7 rakamını göreceksin.
Buraya kadar displayde nasıl rakam oluşturacağımızı anlamış olduk (umarım) şimdi rastgele pinlere bağlamış olduğun yada hocanızın bağlamış olduğu ABCD giriş pinlerine nasıl gereken değeri vereceğine bakalım.
Örnek olarak birler basamağına bakacak olursak PORTD nin sondaki 4 bitine bağlanmış.
Burada diyelimki 3 rakamını göstermek istiyoruz. PORTD=3 dersen PORTD=%00000111 şeklinde bilgi girmiş olursun. Ama senin bilgi gireceğin pinler PORTD=%DCBA0000 şeklindedir. Bu durumda bu işi doğru yapmanın iki yolu olacaktır. PORTD=(BIRLER)<<4 şeklinde yani PORTD ye 3 rakamını girip bunu 4 bit sola kaydırırsan sonuç PORTD=%01110000 şeklinde olacak ve hemen 3 rakamıda displayde görülecektir. Bir başka yol ise BIRLER=3 iken BIRLER=BIRLER<<4 ve PORTD=BIRLER şeklinde olacaktır. Kısaca ABCD pinlerinin hangi bitlere bağlandığına dikkat edip ona uygun bit kaydırma yapman gerekecek.
Bunu C dilinde nasıl yapacağınıda sen bulacaksın artık. Benden bu kadar.

Ete

Teşekkür ederim hocam

hasandemirkol

Alıntı yapılan: fatih88 - 03 Mayıs 2020, 00:23:57Sayın hasandemirkol lütfen sorularını sorarken küçük harfleri kullanmaya özen gösterir bağırmak anlamına gelir
Bide sayıcı yapmak için bu kadar büyük mcu ya gerek var mi
Fatih bey bağrmak anlamında söylemek istemedim ama yine de eğer öyle göründü ise bir daha dikkat edeceğim teşekkür ederim uyarınız için.

fatih88

Biz size bağırdınız demedik o anlama geliyor büyük harf kullanmak sizi incitmek değil niyetimiz bence sen bu sayiciyi yapabilirsin o potansiyel var dizilerden fonksiyon almayı öğrenmişin biraz çabala olmadı tekrar görüşelim
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

Powered by EzPortal