Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: hmg - 04 Temmuz 2007, 10:10:58

Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 04 Temmuz 2007, 10:10:58
arkadaşlar aşağıda 7 segment ile pic in b ve d portunu kullanarak 0-99 arası kronometre  yada sayıcı  için bir deneme yaptım fakat olmadı.
b portuna bağlı 7 seg. de 0 yazıyor ,d portundakinde ise 0-9 kadar durmadan yazıyor.ben burada b portunda 9 yazdımı d portunda 1 artış yapmak istedim. şimdiden tşk.iyi çalışmalar

main()
{
int sayac=0;
int sayac1=0;
charekran[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
charekran1[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
output_b(0x00);
output_d(0x00);
while(1)
{
for(sayac=0;sayac<10;sayac++)
{
output_b(ekran[sayac]);
delay_ms(500);
for(sayac1=0;sayac=9;sayac1++)
{
output_d(ekran1[sayac1]);
}
}
sayac=0;
}
}
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: MURSEL - 04 Temmuz 2007, 12:42:17
for(sayac1=0;sayac=9;sayac1++) hata ;)  sayaca 9 yüklemişin kosulun  sayac esitmi 9 a  for(sayac1=0;sayac==9;sayac1++)
bir = işateri daha koydum
hem 2 portu kullanmana gerek yok tek port la 4 pinlede 9999 sayıcı yapabilirsin 7 tanesi segmene 4 tanesi her dispilayin ortak ucuna teker teker baglanacak ve tarama yoluyla degerler gözükecek  tabi göz yanılmasından dolayı tüm degerler gözükecek bu mantıkla yapmaya calış

yazılımı algoritmasını incelemdim sadece o komutu görünce bildirmek istedim  


NOT her bi uygulama ve problem için aynı uygulama türlerinde konu başlıgı acmana gerek yokki  actıgın konun devamına problemlerini yaz  selametle kolay gelsin
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 04 Temmuz 2007, 15:20:09
mürsel kardeş ilgin için sağol. ama == koydum fakat birinci digit 9 oldu ve orda kaldı 2.digit ise sürekli 0-9 kadar yazıp yine yazıyor ve 1.digit 0 a dönmüyor.
iyi çalışmalar
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: erdinch - 04 Temmuz 2007, 15:57:22
for(sayac1=0;sayac=9;sayac1++)

satırını

for(sayac1=0;sayac1<10;sayac1++)

şeklinde degiştirirsen sorunun büyük ihtimalle çözülecek.
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: Chan86 - 05 Temmuz 2007, 08:19:07
displayleri sürmek için ne kullandın acaba? onuda söylersen c de yardımcı olabilirim bende yaptım çünkü sayıcı
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: Chan86 - 05 Temmuz 2007, 08:33:49
4511 yada 7447 ilemi yaptın acaba onu bilmek istedim sorun yoksa devreni buraya verebilirsen daha iyi olur
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 05 Temmuz 2007, 09:37:18
chan86 kardeş ben displayi direk pic in portundan sürüyorum.anlıyacağınız ben bu işe yeni başladım ve temelden bunu deneyerek öğrenmek istiyorum.
bu yüzden sizden ipuçları istiyorum.çünkü elektronik ve proğram yazma tecrübem çok az.bir arkadaş pic te tek port kullanarak diğer portun 4 ucunu kullanarak 0-9999 sayıcı yapabilirsin dedi aslında en mantıklısı bu.
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: M_B - 05 Temmuz 2007, 09:48:34
Merhaba Hmg arkadas;
asagıdakı linkte tarama yontemıyle yapılmıs sayıcı devresı ve kodları mevcut. Kodlar Hi-Tech C de yazılmıs degısıklık yaparak CCS C cevırebılırsınız. Kolay gelsın

http://www.biltek.tubitak.gov.tr/gelisim/elektronik/27.htm
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: Chan86 - 06 Temmuz 2007, 12:48:27
evet 4 pin ucuyla 9999 sayıcı yapablirsin ama displayleri sürmek için bir entegre kullanman lazım eğer 4 pinle 4 9999 sayıcı yapacaksan istersen 4511 kullanmanı tavsiy3 ederim
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 06 Temmuz 2007, 12:56:43
biraz çalışma yardımlarınız sonucu 2 digit 7 segment için 18f4620 nin b ve d portlarını kullanarak 0-dan 99 kadar ekranda yazan aşağıdaki kodu yazdım.bu proğram proteus ta 0 dan 99 a kadar bir kez yazıyor sonra sadece 1.digit yani birler basamağını 0-9 kadar yazıyor. ve 10 lar basamağında hiç bir ışık olmuyor.
for ların yerini değiştirdim return ve goto kul.çalıştım ama tekrar 00 a döndüremedim döngüyü.



#include <18f4620.h>
#use delay(clock=4000000)
main()
{
int sayac=0;
int sayac1=0;
char ekran[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
char ekran1[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
output_b(0x00);
output_d(0x00);
for(;;)
{
for(sayac=0;sayac<10;sayac++)
{
output_b(ekran[sayac]);
delay_ms(200);
if(sayac==9){sayac1++;}
output_d(ekran1[sayac1]);
}
}
}
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: Chan86 - 06 Temmuz 2007, 13:01:49
3 tane for kullanman lazım
1 tanesi sonsuz döngü 1 tanesi 10lar basamağı için 1 taneside 1 ler basamağı için bunalrı dikkat eder yaparsan sana yardımcı olur hemen direk olarak vermek istemiyorum biraz çabalayıp kendin bulup öğrenmen  ;)
yapamazsan yardımcı olurum
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 06 Temmuz 2007, 14:39:21
chan86 kardeş.önceki mesajdaki kodda if yerine for döngüsü de kullandım ,yani dediğin gibi 3 for oldu ama olmadı.eğer yukarıdaki koda doğrusunu eklersen  sevinirim.3 gündür buna uğraşıyorum ,ilerleme oldu ama bazen takılıyorum ve ilerleyemiyorum.
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: Chan86 - 06 Temmuz 2007, 18:14:04
#include <18f4620.h>
#use delay(clock=4000000)
main()
{
int a=0;
int b=0;
char ekran[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
char ekran1[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
output_b(0x00);
output_d(0x00);
for(;;)
{
for(a=0;a<10;a++)
{
output_d(ekran1[a]);
for(b=0;b<10;b++)
{
output_b(ekran);
delay_ms(200);
}

}
}
}


bunu bir dene umarım isini görür
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 09 Temmuz 2007, 14:35:55
chan86 kardeş program çalıştı. teşekkürler.şimdi for döngülerini anlamaya uğraşıyorum.
iyi çalışmalar.....
Başlık: 0-99 sayıcı 7 segment ile
Gönderen: hmg - 12 Temmuz 2007, 11:15:45
arkadaşlar 2 digit 0-99 sayıcıyı ; 2 digiti 2 ayrı b ve d portunu kullanarak yardımlarınızla yaptım,şimdi ise 0-9999 4 digit ve ve 2  portu kullanarak ; birini 7 seg. uçlarına diğer portun 4 ucunu tarama için kullanıp yapmak istiyorum.ve burada artışlar tmr 0 kesmesi kullanarak yapılabilirmi.
örnek kod gönderir veya yazarsanız sevinirim.