12F675 kullanılarak yapılmış rgb led sürücü devre. Devrenin programı C dilinde yazılmış. Programın HEX dosyası mevcut

Devrenin ISIS Bağlantı Şeması

 

Devrenin 3 Boyutlu Görünümü

Devrede Kullanılan Micro C Kodları

[code]
<pre>
unsigned int sayac=0,dongu,x,y,a; // z döngü sayısı
/******/
void interrupt()
{sayac++;
INTCON.INTF=0;}
/******/
void ayarlar()
{
ANSEL = 0; // analog girişler kapatıldı.
OPTION_REG = 0x00; // int kesmesi pozitif kenar seçildi
INTCON.GIE = 1; // Genel kesmelere izin verildi
INTCON.INTE = 1; // int kesmesine zizin verildi
TRISIO=0x04 ;
GPIO=0x00 ;
}
/***/
void RGB()
{
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(200);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(150);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(100);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(80);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(50);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(30);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(20);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(10);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(8);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(6);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(3);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(1);
GPIO=y;
delay_us(1);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(3);
GPIO=y;
delay_us(1);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(5);
GPIO=y;
delay_us(1);
}

for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(8);
GPIO=y;
delay_us(1);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(20);
GPIO=y;
delay_us(1);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(40);
GPIO=y;
delay_us(1);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(80);
GPIO=y;
delay_us(1);
}
for(dongu=0;dongu<a;dongu++) {
GPIO=x;
delay_us(200);
GPIO=y;
delay_us(1);
}
/***************************/

/************/
}

/*****************/

void main()
{
ayarlar();
for( ; ; )
{

if( sayac==0){
a=5000;
x=0x01;
y=0x00;
RGB();
x=0x11;
y=0x01;
RGB();
x=0x13;
y=0x02;
RGB();
x=0x13;
y=0x12;
RGB();
x=0x13;
y=0x01;
RGB();
x=0x13;
y=0x11;
RGB();
}
if(sayac==1){GPIO=1 ;}
if(sayac==2){GPIO=2 ;}
if(sayac==3){GPIO=16 ;}
if(sayac==4){GPIO=18 ;}
if(sayac==5){GPIO=19 ;}
if(sayac==6){GPIO=17 ;}
if(sayac==7){GPIO=3 ;}
if(sayac==8)sayac=0;
}
}
[/code]

Devrenin ISIS şeması, Micro C ve HEX dosyası ektedir

Yazıyla İlgili Dosyaları İndirmek İçin Aşağıdaki Dosyaları İndir Butonuna Tıklayın





Facebookta Paylas







Benzer Yazılar

PIC16F84 İle LCD’li Termometre Devresi

Pic16f84 kullanılarak yapılmış termometre devresi. Sıcaklık 2x16 LCD'de gösteriliyor. Program dili olarak C kullanılmış.

Çift Röle Sürücü Devre

         Birçok uygulamada kullanılabilecek bir devre olan röle sürücüsünün tasarımını sizinle paylaşmak istiyorum.

PIC16F628 İle Yıldız Üçgen Kumanda Devresi

16F628 kullanılarak yapılmış yıldız-üçgen devresi.  Devrede şalter durumunu göstermek için LCD kullanılmış