Pıc 16f877 ile dısplay kontrolü

salih61.23

Üye
Katılım
17 Eki 2018
Mesajlar
2
Puanları
1
Yaş
28
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:

peugeot98

Usta Üye
Katılım
1 Eyl 2011
Mesajlar
1,237
Puanları
183
Konum
Akhisar
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.
 

mehmet.bey

Paylaşımcı üye
Katılım
19 Ara 2011
Mesajlar
862
Puanları
108
İnterrupt konusunu inceleyin.
 

Sponsor Bağlantı

Forum istatistikleri

Konular
108,781
Mesajlar
767,587
Kullanıcılar
403,501
Son üye
GERİLİM OTOMASYON

Yeni konular

Üst