8x32 dot matrix ile kayan yazı devresi sütün kaymalı olarak gerçekleştirdim 74hc595 ile kaydırma işlemini gerçekleştirdim.Yazı yazmak kolaydı ama kaydırmak için neredeyse 2 güne yakın uğraştım 74hc595 yapabilmek için uğraştım özellikle yaptığım uygulamada en yakın zamanda gerçek uygulamasını devresini gerçekleştireceğim.
İNDİRME LİNKİ : http://yadi.sk/d/VrZ_lIsmSotVS
KODLARI:
#include <16f628.h>
#use Delay (clock=4m)
#define Sh_Cp Pin_A0
#define Sh_Ct Pin_A2
#define Ds Pin_A1
int say=0,i=0,e=0,k=0,f=0,c,d;
const char dizi[]={112,168,168,144,0//e
,127,128,128,0//l
,112,168,168,144,0//e
,255,32,80,136,0//k
,8,127,136,128,64,0//t
,240,8,8,16,0//r
,112,136,136,112,0//o
,56,64,128,64,56,0//v
,112,136,136,112,0//o
,127,128,128,0//l
,8,127,136,128,64,0//t
192,192,0//.
127,144,144,96,0//b
,127,128,128,0//l
,112,136,136,112,0//o
,144,168,168,112,0//g
,192,192,0//.
,112,136,136,80,0//c
,112,136,136,112,0//o
,248,16,32,16,248,0//m
,192,192,0//.
,8,127,136,128,64,0//t
,240,8,8,16,0//r
};
void Clock()
{
output_high(Sh_Cp);
output_low (Sh_Cp);
output_high(Sh_Ct);
output_low (Sh_Ct);
}
void Tarama()
{
for(say=0;say<32;say++)
{
output_high(Ds);
Clock();
}
}
void Main()
{
output_b(0x00);
Tarama();
While(True)
{
if(k==0)
{
for(e=32;e>0;e--)
{
for(f=0;f<5;f++)
{
for(i=0;i<32;i++)
{
if(i==0)
output_low(ds);
else
output_high(ds);
clock();
if(i>=e)
output_b(dizi[i-e]);
else
output_b(0x00);
Delay_us(500);
}
}
}
k=1;
}
else
{
for(f=0;f<5;f++)
{
d=c;
for(i=0;i<32;i++)
{
d++;
if((i==0)||(i==32))
output_low(Ds);
else
output_high(Ds);
Clock();
if(d>=110)
output_b(0x00);
else
output_b(dizi[d]);
Delay_us(500);
}
}
if(d==32)
d=0;
if(c==110)
{ c=0;
d=0; k=0;}
else
c++;
}
}
}
İNDİRME LİNKİ : http://yadi.sk/d/VrZ_lIsmSotVS
işte bitirdim ve çalışıyor. :) biraz sıkıntıları var ama en yakın zamanda düzelteceğim :)
devreyle ilgilenenler iletişme geçerseniz yardımcı olabilirim yardımcı olabilirim
KODLARI:
#include <16f628.h>
#use Delay (clock=4m)
#define Sh_Cp Pin_A0
#define Sh_Ct Pin_A2
#define Ds Pin_A1
int say=0,i=0,e=0,k=0,f=0,c,d;
const char dizi[]={112,168,168,144,0//e
,127,128,128,0//l
,112,168,168,144,0//e
,255,32,80,136,0//k
,8,127,136,128,64,0//t
,240,8,8,16,0//r
,112,136,136,112,0//o
,56,64,128,64,56,0//v
,112,136,136,112,0//o
,127,128,128,0//l
,8,127,136,128,64,0//t
192,192,0//.
127,144,144,96,0//b
,127,128,128,0//l
,112,136,136,112,0//o
,144,168,168,112,0//g
,192,192,0//.
,112,136,136,80,0//c
,112,136,136,112,0//o
,248,16,32,16,248,0//m
,192,192,0//.
,8,127,136,128,64,0//t
,240,8,8,16,0//r
};
void Clock()
{
output_high(Sh_Cp);
output_low (Sh_Cp);
output_high(Sh_Ct);
output_low (Sh_Ct);
}
void Tarama()
{
for(say=0;say<32;say++)
{
output_high(Ds);
Clock();
}
}
void Main()
{
output_b(0x00);
Tarama();
While(True)
{
if(k==0)
{
for(e=32;e>0;e--)
{
for(f=0;f<5;f++)
{
for(i=0;i<32;i++)
{
if(i==0)
output_low(ds);
else
output_high(ds);
clock();
if(i>=e)
output_b(dizi[i-e]);
else
output_b(0x00);
Delay_us(500);
}
}
}
k=1;
}
else
{
for(f=0;f<5;f++)
{
d=c;
for(i=0;i<32;i++)
{
d++;
if((i==0)||(i==32))
output_low(Ds);
else
output_high(Ds);
Clock();
if(d>=110)
output_b(0x00);
else
output_b(dizi[d]);
Delay_us(500);
}
}
if(d==32)
d=0;
if(c==110)
{ c=0;
d=0; k=0;}
else
c++;
}
}
}

S.A. Öncelikle tüm işlerinde kolaylıklar diliyorum. Harika bir çalışma olmuş. Bende 8x8 led matrix yaptım. proteusta çizimi yaptım. Taramada sorun yok ama kaydırma yapamıyorum. Programlayıcı olarak picbasic pro kullanıyorum. Microdenetleyici olarak pic16f628a ve sürücü olarak 74hc595 kullandım. Taramayı da bitirince olacak.
YanıtlaSiliyi günler size nereden ulaşabilirim bu projeyş yapmam lazım yardıma ihtiyacım var
Sil+905314705670 whatsapp üzerinden iletişime geçebilirsiniz
YanıtlaSil