Em đang làm led matrix 32x8 (ghép 4 led matrix 8x8). Em dùng 5 con 745959, 4 con dùng điều khiển 32 cột còn 1 con điều khiển hàng (tổng cộng mất 6 chân vđk). code
void add(unsigned int x,unsigned int y)
{
unsigned char colum[32];
unsigned char row[8];
unsigned char co,ro;
co=0x1;
ro=0x1;
for(int i=0;i<32;i++)
{
for(int j=0;j<8;j++)
{
row[j]=~ro;
ro=ro<<1;
}
colum[i]=co;
co=co<<1;
ro=0x1;
}
send595C(colum[x-1]);
send595R(row[y-1]);
send595R(0xFF);send595C(0);
}
void main()
{
ANSEL=0; ANSELH=0;
TRISD0=TRISD1=TRISD2=TRISA0=TRISA2=TRISA1=0;
while(1)
{
add(12,4);
}
send595R và send595H là hàm truyền 74595 hàng và cột
Nhưng mảng cột colum[32] kiểu char chỉ chứa tối đa có 8 byte nên chương trình em hiển thị chỉ led matrix 8x8 đầu tiên thôi, có cách nào lưu được nhiều cột hơn không ạ? hay là cứ mỗi led matrix lại phải tạo 1 mảng 8 byte để lưu????
void add(unsigned int x,unsigned int y)
{
unsigned char colum[32];
unsigned char row[8];
unsigned char co,ro;
co=0x1;
ro=0x1;
for(int i=0;i<32;i++)
{
for(int j=0;j<8;j++)
{
row[j]=~ro;
ro=ro<<1;
}
colum[i]=co;
co=co<<1;
ro=0x1;
}
send595C(colum[x-1]);
send595R(row[y-1]);
send595R(0xFF);send595C(0);
}
void main()
{
ANSEL=0; ANSELH=0;
TRISD0=TRISD1=TRISD2=TRISA0=TRISA2=TRISA1=0;
while(1)
{
add(12,4);
}
send595R và send595H là hàm truyền 74595 hàng và cột
Nhưng mảng cột colum[32] kiểu char chỉ chứa tối đa có 8 byte nên chương trình em hiển thị chỉ led matrix 8x8 đầu tiên thôi, có cách nào lưu được nhiều cột hơn không ạ? hay là cứ mỗi led matrix lại phải tạo 1 mảng 8 byte để lưu????
Comment