ĐÂY LÀ PHƯƠNG PHÁP QUYETS HÀNG NHÉ A (16X64)
#include<reg52.h>
sbit SCK=P1^0;
sbit STR=P1^1;
sbit SDA= P1^2;
sbit Ctrl =P3^0;
/*-----------------------------------------------------------------------------------------------
Layer0
-----------------------------------------------------------------------------------------------*/
const unsigned char code cot[]=
{
/*-----------------------------------------------------------------------------------------------
Hexa C code for ledmatrix
Text content: "KHOA DIEN DIEN TU"
Code generated by the LedTECHPAL software
Width x Height(pixels):156x10
Size of data: 200 (byte)
Position of region(X:Y):0:0
-----------------------------------------------------------------------------------------------*/
0xF9, 0xEF, 0xFF, 0x1F, 0x80, 0xC0, 0x1F, 0xE3, 0xFF, 0xFB, 0xC7, 0x87, 0xF8, 0xFF, 0xFE, 0xF1,
0xE1, 0xFF, 0xFE, 0xF0, 0x70, 0x87, 0x1C, 0x39, 0xC0, 0xE0, 0x0E, 0x71, 0xC7, 0x19, 0xE2, 0x03,
0x9C, 0x71, 0xC6, 0x78, 0x81, 0x39, 0xB8, 0x40, 0x73, 0x07, 0x1C, 0x70, 0xE0, 0xE0, 0x0E, 0x39,
0xC7, 0x01, 0xF2, 0x03, 0x8E, 0x71, 0xC0, 0x7C, 0x80, 0x38, 0x38, 0x40, 0x76, 0x07, 0x1C, 0xE0,
0xE1, 0xE0, 0x0E, 0x39, 0xC7, 0x61, 0x7A, 0x03, 0x8E, 0x71, 0xD8, 0x5E, 0x80, 0x38, 0x38, 0x40,
0x7E, 0x07, 0xFC, 0xE0, 0xE1, 0x70, 0x0E, 0x39, 0xC7, 0xE1, 0x3A, 0x03, 0x8E, 0x71, 0xF8, 0x4E,
0x80, 0x38, 0x38, 0x40, 0x7F, 0x07, 0x1C, 0xE0, 0xE2, 0x70, 0x0E, 0x39, 0xC7, 0x61, 0x1E, 0x03,
0x8E, 0x71, 0xD8, 0x47, 0x80, 0x38, 0x38, 0x40, 0x77, 0x07, 0x1C, 0xE0, 0xE3, 0xF8, 0x0E, 0x39,
0xC7, 0x01, 0x0E, 0x03, 0x8E, 0x71, 0xC0, 0x43, 0x80, 0x38, 0x38, 0x40, 0x73, 0x87, 0x1C, 0x70,
0xE2, 0x38, 0x0E, 0x39, 0xC7, 0x01, 0x0E, 0x03, 0x8E, 0x71, 0xC0, 0x43, 0x80, 0x38, 0x38, 0x40,
0x71, 0xC7, 0x1C, 0x31, 0xC4, 0x1C, 0x0E, 0x71, 0xC7, 0x09, 0x06, 0x03, 0x9C, 0x71, 0xC2, 0x41,
0x80, 0x38, 0x1C, 0xC0, 0xFF, 0xFF, 0xFF, 0x1F, 0x0F, 0x7E, 0x1F, 0xE3, 0xFF, 0xFB, 0xC2, 0x07,
0xF8, 0xFF, 0xFE, 0xF0, 0x80, 0x7E, 0x0F, 0x80,
};
void delay(int t) // ham tao tre
{
int a,b;
for(a=0;a<t;a++)
{
for(b=0;b<120;b++);
}
}
void quet(unsigned char d)
{
unsigned char i,t;
for(i=0;i<8;i++)
{
t==d&0x80;
if(t==0x80)
SDA=1;
else SDA=0;
d=d<<1'
SCK=0;
SCK=1;
}
}
unsigned char buffer(unsigned char x,unsigned char y,char i)//xu ly du
lieu hang
{
unsigned char temp;
temp=(x<<i) | (y>>(8-i));
return temp;
}
void main() // chuong trinh chinh
{
char i,j,k,m;
P3=0x00;
while(1)
{
for(k=0;k<64-8;k++)// 64 la kich thuoc mang cot, 8 la so led
matrix
{
for(i=0;i<8;i++)// xu ly tung bit
{
for(j=0;j<10;j++) // vòn lap tạo trễ
{
for(m=0;m<16;m++)//quet tung hang
{
quet(buffer(cot[m*64+k+7],cot[m*64+k+8],i));//ma cho led 8
quet(buffer(cot[m*64+k+6],cot[m*64+k+7],i));//ma cho led 7
quet(buffer(cot[m*64+k+5],cot[m*64+k+6],i));//"m*64" , 64 là số cột của mảng
.
.
quet(buffer(cot[m*64+k],cot[m*64+k+1],i));//ma cho led 1
STR=0;
STR=1;
P2= m;
delay(2);
Ctrl=0;
Ctrl=1;
}
}
}
}
}
}
kết nối chân như sau
3 chân vđk p1^0 , P1^1 ,P1^2 kết nối với 3 chân con 74hc595 ở đây dùng 8 con mắc nối tiếp với nhau
4 chân vđk p2^0 , P2^1 ,p2^2 p2^3 kết nối với 4 chân A B C D con 74hc154 (ic đệm dong để quét hàng)
chân p3^0 nối vào 2 chân E1 E2 của 154 nữa
tại e xem trên youtube nên chưa vẽ lại mạch này a ak , e nghĩ chắc với a từng đấy là đủ để a hình dung ra