Thông báo

Collapse
No announcement yet.

Led matrix chạy loàng ngoàng

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Led matrix chạy loàng ngoàng

    Chào các bác

    em nhờ các bác xem giúp em đoạn code bên dưới sao có nhiều kiến ở đâu bò vào
    chán quá bác ah.


    File mô phỏng proteus 7.5 sp3

    nhân tiện các bác cho em hỏi luôn. em dùng LCD Font Maker 3.92,chưa đăng ký.
    sau khi tạo font xong cứ có cái đường kẻ ở giữa(hay là chưa đăng ký nên nó bị như vậy)??? Bác nào biết chỉ giùm em mới.

    Code:
    // *************** PHUONG PHAP QUET : QUET HANG ********************************
    // **************** LINH KIEN CHINH : IC 74HC595,  pic 16F, ********************************
    
    //******************** KHAI BAO PHAN CUNG CHO VI DIEU KHIEN ********************
    #include "16F877a.h"
    #fuses NOLVP,NOWDT,PUT,HS,NOPROTECT,NOBROWNOUT
    #use delay(clock=20000000)
    #use fast_io(b)
    #use fast_io(c)
    #use fast_io(a)
    #define sck1 pin_c3
    #define data1 pin_c5
    #define chot1 pin_c2
    
    //==================== CAC BIEN DUNG TRONG CHUONG TRINH ========================
    int8 const t=8;
    int8  d0[t],d1[t],d2[t],d3[t],d4[t],d5[t],d6[t],d7[t];
    int const font[] = { 
    
    
    /*------------------------------------------------------------------------------
    ; If font display distortion, please check Fonts format of setup.
    ; Source file / text :
    ; Width x Height (pixels) :24X8
    ;  Font Format/Size : Monochrome LCD Fonts ,Horizontal scan ,Little endian order/24Byte
    ;  Font make date  : 5/28/2010 2:46:04 PM
    ------------------------------------------------------------------------------*/
    0x00,0x00,0x00,0x2E,0x4C,0x3A,0x24,0x52,0x0A,0x24,0x52,0x3A,0xFF,0xFF,0xFF,0x24,
    0x52,0x0A,0xEE,0x8C,0x39,0x00,0x00,0x00,
    };
            
                          //khoang trang
                              
    //****************************************************
    void display()
       { int8 l,m,x;
    
          //dua 8*t bit ra cot ung voi hang 1
    for(l=t;l>0;l--)    // nap data moi vao 595 , 8*4 =32 bit
       {
        for(m=0;m<8;m++)
         {
         if (d0[l]>=128)    // 128 =0b10000000 de khi xoay trai lay ra bit can dich
             {output_high(data1);}       
         else {output_low(data1);}
            rotate_left( &d0[l],1);      //  bat dau dua 8 bit cua d0[l] vao 595
            output_high(sck1);
            output_low(sck1);
                            }
                                  }
           output_low(pin_c4);    //khong cho fep 74ls138
           output_high(chot1);    // dua data tu 595 ra cac cot
           output_low(chot1);
           output_b(0);           //hang0
           output_high(pin_c4);   // cho fep quet hang
           delay_us(1500);
       //-------------------------------------------------------
       
       
    for(l=t;l>0;l--)     // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                   if (d1[l]>=128) 
                      {output_high(data1);}
                   else {output_low(data1);}
                      rotate_left( &d1[l],1);
                      output_high(sck1); 
                      output_low(sck1);
                   }
             }
            output_low(pin_c4);
            output_high(chot1); 
            output_low(chot1);
           output_b(1); 
           output_high(pin_c4); 
           delay_us(1500);
      //-------------------------------------------------------
       for(l=t;l>0;l--)  // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                    if (d2[l]>=128)
                      {output_high(data1);}
                    else {output_low(data1);}
                      rotate_left( &d2[l],1);
                      output_high(sck1);
                      output_low(sck1);
                   }
             }
           output_low(pin_c4); 
           output_high(chot1);  
           output_low(chot1);
           output_b(2);
           output_high(pin_c4); 
           delay_us(1500);
       //-------------------------------------------------------
       for(l=t;l>0;l--)  // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                      if (d3[l]>=128) 
                      {output_high(data1);}
                      else {output_low(data1);}
                      rotate_left( &d3[l],1);
                      output_high(sck1);
                      output_low(sck1);
                   }
             }
           output_low(pin_c4);  
           output_high(chot1);
           output_low(chot1);
           output_b(3);
           output_high(pin_c4);
           delay_us(1500);
       //-------------------------------------------------------
       for(l=t;l>0;l--)  // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                      if (d4[l]>=128)
                      {output_high(data1);}
                      else {output_low(data1);}
                      rotate_left( &d4[l],1);
                      output_high(sck1);
                      output_low(sck1);
                   }
             }
           output_low(pin_c4); 
           output_high(chot1); 
           output_low(chot1);
           output_b(4);
           output_high(pin_c4); 
           delay_us(1500);
     //-------------------------------------------------------
       for(l=t;l>0;l--)  // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                      if (d5[l]>=128) {output_high(data1);}
                      else {output_low(data1);}
                      rotate_left( &d5[l],1);
                      output_high(sck1); output_low(sck1);
                   }
             }
           output_low(pin_c4); 
           output_high(chot1); 
           output_low(chot1);
           output_b(5); 
           output_high(pin_c4); 
           delay_us(1500);
       //-------------------------------------------------------
       for(l=t;l>0;l--)  // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                      if (d6[l]>=128) {output_high(data1);}
                      else {output_low(data1);}
                      rotate_left( &d6[l],1);
                      output_high(sck1); output_low(sck1);
                   }
             }
           output_low(pin_c4);
           output_high(chot1); 
           output_low(chot1);
           output_b(6);
           output_high(pin_c4);
           delay_us(1500);
              
       
       //-------------------------------------------------------
       for(l=t;l>0;l--)  // nap data moi vao 595
             {
               for(m=0;m<8;m++)
                  {
                      if (d7[l]>=128) {output_high(data1);}
                      else {output_low(data1);}
                      rotate_left( &d7[l],1);
                      output_high(sck1); 
                      output_low(sck1);
                   }
             }
           output_low(pin_c4);  
           output_high(chot1);
           output_low(chot1);
           output_b(7);
           output_high(pin_c4);
           delay_us(1500);
       
       }
    //================================= end ===========================================
      
      
    void dich()
       {  int y,z,i;      
          
       for(z=t-1;z>0;z--)
                         { if(z==8)i=0 ;else i+=1;// CHU Y DEN Z, dich tu byte cao nhat cua mang, so lan dich  Z > ? =byte cao nhat - cho so byte cua chu
                          d0[z]=font[i*1+0];
                          d1[z]=font[i*1+1];
                          d2[z]=font[i*1+2];
                          d3[z]=font[i*1+3];
                          d4[z]=font[i*1+4];
                          d5[z]=font[i*1+5];
                          d6[z]=font[i*1+6];
                          d7[z]=font[i*1+7];
                          
                         };// lay data tu font vao cac hang de thuc hien dich boi lenh duoi,
       
     for(y=0;y<52;y++)
                   {  // dich data cua hang 7 di t byte voi bit 0
                      
                      shift_right(d7,t,0);// dich data cua hang 7 di t byte voi bit 0
                      shift_right(d6,t,0);  
                      shift_right(d5,t,0);  
                      shift_right(d4,t,0);
                      shift_right(d3,t,0);   
                      shift_right(d2,t,0);    
                      shift_right(d1,t,0);    
                      shift_right(d0,t,0);
                      for(i=0;i<5;i++) 
                                     {display();   // goi chung trinh hien thi
      
                                     }
                                          }
                                              }
    
     //******************* CHUONG TRINH CHINH *********************
     void main()
       {  // tat ca dieu la chan ra
          set_tris_b(0);
         set_tris_a(0);
          set_tris_c(0x00);
         
          delay_ms(100);
          while(1)
            {dich();
            
            delay_ms(100);
    
          }
       }
     //============================== THE END ======================================
    Attached Files
    Last edited by hatbui; 28-05-2010, 16:12.
    Email:
    đt-zalo-fb: 0984 93 96 94
    Kakao talk: sinotruk

Về tác giả

Collapse

hatbui Tìm hiểu thêm về hatbui

Bài viết mới nhất

Collapse

Đang tải...
X