7 segment displayda 0-99 arası sayaç yapımı sayılar butona bastıkça artıp azalacak

Katılım
19 Haz 2019
Mesajlar
9
Puanları
1
Yaş
23
Herkese sağlıklı mutlu günler. Ccs c compiler de yeniyim. Seven segment ortak katotta pic16f877 yardımıyla 0-99 arası ileri geri sayaç yapmam lazım. Sayılar ra0 pinine bağlı pull down resistör ile 0-99 arası ra1 pinine bağlı pull up resistör ile 99-0 arası saymasını istiyorum. Butona basınca bir bir azalmasını yada bir bir artmasını istiyorum. Seven segment ortak katot un bağlı olduğu portlar c portudur. Bana yardımcı olabilir misiniz? Şimdiden teşekkür ederim.
 
Son düzenleme:
Display için çıkış belirtmemişin fakat ben b portunu tercih ettim.Çıkış alacağın döngü "void segment_display" döngüsü fakat oraya herhangi bir algoritma aklıma gelmedi.Bit bit işlem yaparım fakat gereksiz ve uzun bir kod olur ona bulmaya çalışıyorum.Ayrıca Sigorta ayarlarını yapmadım ve buton girişlerinin hepsi "Pull Up" bağlantısına göre tanımladım.Çıkışları kendin ufak ufak dene istersen metin belgesinden yazdım ufak tefek yanlışlıklar olmuş olabilir yardımcı olabildiysem ne mutlu bana :)Bkz: segment döngüsünü doldurursam eklerim.

Kod:
#include <stdio.h>
#use delay(clock=4M)
int i=0;
void artir_sayi(){
    if(input(pin_a0)==1){

        i=i+1;if(i>99{i=0;output_b(0b11111010);}}
}

void azalt_sayi(){
    if(input(pin_a1){
        i=i-1;
        if(i<0){i=0;output_b(0b11111010);}}
  
}

void segment_display(){
        
}

void main(){
set_tris_a(0xFF);
set_tris_b(0x00);
output_b(0x00);

        while(TRUE){if(input(pin_a0)==1 || input(pin_a0)==1)
            delay_ms(50);
            if(input(pin_a0)==1){artir_sayi();}
            if(input(pin_a1)==1){azalt_sayi();} 
                              segment_display();} }
 
Display için çıkış belirtmemişin fakat ben b portunu tercih ettim.Çıkış alacağın döngü "void segment_display" döngüsü fakat oraya herhangi bir algoritma aklıma gelmedi.Bit bit işlem yaparım fakat gereksiz ve uzun bir kod olur ona bulmaya çalışıyorum.Ayrıca Sigorta ayarlarını yapmadım ve buton girişlerinin hepsi "Pull Up" bağlantısına göre tanımladım.Çıkışları kendin ufak ufak dene istersen metin belgesinden yazdım ufak tefek yanlışlıklar olmuş olabilir yardımcı olabildiysem ne mutlu bana :)Bkz: segment döngüsünü doldurursam eklerim.

Kod:
#include <stdio.h>
#use delay(clock=4M)
int i=0;
void artir_sayi(){
    if(input(pin_a0)==1){

        i=i+1;if(i>99{i=0;output_b(0b11111010);}}
}

void azalt_sayi(){
    if(input(pin_a1){
        i=i-1;
        if(i<0){i=0;output_b(0b11111010);}}
 
}

void segment_display(){
       
}

void main(){
set_tris_a(0xFF);
set_tris_b(0x00);
output_b(0x00);

        while(TRUE){if(input(pin_a0)==1 || input(pin_a0)==1)
            delay_ms(50);
            if(input(pin_a0)==1){artir_sayi();}
            if(input(pin_a1)==1){azalt_sayi();}
                              segment_display();} }
Hocam dediklerinizi yaptım denedim ama bi sonuca varamadım yinede çok teşekkür ederim.
 

Forum istatistikleri

Konular
129,800
Mesajlar
930,202
Kullanıcılar
452,596
Son üye
Medi-terranean

Yeni konular

Geri
Üst