Elektrotekno.com Ana Sayfa || Pic ve diğer işlemci ve denetleyiciler ile yapılmış devreler, projeler || Kayan yazı ve matrix led devreleri (led message projects)


Açıklama:
Elektrik, Elektronik, Haberleşme ve Otomasyon konularının ağırlıklı olarak konuşulduğu, tartışıldığı ve bilgi paylaşımı yapıldığı forumumuza hoşgeldiniz.

Şu an Tamamlanmış Elektronik Devreler, Projeler kategorisi içerisindeki Kayan yazı ve matrix led devreleri (led message projects) forumunda bulunuyorsunuz.
Bu sayfada üyelerimizin "18F452 ile Sutun Sayısı Artırılabilir Kayan Yazı Devresi !" konusundaki problem, görüş ve önerileri okuyabilir ayrıca konu hakkındaki doküman, resim, proje, devre ve programlara ücretsiz olarak ulaşabilirsiniz. Üye olduktan sonra sizler de konu hakkında sorular sorabilir ya da yorum ve paylaşım yaparak birikimlerinizi aktarabilirsiniz.

Forumdan tam olarak yararlanabilmek için üye olmayı unutmayınız!

pc kontrollü 80 sütun kayan yazı_yardım

Kayıt: 13 Oca 2006
Mesajlar: 56
Konum: balıkesir
Offline
zerog26
Tarih: 22 08 2007 10:29

arkadaşlar yapmış olduğum 80 sütu kayan yazı devresi pc den hyper terminel ile kontrolediliyo. re1 butonuna basılınca kayan yazı siliniyo ve yerminal ekranına kaç karakter yazısı beliriyo karakter sayısı giriliyo ondan sonra karakterleri girin diye bi yazı çıkıyo girince kaymaya başlıyo. buraya kadar sorun yok .... yazılım bana aiti değil yazılıma göre devre şemasını çıkardım sadece bide biligisayarla haberleşmesi için komutlar girilmesine rağmen haberleşmiyodu onu düzelttim ama program c ile yazılmış bende c den pek anlamıyom anladığım kadarını yaptım ..... şidi karakter sorunum var 99 karakterden fazla almıyo bunu nasıl yükseltecez eeprom ekleyeyim dedim ama kodlarını bilmediğim için olmadı.

sizlerden ricam: bu devreye biraz kafa yorarak bunun karakter hafızasını yükseltip terminal ekranına gelen kaç karakter yazısını da kaldırıp onun yerine sadece metni girip entere basınca kayan bi sistem ondan sonrada tabi saat ve derece eklemek kalıyo .... ilgilenen arkadaşlara şimdiden teşekkür......

http://img354.imageshack.us/my.php?image=adszcc5.jpg


dosyalar burada:::::::::http://rapidshare.com/files/50493776/kay_yazi.rar


[/img] Kod
//if defined(__pcm__)

#include <16f877a.h>
#fuses hs,nowdt,noput,noprotect,nobrownout,nolvp
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=pın_c6, rcv=pın_c7,restart_wdt, errors)

#define pın_st_cp      pın_c2  // rclk ----> pin 12 st_cp
#define pın_sh_cp      pın_c3  // srclk ---> pin 11 sh_cp
#define pın_ser_ın     pın_c5  // ser -----> pin 14

/*#define number_of_74595 10
#endıf
//#include <74595_v02.c>*/

#byte port_a=5
#byte port_b=6
#byte port_c=7
#byte port_d=8

#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

long s1_char_size=41;
char s1[79];
long i;

//***********************sutunlara bağlı hc595**********************************
#define clock      pın_b0  // rclk ----> pin 12 st_cp
#define latch      pın_b2  // srclk ---> pin 11 sh_cp
#define data       pın_b1  // ser -----> pin 14

void hc595_out_satir(unsigned char send_data)
{
   unsigned char bit_mask;

   for (bit_mask=1; bit_mask ;bit_mask <<=1)
   {
      // on an avr you can set the bit directly and i'd use
       //"data = (send_data & bit_mask);"

      //else use this if/else ....
      if((send_data & bit_mask))
        output_high(data);

      else
        output_low(data);

      output_high(clock);
      delay_us(1);
      output_low(clock);
   }

   output_high(latch);
   delay_us(1);
   output_low(latch);
}
//******************************************************************************

void get_line1(void)
{
  for(i=0; i<s1_char_size; i++)
  {
    if(kbhit())
    {
      s1[i]=getc();
      delay_cycles(2);
      printf("%c",s1[i]);
      delay_us(1);
    }
    else
      i -= 1;
  }
}  // end of void get_line1()

char  const msg_default[] = "<<----------edit by mehmet bas---------->> ";

