#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
//***********Denetleyici konfigürasyon ayarları************
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor
#use fast_io(b) // Port yönlendirme komutları B portu için geçerli
#use fast_io(c) // Port yönlendirme komutları C portu için geçerli
#define data pin_c0
#define clock pin_c1
int i,l,k,j;
//******** Matrise Gönderilecek Karakter Bilgileri *******
int yazi[]={
0x03,0x75,0x76,0x75,0x03
0x00,0X36,0X36,0x36,0X49,
0x41,0x3E,0x3E,0x3E,0x5D,
0x00,0x3E,0x3E,0x3E,0x41,
0x00,0xB6,0xB6,0xB6,0xBE,
0x77,0x77,0x41,0x77,0x77,
0x6B,0x5D,0x00,0x5D,0x6B };// gonderilecek yazi
//******* Sütun Seçme Fonksiyonu ************
int sutunsec (int s)
{
switch (s)
{
case 0: return(0x10);break; // 1. Sütun aktif, diğer sütunlar pasif
case 1: return(0x08);break; // 2. Sütun aktif, diğer sütunlar pasif
case 2: return(0x04);break; // 3. Sütun aktif, diğer sütunlar pasif
case 3: return(0x02);break; // 4. Sütun aktif, diğer sütunlar pasif
case 4: return(0x01);break; // 5. Sütun aktif, diğer sütunlar pasif
}
}
void main ()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor
set_tris_c(0x00); // C portu tümüyle çıkış olarak yönlendiriliyor
while(1)
{
for (i=1;i<40;i++) // Karakterin Matris LED'de görünmesi için tekrar döngüsü
{
for(j=0;j<15;j++) // // Bu döngüde tarama işlemi yapılıyor burdaki 15 kullandigim
//3 matrisin toplam kolon sayisina esit yani 3x5=15 yalnisim varsa duzelt
{
output_bit(data,sutunsec(j));
output_b(yazi[j]); // Gösterilecek harfin satır bilgisini B portuna gönder
output_high(clock);
output_low(clock);
delay_ms(10);
}
}
}
}