Pıc 16f877 ile dısplay kontrolü

salih61.23

Üye
Katılım
17 Eki 2018
Mesajlar
2
Puanları
1
Yaş
32
MERHABA ARKADAŞLAR. ŞÖYLE BİR PROJEM VAR ;

ELİMDE 3 ADET 7 SEGMENT DISPLAY VAR.BUTONA BASTIĞIMDA DISPLAYLER DEN İKİSİ 60 TAN GERİYE DOĞRU SAYACAK. DISPLAYLER SAYARKEN BAŞKA BİR BUTONA BASTIĞIMDA 3.DISPLAY 0 İTİBAREN HER BUTONA BASTIĞIMDA ARTITICAK.

PROGRAMI YAZDIM ÇALIŞIYOR FAKAT 3. DISPLAYI 0 İTİBAREN ARTIRMAK İSTEDİĞİMDE BUTONA YAKLAŞIK 3 SN KADAR BASTIKTAN SONRA ARTIYOR. BU SORUNU NASIL ÇÖZERİM .

ŞİMDİDEN TEŞEKKÜRLER;

BENİM YAZDIĞIM PROGRAM BU ŞELİDE


Kod:
#include <SAYICI.h>

#use delay (clock=4000000)

int i, k, m;



const int digit[12]={0X00,0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77};



void main()

{

set_tris_a(0xFC);

set_tris_b(0x00);

set_tris_c(0x00);

set_tris_d(0x00);

output_a(0xFC);

output_b(0x00);

output_c(0x00);

output_d(0x00);

output_b(digit[7]);

output_C(digit[1]);

output_d(digit[1]);



While(1)

{

if (input(pin_a3))

{

for (i=6;i>=1;--i) // sayıcı onlar basamağı

{

for(k=10;k>=1;--k) // sayıcı birler basamağı

{

output_c(digit[k]);

output_b(digit);

delay_ms(1000);

if(input(pin_a2))

{

m++;

output_d(digit[m]);

output_high(pin_b7);

output_high(pin_c7);

delay_ms(500);

output_low(pin_b7);

output_low(pin_c7);

if(m==10)

{

m=0;

}

}

}

}

}

}

}
 
Moderatör tarafında düzenlendi:
Programdan tam anlamam fakat delayları kaldır.
Onlar yüzündan işlemci senin bastığın butonu geç görür.
Timer ile bekleme yapmalısın.
İnternette örnekleri var.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…