deniiiz
Joined: 22 Dec 2010 Posts: 1
|
8x8 dot matrix |
Posted: Wed Dec 22, 2010 10:59 am |
|
|
I want to do 16x8 scrolling led display.
I found sample code for 5x7 and I tried to change from 5x7 to 8x8.
but I am not success.
I send 5x7 code.
Help me
if I use tpic6h595, how do I write this code?
Code: |
/******************************************************
Uygulama Adı : Matris LED Display Uygulamas
*******************************************************/
#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
//******** Matrise Gönderilecek Karakter Bilgileri *******
int A[]={0x3F,0x40,0x40,0x3F,0x40,0x40,0x3F,0x00,};
int B[]={0x7F,0x49,0x49,0x49,0x41,0x00};
int C[]={0x00,0x3E,0x41,0x41,0x41,0x22};
int D[]={0x00,0x7F,0x41,0x41,0x41,0x33};
int E[]={0x00,0x7F,0x49,0x49,0x41};
int arti[]={0x00,0x77,0x77,0x41,0x77,0x77};
int cift_ok[]={0x00,0x6B,0x5D,0x00,0x5D,0x6B};
//******* Sütun Seçme Fonksiyonu ************
int sutunsec (int s)
{
switch (s)
{
case 0: return(0x80);break; // 1. Sütun aktif, diğer sütunlar pasif
case 1: return(0x40);break; // 2. Sütun aktif, diğer sütunlar pasif
case 2: return(0x20);break; // 3. Sütun aktif, diğer sütunlar pasif
case 3: return(0x10);break; // 4. Sütun aktif, diğer sütunlar pasif
case 4: return(0x08);break; // 5. Sütun aktif, diğer sütunlar pasif
case 5: return(0x04);break; //6.
case 6: return(0x02);break;
case 7: return(0x01); break;
}
}
//******* Matrise Veri Gönderme Fonksiyonu *******
void matris_karakter_gonder(char harf[], int tekrar)
{
int i,j; // Değişkenler tanımlanıyor
for (i=1;i<tekrar;i++) // Karakterin Matris LED'de görünmesi için tekrar döngüsü
{
for(j=0;j<8;j++) // // Bu döngüde tarama işlemi yapılıyor
{
output_c(sutunsec(j)); // Sütun seç ve C portuna sütun değerini gönder
output_b(harf[j]); // Gösterilecek harfin satır bilgisini B portuna gönder
delay_ms(20); // Gecikme veriliyor
}
}
}
/********* ANA PROGRAM FONKSİYONU********/
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)
{
matris_karakter_gonder(A,100);// A karakterini matriste göster
matris_karakter_gonder(B,50);// B karakterini matriste göster
matris_karakter_gonder(C,50);// C karakterini matriste göster
matris_karakter_gonder(D,50);// D karakterini matriste göster
matris_karakter_gonder(E,50);// E karakterini matriste göster
matris_karakter_gonder(arti,25);//+ karakterini matriste göster
matris_karakter_gonder(cift_ok,25);// Çift yönlü ok karakterini matriste göster
}
} |
|
|