arkadaşlar bir 18f242 kullanıp a portunu giriş kullandım,b ve c portlarını çıkış kullandım ve b portu ile bir 7 segment c ilede bir 7 segment sürmek istedim.
bir trafonun kademe göstergesi olacak bu cihaz inş. b portu 1.digiti, c portu ise 2.digiti sürüyor. A0 a 5V. gelirse 7 segmentteki sayı 1 artacak,A1 e 5V. gelirse 1 azalacak.sorunum şu çift for döngüsü ile if i birlikte kullanamadım. ekranda 00-19 arasında değer gösterecek 20 olmadan tekrar sıfıra dönecek.yardımınız olursa sevinirim. proğram denemem aşağıda.
#include <18f242.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};
output_b(0x00);
output_c(0x00);
for(; ;)
{
for(sayac1=0;sayac1<2;sayac1++)
{
output_b(ekran1[sayac1]);
for(sayac=0;sayac<10;sayac++)
{
if(input(pin_a0))
{
sayac1++;
if(input(pin_a1))
{
sayac1--;
output_c(ekran[sayac]);
}
}
}
}
Alıntı yapılan: "hmg"arkadaşlar bir 18f242 kullanıp a portunu giriş kullandım,b ve c portlarını çıkış kullandım ve b portu ile bir 7 segment c ilede bir 7 segment sürmek istedim.
bir trafonun kademe göstergesi olacak bu cihaz inş. b portu 1.digiti, c portu ise 2.digiti sürüyor. A0 a 5V. gelirse 7 segmentteki sayı 1 artacak,A1 e 5V. gelirse 1 azalacak.sorunum şu çift for döngüsü ile if i birlikte kullanamadım. ekranda 00-19 arasında değer gösterecek 20 olmadan tekrar sıfıra dönecek.yardımınız olursa sevinirim. proğram denemem aşağıda.
Murat Bey, A0 ve A1 e 5 V gelince değil 0 V gelince arttırma ve azaltmayı dene. Bu bacaklara pullup direnç koy (2 tane 10k ile vcc ye çek). Butonları bacaklar ile toprak arasına bağla.
İki dijit için basamak sayıları oluştur. birler ve onlar diye. İki adet for döngüsü gereksiz. Sonsuz döngü içerisinde hallet her şeyi.
ekran1'i ne için kullandın?
#include <18f242.h>
#use delay(clock=4000000)
main()
{
int onlar, birler;
int sayac1=0;
ekran[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
char ekran1[10]={0x3F,0x06};
output_b(0x00);
output_c(0x00);
for(; ;)
{
if( ! input(pin_a0) || ! input(pin_a1))
{
if( ! input(pin_a0))
{
sayac1++;
if (sayac1==20) sayac1=0;
}
if( ! input(pin_a1))
{
sayac1--;
if (sayac1==255) sayac1=19;
}
birler= sayac1%10;
onlar= sayac1/10;
output_b(ekran[birler]);
output_c(ekran[onlar]);
delay_ms(100); // debounce için
}
}
Bunu bir dene.
Bu arada bizim CER'deki POR sorunu ne oldu?
Kolay gelsin.
Ziya bey ben burda b ve c portları ile ayrı ayrı 7 segment sürmüştüm
output_b(ekran[birler]);
delay_ms(4);
output_c(ekran[onlar]);.
yukarıdaki değişikliği yaptım ve proteusta denedim 00 ekrana geldi ama a0 ve a1 e 5v verdim bir değişme olmadı.
cer ise biliyorsunuz benim bilgisayarsa deneme yaptık cihaz normal çalışıyor .fakat yerinde por gelmeye devam ediyor.
Murat Bey,
üstteki mesajda code tag içerisini biraz değiştirdim. Pullup dirençleri bağlayıp, butonları da bahsettiğim şekilde bağlamış isen sorun olmayacaktır.
Kolay gelsin.
bu iş icin pic in tum portlarını 2 segment icin işgal etmek yerine HC595 gib ientegreler kulalnmanı tavsiye ederim.boylece karakter sorunun olmaz.
bu arada hala daha programda sorun varsa yardımcı olabilirim.ulasman yeterli.