Matris LED Display Uygulaması
AMAÇ:
Mikrodeneleyicilerin çalışma sistemini öğrenmek, C dili ile program yazabilme ve 16F877A entegresini programlayabilme yeteneğini kazanmak.
YAPILACAK İŞ:
Matris Led Displayde istenilen karakterlerin gösterilmesi
DENEYİN BAĞLANTI ŞEMASI
PROGRAM KODU:
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
//******** Matrise Gönderilecek Karakter Bilgileri *******
int A[]={0x03,0x75,0x76,0x75,0X03};
int B[]={0x00,0X36,0X36,0x36,0X49};
int C[]={0x41,0x3E,0x3E,0x3E,0x5D};
int D[]={0x00,0x3E,0x3E,0x3E,0x41};
int E[]={0x00,0xB6,0xB6,0xB6,0xBE};
int arti[]={0x77,0x77,0x41,0x77,0x77};
int cift_ok[]={0x6B,0x5D,0x00,0x5D,0x6B};
//******* Sütun Seçme Fonksiyonu ************
int sutunsec (int s)
{
switch (s)
{
case 0: return(0x10);break;
case 1: return(0x08);break;
case 2: return(0x04);break;
case 3: return(0x02);break;
case 4: return(0x01);break;
}
}
//******* Matrise Veri Gönderme Fonksiyonu *******
void matris_karakter_gonder(char harf[], int tekrar)
{
int i,j;
for (i=1;i<tekrar;i++)
{
for(j=0;j<5;j++)
{
output_c(sutunsec(j));
output_b(harf[j]);
delay_ms(10);
}
}
}
/********* ANA PROGRAM FONKSİYONU********/
void main ()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_b(0x00);
set_tris_c(0x00);
while(1)
{
matris_karakter_gonder(A,25);
matris_karakter_gonder(B,25);
matris_karakter_gonder(C,25);
matris_karakter_gonder(D,25);
matris_karakter_gonder(E,25);
matris_karakter_gonder(arti,25);
matris_karakter_gonder(cift_ok,25);
}
}
İŞLEM BASAMAKLARI
1.Devreyi bord üzerine kurunuz.
2. Kodu yazıp derleyiniz.Hex kodunu Pice yükleyiniz.
3.Devrenin çalışmasını inceleyiniz.
DEĞERLENDİRME ÇALIŞMALARI
1.Kodların yanına açıklamalarını yazınız.
2. Karakterlerin kaymasını nasıl sağlarız.