char  const ascii1[32][5] = {
   {0,0,0,0,0}                  //   0
   {0,0,95,0,0}         //   {0,95,0,0,0,0}
   //   1
   {0,7,0,7,0}          // {0, 7,0,7,0,0}
 //   2
   {20,127,20,127,20}          //   3
   {36, 42, 127, 42, 18}       //   4
   {39, 21, 107, 84, 114}      //   5
   {54, 73, 86, 32, 80}        //   6
   {0, 11, 7,0,0}      // {0, 11, 7,0,0,0}
//   7
   {0, 28, 34, 65,0}    // {0, 28, 34, 65,0,0}
 //   8
   {0, 65, 34, 28,0}    // {0, 65, 34, 28,0,0}
 //   9
   {42, 28, 127, 28, 42}       //   10
   {8, 8, 62, 8, 8}            //   11
   {0, 88, 56, 0,0}      // {0, 88, 56,0,0,0}
  //   12
   {8,8,8,8,8}                 //   13
   {0, 96, 96, 0,0}      // {0, 96, 96,0,0,0}
  //   14
   {32, 16, 8, 4, 2}           //   15
   {62, 81, 73, 69, 62}        //   16
   {0, 66, 127, 64,0}       // {0,66, 127, 64,0,0}
     //   17
   {114, 73, 73, 73, 70}       //   18
   {34, 65, 73, 73, 54}        //   19
   {24, 20, 18, 127, 16}       //   20
   {39, 69, 69, 69, 57}        //   21
   {60, 74, 73, 73, 48}        //   22
   {1, 113, 9, 5, 3}           //   23
   {54, 73, 73, 73, 54}        //   24
   {6, 73, 73, 41, 30}         //   25
   {0, 54,54,0,0}         // {0, 54, 54,0,0,0}
   //   26
   {0, 91, 59, 0,0}         // {0, 91, 59,0,0,0}     // 27
   {8, 20, 34, 65,0}           //   28
   {20, 20, 20, 20, 20}        //   29
   {65, 34, 20, 8,0}           //   30
   {2, 1, 81, 9, 6}            //   31
   };

char  const ascii2[32][5] = {
{50, 73, 121, 65, 62}          //      0
{124, 18, 17, 18, 124}         //      1   a
{65, 127, 73, 73, 54}          //      2   b
{62, 65, 65, 65, 34}           //      3   c
{65, 127, 65, 65, 62}          //      4   d
{127, 73, 73, 65, 65 }         //      5   e
{127, 9, 9, 1, 1}              //      6
{62, 65, 73, 73, 58}           //      7
{127, 8, 8, 8, 127}            //      8
{0, 65, 127, 65, 0}       // {0, 65, 127, 65,0,0}
        //      9
{32, 64, 65, 63, 1}            //      10
{127, 8, 20, 34, 65}           //      11
{127, 64, 64, 64, 64}          //      12
{127, 2, 12, 2, 127}           //      13
{127, 2,  4, 8, 127}           //      14
{62, 65, 65, 65, 62}           //      15
{127, 9, 9, 9, 6}              //      16
{62, 65, 81, 33, 94}           //      17
{127, 9, 25, 41, 70}           //      18
{38, 73, 73, 73, 50}           //      19
{1,1,127, 1, 1}                //      20
{63, 64, 64, 64, 63}           //      21
{7, 24, 96, 24, 7}             //      22
{127, 32, 24, 32, 127}         //      23
{99, 20, 8, 20, 99}            //      24
{3, 4, 120, 4, 3}              //      25
{97, 81, 73, 69, 67}           //      26
{0, 127, 65, 65,0}          // {0, 127, 65, 65,0,0}
          //      27
{2, 4, 8, 16, 32}              //      28
{0, 65, 65, 127,0}          // {0, 65, 65, 127,0,0}
          //      29
{4, 2, 1, 2, 4}                //      30
{64, 64, 64, 64, 64}           //      31
};

char  const ascii3[31][5] = {    // 0 -- 30 == 31 elements
   {0, 0, 7, 11,0}        // {0, 7, 11,0,0,0}
  //   0
   {32, 84, 84, 84, 56}     //   1
   {127, 40, 68, 68, 56}    //   2
   {56, 68, 68, 68,0}     //   3
   {56, 68, 68, 40, 127}     //   4
   {56, 84, 84, 84, 24}     //   5
   {8, 126, 9, 9, 2}     //   6
   {8, 84, 84, 84, 60}     //   7
   {127, 8, 4, 4, 120}     //   8
   {0, 68, 125, 64,0}      // {0, 68, 125, 64,0,0}
//   9
   {32, 64, 68, 61,0}     //   10
   {127, 16, 40, 68,0}     //   11
   {0, 65, 127, 64, 0}      // {0, 65, 127, 64,0,0}
//   12
   {124, 4, 120, 4, 120}     //   13
   {124, 8, 4, 4, 120}     //   14
   {56, 68, 68, 68, 56}     //   15
   {124, 20, 20, 20, 8}     //   16
   {8, 20, 20, 20, 124}     //   17
   {124, 8, 4, 4, 8}     //   18
   {72, 84, 84, 84, 36}     //   19
   {4, 63, 68, 68,0}     //   20
   {60, 64, 64, 32, 124}     //   21
   {28, 32, 64, 32, 28}     //   22
   {60, 64, 48, 64, 60}     //   23
   {68, 40, 16, 40, 68}     //   24
   {12,80, 80, 80, 60}     //   25
   {68, 100, 84, 76, 68}     //   26
   {0, 8, 54, 65,0}           // {0, 8, 54, 65,0,0}
//   27
   {0,0,119,0,0}             // {0, 119,0,0,0,0}     // 28
   {0, 65, 54, 8,0}           // {0, 65, 54, 8,0,0}
//   29
   {2,1,2,4,2}     //   30
};

