Posted by : Unknown
26 Haziran 2015 Cuma
PİC PROGRAMLAMA -8
Merhaba arkadaşlar.Bugün ledler ile kalp animasyonu yapacagız.
Şekildeki gibi devremizi oluşturuyoruz. Ve gelelim kod kısmına :
0b00110111011101110111011101110111,//4-8-12-16-20-24-26-30 ledler yanmayacak
0b00111111011111110111111101111111,//8-16-24 yanmayacak
0b00111111111111111111111111111111,//tüm ledler yanacak
};
void ShowAnimation(int32 anim)
{ output_a(anim);
output_b(anim >> 6);
output_c(anim >> 14);
output_d(anim >> 22);
}
int8 i;
void main()
{output_a(0*00);//a,b,c ve d portlarımız çıkış portumuz ve çıkışlarını lojik-0 olarak ayarladık
output_b(0*00);
output_c(0*00);
output_d(0*00);
set_tris_a(0*00);
set_tris_b(0*00);
set_tris_c(0*00);
set_tris_d(0*00);
delay_ms(100);
while(TRUE)
{
ShowAnimation(RND[3]);//rnd dizisininin 3 indisindeki degeri alacak ve çıkışa gönderecek
delay_ms(200);
ShowAnimation(RND[2]);//rnd dizisininin 2 indisindeki degeri alacak ve çıkışa gönderecek
delay_ms(200);
ShowAnimation(RND[1]);//rnd dizisininin 1 indisindeki degeri alacak ve çıkışa gönderecek
delay_ms(200);
ShowAnimation(RND[0]);//rnd dizisininin 0 indisindeki degeri alacak ve çıkışa gönderecek
delay_ms(200);
for(i=0;i<30;i++)
{delay_ms(500);
ShowAnimation(0xFFFFFFFF<<(30-i));//bu döngü son ledden başlyarak 1.lede kadar yakar
}
delay_ms(500);
for(i=0;i<30;i++)
{delay_ms(500);
ShowAnimation(0xFFFFFFFF>>i);//bu döngü son ledden başlayark 1.lede kadar söndürür
}
delay_ms(500);
for(i=0;i<30;i++)
{delay_ms(500);
ShowAnimation(0xFFFFFFFF>>(30-i));//bu döngü 1.ledden başlayarak son lede kadar sırayla ledlerı yakar
}
delay_ms(500);
for(i=0;i<30;i++)
{delay_ms(500);
ShowAnimation(0xFFFFFFFF<<i);//bu döngü 1.ledden başlayarak son lede kadar sırayla söndürür
}
delay_ms(500);
}
}
Burada zaman ayarlaması ve animasyonlar üzerinde oynama yapabiliriz.
Devrenin proteus dosyasını isteyen arkadaşlar bize facebook üzerinden ulaşırlarssa seviniriz.