Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Dot matrix hex kodları ilişkisi

Başlatan Prefringer, 13 Mayıs 2015, 01:13:44

Prefringer

Kodlar dot matrixde kayan yazı ile ilgili

#include <16f628a.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#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

//******matriste gösterilecek 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 fonksiyonları

      int sutunsec (char s)
    { 
            switch (s)
         {
           case 0: return(0x10);break;   //1. sütun aktif ,diğerleri pasif
           case 1: return(0x08);break;   //2.  "         "            "        "
           case 2: return(0x04);break;   //3.  "          "           "         " 
           case 3: return(0x02);break;     //4.  "          "          "         " 
           case 4: return(0x01);break;   //5.   "            "       "         "
        }
     }



// matrise veri gönderme fonksiyonu
void matris_karakter_gonder(char k[], int tekrar)
{
   int i,j;   //değişkenler tanımlanıyor
  for(i=0;i<tekrar;i++)   //karakterin matris led de görülmesi için tekrar döngüsü
   {
      for(j=0;j<5;i++)         //tarama işlemi gerçekleştiriliyor
      {
      output_c(sutunsec(j));    //sütun seç ve c portuna sütun değerini gönder
      output_b(k[j]);   //gösterilecek harfin satır bilgisini B portuna gönder
      delay_ms(10); 
       }
    }
}

// ***********Ana program fonksiyonu*************

void main()
 {
   setup_comparator(NC_NC_NC_NC);
   setup_psp(psp_disabled);
   setup_timer_1(t1_disabled);
   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);
  }
} 


//******matriste gösterilecek karakter bilgileri*****    Bu kısımdaki hex kodlarının mantıgı hakkında beni bilgilendirebilecek birisi varmı
yada dot matrixde bir harf veya sayı yakmaya calısırken bu noktaların hex kodlarıyla nasıl ılıskılendırıldıgını bılen..
Yardımlarınız için şimdiden teşekkürler...

KONYALI

Merhaba,

İnternette hazır yazılımlar var bu tür kodlar üretmek için ben LCD Karaktermatik v4.5 adında hazır bir yazılım kullanıyorum.
Sanırım forumdan birileri hazırlamış gayet başarılı. Sende bu tür hazır bir uygulama kullanabilirsin. Burada ekte ki kodda  sütun tarama yöntemi kullanılmış. Örneğin A harfi için 7 satır 5 sütun kullanılmış;

1 1 0 1 1
1 0 1 0 1
0 1 1 1 0
0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0

1. Sütun = 0x03
2. Sütun = 0x75
3. Sütun = 0x76
4. Sütun = 0x75
5. Sütun = 0x03

Yukardan aşağıya 4 bit olarak ayır 1 olanları binary olarak topla.

ferit06



burada: http://s3.dosya.tc/server2/5a2ldh/5x7CODE_3310_2.rar.html  bir exel dosyası var dosyadaki mavi noktaları kopyala yapıştır ile taşıyarak kendi karekterlerini de yaratabilirsin.

Prefringer

KONYALI yardımların için teşekkürler çok açıklayıcı bir cevap olmuş hex mantığını sayende anladım yalnız kafama farklı sorular takıldı..

1 1 0 1 1
1 0 1 0 1
0 1 1 1 0
0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0

Burda A 0 larla yapılmış 1 ler yanık 0 lar sönük değilmi eğer benim dediğim gibiyse sönük olan lambalar A şeklini çıkarıyor değilmi?(yanlışsam kusura bakma)

"sütun tarama yöntemi kullanılmış" demişsin bu ifadeden satır tarama yöntemi vardır ifadesini çıkarabilirmiyim?

Birde bu programda 7x5 lik bir matrix kullanılmış dimi?

Hazır yazılım tavsiyeleri için teşekkür ederim ama ben bu işlerde daha yeniyim ve işin mantığını öğrenmeye çalışıyorum..

KONYALI

Display olarak ortak anod display 7x5 kullanılmış. Bu yüzden sütun aktif etmek için ilgili çıkış 1 yapılmış,yanması istenen satırlar 0 yapılmış.
Satır tarama yöntemide vardır ama pek kullanılmaz. ( Ben hiç görmedim, çok uzun displaylerde sutun tarama hızı yetmediği zaman kullanılıyor olabilir)

Senin paylaştığın yazılım ortak anodlu 7x5 display için yazılmış.

baran123

Orak anot ise 0 lar yanar.
Ortak katot ise 1 ler yanar.
Bağlantıya göre değişir yani.
Evet Satır veya sütun tarama yapabilirsin.

Prefringer


Yardımlarınız için teşekkürler.

Devreyi 2-3 kez kontrol ettim bağlantı hatası bulamadım yinede söküp yenıden kurdum.
Başka bir siteden hazır kod buldum(denenmiş) devre şemasını aynen uyguladım.
Sonuç bu



picin 10. pininden dot matrixin 1. pinine giden direnci kaldırıp dırek baglayınca;



Sonuc bu

https://youtu.be/NF7pqJIngYk

Not:Matrixin 5. satır 2. ve 3. ledleri calısmıyor(direnc baglamadan calıştırıp yakmıstım :) )