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();
}
}
Bài liên quan
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.
…
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ố.