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ş
22
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
128,125
Mesajlar
915,236
Kullanıcılar
449,837
Son üye
betül hüsrevoğlu

Yeni konular

Geri
Üst