Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

0-9 Sayaç Sorunu

Başlatan muratdumlu, 26 Mart 2015, 12:25:04

muratdumlu



Arkadaşlar, bu çalışmada butona her basıldığında rakam 3 kere yansın sönsün istiyorum.. Bunu nasıl yapabilirim bilen varmı?
Yardımcı olursanız sevinirim...

Program Kodları;

#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000)

#define sh_cp     pin_e0
#define ds        pin_e1
#define st_cp     pin_e2

#define artir     pin_b0

int sayi=0;

const int digit[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

//==============================================================================
void gonder(unsigned char veri)
{
   unsigned char i;
   for(i=0x80;i>0;i>>=1)
      {
         if(i&veri)output_high(ds);
            else
               output_low(ds);
               output_high(sh_cp);
               output_low(sh_cp);
      }
}
//==============================================================================

void main()
{
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   
   while (true){
   
   if(!input(artir)){delay_ms(30);
     
      if(sayi==9)
         sayi=0;
         else{
         sayi++;
         }
   }   
   gonder(digit[sayi]);
     
   output_high(ST_CP);
   output_low(ST_CP);
   delay_ms(170);   
   }
}

baran123

1 saniyelik bir kesme oluştur bu kesmede ekrana 0x00 gönder daha sonraki kesmede verini gönder bayraklı şekilde yaparsan olur.

muratdumlu

Teşekkür ederim Baran kardeş.. Yapmaya çalışacağım.

muratdumlu

Kesme fonksiyonları ile rakamı söndürüp yakamıyorum daha doğrusu beceremiyorum :).. Bunu nasıl yapabilirim?

mehmet

Kesme içerisinde bir değişken artırım
yapılır. Ana döngü içerisinde bu değişken
takip edilir. Bu değişken belli bir sayıya
ulaşınca buna göre işlem yapılır.
Eğer kesme çok hızlı olmak durumunda olursa
Ana döngü içerisinde başka bir değişken
yardımıyla gecikme sağlanabilir.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

muratdumlu

Teşekkürler Mehmet...