void main(void)
{
  int char_index;
  int col_index;
  int x = 0;
  long msd, lsd;
  int delaycount;
  int16 startposition;

  set_tris_b(0);    //set portb to outputs
  set_tris_c(0x90); //set portc to outputs, c7 to input
  set_tris_d(0);
  hc595_out_satir(0);
  //port_b = 0;
  output_c(0);       //zero port c
  startposition = 0;

  for(i=0; i<79; i++)
    s1[i] =1;

  for(i=0; i<sizeof(msg_default); i++)
    s1[i] = msg_default[i];

  delay_ms(100);
  do
  {
    if(!input(pın_e1)) //if re1==low (pressed)
    {
       
       
       
      do
      {
        delay_cycles(2);
        printf("\f\r\n");             
        printf("\f\r\n\n kac karakter .(0--99):");
        msd=getc();
        delay_cycles(2);
        printf("%c",msd);
        delay_us(1);
      }while(!isamoung(msd,"0123456789"));
      do
      {
        lsd=getc();
        delay_cycles(2);
        printf("%c",lsd);
        delay_us(1);
      }while(!isamoung(lsd,"0123456789"));


      s1_char_size = 10*(msd-48) + (lsd-48);
      delay_cycles(2);
      printf("\r\n\n %lu karakter gırınız .: ",s1_char_size);
      get_line1();      // acquire 16 char.
    }  // end of ınput(pın_e1)

    // the delay count controls how fast the message scrolls
    delaycount=2;
    while (delaycount)
    {
      // this will be the index into our character
      col_index = startposition % 6;
      // this will be the index into our display msg array
      char_index = startposition / 6;

      // make sure that our index doesn't exceed our array size
      if (char_index >= sizeof(s1))
      {
        startposition = 0;
        char_index = 0;
        col_index = 0;
      }
      // grab the first char
      x = s1[char_index];

      // 74hc595 ler suruluyor
      output_high(pın_sh_cp);
      output_high(pın_st_cp);
      output_high(pın_ser_ın);
      output_low(pın_sh_cp);
      delay_us(1);
      output_high(pın_sh_cp);
      output_low(pın_ser_ın);

      for (i=0;i<80;i++) // we've 80 columns to
      {

        output_low(pın_st_cp);
        delay_us(200);
        output_high(pın_st_cp);
        delay_us(1);
        output_low(pın_sh_cp);
        delay_us(1);
        output_high(pın_sh_cp);

        if (col_index == 5)
        {
          col_index = 0;
          char_index++;
          if (char_index >= sizeof(s1))
            char_index = 0;
          x = s1[char_index];
        }
        else
        {
          if ( x < 32)
            hc595_out_satir(0);
          else if( x < 64)
            hc595_out_satir(ascii1[x-32][col_index]);
          else if( x < 96 )
            hc595_out_satir(ascii2[x-64][col_index]);
          else if( x < 128)
            hc595_out_satir(ascii3[x-96][col_index]);

          col_index++;
        }
        delay_us(120);
        hc595_out_satir(0);
      }
      delaycount--;
    }
    startposition++;
  } while(1);
}


4 Kullanıcı bu konu için electronikci arkadaşımıza teşekkür ettiler

Kayıt: 15 Ekm 2006
Mesajlar: 212

Offline
onurbilke
Tarih: 30 08 2007 03:55

Arkadaşım Foruma Ekledim Benim Yazıya Bak 5000 den fazla karakter hafızalı yardımcı olur sana
Başa dön



pc kontrollü 80 sütun kayan yazı_yardım


Benzer Konular

- 8 Satır Sutun Sayısı Artırılabilir Kayan Yazı(VB+Pic Basic+Ares+İsis)

- kayan yazı help me
- 2 satır kayan yazı
- Vhdl-7segment kayan yazı
- 16x128 dot-matrıx dısplay kayan yazı panosu
- 16f628 ile rf kontrollü robot
- 304*8 kayan yazı devresi
- pic16f628 ile 8x16 dotmatrix display kayan yazı projesi ve pic-C ile 2 örnek
- Bluetooth Kontrollü Araba (VS .Net VB - Proton+ Pic Pasic -Pic16F877 -Bluetooth)

- 16 Karakter Kayan Yazı




Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar için iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Türkiye | Ads by Google Adsense | Design by Crazy Bat based
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71