pic programlama sayıcı devresi etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Merhaba arkadaşlar.Bugün kü projemizde lcd kullanarak sayıcı yapmayı deneyecegiz.
Şekildeki devremizi oluşturuyoruz.
İleri butonumuz=2 nolu bacagımıza
Geri butonumuz=3 nolu bacagımıza bagladık
Gelelim kodlarımıza ;
#define use_portb_lcd TRUE// lcd mızın hangı portta baglı oldugunu tanımladık
#define ileri pin_a0// a0 pinine ileri butonumuzun baglandıgını tanımladık
#define geri pin_a1// a1 pinine geri butonumuzun baglandıgını tanımladık
#include<lcd.c> // lcd için eklenmesi gereken kütüphane
int x;
int y=100;
void main()
{set_tris_a(0*10);// a portumuzun 2 girişi aktif olmasını için kullanıyoruz
set_tris_b(0*00);// b portumuz aktif degil
lcd_init();//lcd hazırlanıyor
printf(lcd_putc,"SAYI1=0");//lcd ekranımızda sayı1 i yazdık
printf(lcd_putc,"\nSAYI2=100");//lcd ekranımıza sayı2 i yazdık
while(true)
{if(input(pin_a0))//ileri butonumuz aktif ise
{x++;//x i arttır
y=100;//y ilk degerine döndür
while(input(pin_a0))//buton bırakıldımı(bu sayıların hızlıca artmasını engelleyen fonksiyondur)
{if(x==100)//x=100 ise
{delay_ms(10);
x=0;//başa döndür yani ilk degerine}}
printf(lcd_putc,"\fSAYI1=%d",x);//x degerini lcd ye yaz
}
if(input(pin_a1))//geri butonumuz aktif ise
{y--;//y yi azalt
x=0;//x i ilk degerini ata
while(input(pin_a1))//buton bırakıldımı(bu sayıların hızlıca artmasını engelleyen fonksiyondur)
{if(y==0)//y=0 ise
{delay_ms(10);
y=100;//başa döndür yani ilk degerine}}
printf(lcd_putc,"\f\nSAYI2=%d",y);//y degerini lcd ye yaz}
}
}}}}}}
PIC PROGRAMLAMA-3
Merhaba arakadaşlar.Bugünkü uygulamamızda 0-9 arası ileri-geri sayıcı devresi ve 0-99 arası arası ileri-geri sayıcı devresi tasarımı yapacagız.
İlk olarak 0-9 arası sayıcı devremizden başlayalım.
Devremizi şekildeki gibi kuralım. Gelelim kod kısmımıza arkadaşlar;
void main()
{
int i;
while(true)
{
for(i=0;i<10;i++)//0-9 arası ileri sayım yapar
{
output_b(i);//i yi b çıkışına at
delay_ms(1000);//1 sn bekle
}
for(i=9;i>0;i--)//9-0 arası geri sayım yapar
{output_b(i);//i yi b çıkışına at
delay_ms(1000);//1 sn bekle
}
}
}
....
Şimdi gelelim 0-99 arası sayıcı devremizi tasarlayalım
Gelelim şimdi kod kısmına;
void main()
{
int i,birler,onlar,binler;//birler ve onlar basamıgını tanımladık
while(true)
{
for(i=0;i<1000;i++)//0-99 arası sayım yapılacak dongü
{
birler=i%10;//birler basamagını belirledik(sayımızın 10 ile bölümünde kalanına göre işlem yaptık)
onlar=i/10;//onlar basmagını belirledik(10 ile tam bölünen sayılara göre işlem yaptık)
output_a(onlar);//a portumuzun çıkışına onlar basamagını atadık
output_b(birler);//b portumuzun çıkışına birler basamagını atadık
delay_ms(100);//0,1 sn bekledik
}
for(i=99;i>0;i--)//99-0 arası geri sayım yaptıgımız döngümüz
{
birler=i%10;//birler basamagını belirledik
onlar=i/10;//onlar basmagını belirledik
output_a(onlar);//a portumuzun çıkışına onlar basamagını atadık
output_b(birler);//b portumuzun çıkışına birler basamagını atadık
delay_ms(100);//0,1 sn bekledik
}
}
}
İlk olarak 0-9 arası sayıcı devremizden başlayalım.
void main()
{
int i;
while(true)
{
for(i=0;i<10;i++)//0-9 arası ileri sayım yapar
{
output_b(i);//i yi b çıkışına at
delay_ms(1000);//1 sn bekle
}
for(i=9;i>0;i--)//9-0 arası geri sayım yapar
{output_b(i);//i yi b çıkışına at
delay_ms(1000);//1 sn bekle
}
}
}
....
Şimdi gelelim 0-99 arası sayıcı devremizi tasarlayalım
Gelelim şimdi kod kısmına;
void main()
{
int i,birler,onlar,binler;//birler ve onlar basamıgını tanımladık
while(true)
{
for(i=0;i<1000;i++)//0-99 arası sayım yapılacak dongü
{
birler=i%10;//birler basamagını belirledik(sayımızın 10 ile bölümünde kalanına göre işlem yaptık)
onlar=i/10;//onlar basmagını belirledik(10 ile tam bölünen sayılara göre işlem yaptık)
output_a(onlar);//a portumuzun çıkışına onlar basamagını atadık
output_b(birler);//b portumuzun çıkışına birler basamagını atadık
delay_ms(100);//0,1 sn bekledik
}
for(i=99;i>0;i--)//99-0 arası geri sayım yaptıgımız döngümüz
{
birler=i%10;//birler basamagını belirledik
onlar=i/10;//onlar basmagını belirledik
output_a(onlar);//a portumuzun çıkışına onlar basamagını atadık
output_b(birler);//b portumuzun çıkışına birler basamagını atadık
delay_ms(100);//0,1 sn bekledik
}
}
}