01/10/2018, 12:13

E mới làm led ma trận 2 màu p10. mong anh chị và các bạn giúp đỡ

TRÊN MODULE P10 CÓ 1 IC DỊCH 16 BIT E NGHĨ NÓ LÀ MBI5026. IC ĐỆM 245, IC GIẢI MÃ 138.
E CÓ VIẾT DÒNG CODE ĐỂ DỊCH NHƯ SAU, NHƯNG DỮ LIỆU E MUỐN HIỂN THỊ LÀ CHỮ DIV NHUNG NÓ CHỈ SÁNG CÓ 4 HÀNG DUY NHẤT. E NGHĨ MÌNH ĐÃ DỊCH SAI.

#INCLUDE <18F4550.H>
#DEVICE     ADC=10
#FUSES      NOWDT,PUT,HS,NOPROTECT,NOLVP,CPUDIV1
#USE        I2C(MASTER,SLOW,SDA=PIN_B0,SCL=PIN_B1)
#USE        DELAY(CLOCK=20000000)
#DEFINE  BT_UP     PIN_C0
#DEFINE  BT_DW     PIN_C1
#DEFINE  BT_MOD     PIN_C2

#DEFINE  A     PIN_D6
#DEFINE  B    PIN_D5
#DEFINE  OE     PIN_D7
#DEFINE  CLK     PIN_C7
#DEFINE   XUAT   PIN_D4
#DEFINE  DR     PIN_C6
#DEFINE  DG     PIN_C5
unsigned char ma[16][4]=
{
   0x00,0x00,0x00,0x00,0x3F,0x06,0x30,0xC0,0x3F,0x86,0x30,0xC0,0x30,0xC0,0x30,0xC0,
   0x30,0xC6,0x30,0xC0,0x30,0xC6,0x31,0xC0,0x30,0xC6,0x19,0x80,0x30,0xC6,0x0F,0x00,
   0x30,0xC6,0x06,0x00,0x30,0xC6,0x06,0x00,0x30,0xC6,0x06,0x00,0x30,0xC6,0x06,0x00,
   0x30,0xC6,0x06,0x00,0x3F,0x86,0x06,0x00,0x3F,0x06,0x06,0x00,0x00,0x00,0x00,0x00
};
VOID HANG(UNSIGNED CHAR SOHANG)
     {
      switch(SOHANG)
      {
       case 1:{OUTPUT_LOW(A);OUTPUT_LOW(B);OUTPUT_high(OE);break;} 
       case 2:{OUTPUT_HIGH(A);OUTPUT_LOW(B);OUTPUT_high(OE);break;}
       case 3:{OUTPUT_LOW(A);OUTPUT_HIGH(B);OUTPUT_high(OE);break;}
       case 4:{OUTPUT_HIGH(A);OUTPUT_HIGH(B);OUTPUT_high(OE);break;} 
      }
    }
void chuyen(unsigned char DL)
     {
        unsigned char i;
        UNSIGNED INT16   DT;   //SHORT  BSERI;
        #BIT BSERIX  = DT.15
      
       for(i=0;i<16;i++)
        {
           //OUTPUT_BIT(DR,BSERIX); 
           OUTPUT_BIT(DG,BSERIX);
             // Tao xung dich du lieu
                OUTPUT_LOW(CLK);
               OUTPUT_HIGH(CLK);
            DT=DL & (0x80>>i);
            
       }
    }
void hienthi()
     {
      
        unsigned char y,z,x;  
         for(x=1;x<5;x++)
         {    
            for(y=0;y<4;y++)
            {
               for(z=16;z>0;z=z-4)
              {
               chuyen(~ma[z-x][y]);  
              }
            }         
       OUTPUT_LOW(XUAT);
       OUTPUT_HIGH(XUAT);
       hang(5-x);                                                      
       delay_MS(200); 
         OUTPUT_LOW(OE); 
       delay_MS(1000-400);
       }  
    }
 VOID MAIN ()
 { 
       WHILE(TRUE)
       {
        hienthi();
       }
 }
Văn Dương viết 14:19 ngày 01/10/2018

Bạn nên mô tả thuật toán, phần cứng thì mọi người mới có thể giúp được. Vì không ai biết modul P10 là cái gì cả.

Hoặc cung cấp thông tin như :
Ma trận kích thước bao nhiêu.
Quét hàng hay quét cột.
Hàng xuất mức nào, cột xuất mức nào.

Nguyễn Thành Luân viết 14:22 ngày 01/10/2018

ma trận 16x32 mình muốn quét theo cột. có chân oe tich cực mức cao. chân a và b để lựa chọn hàng tích cực mức 1. chân sck tạo xung, rck đê chốt. 2 chân dữ liệu DR và DG để xuất dữ liệu tương ứng màu đỏ và xanh. ic dịch là mbi5026 loại 16bit để xuất cột tích tực mức 1. ma[16][4] là tách ra 16 hàng và 8 cột là cho hiển thị 1 số. nên trên module mình sẽ hthi tối đa 4 số.

Bài liên quan
0