Vừa làm xong quả này, các cao nhân xem cho ý kiến ạh.
Code cho các bác tham khảo nhé, mún chỉnh nhanh chậm thì sửa 2 dòng delay hoặc delay vòng lập, muốn thêm port để đk 8x16 hay 8x24 thì gọi thêm thôi, chúc các bác thành công
Code cho các bác tham khảo nhé, mún chỉnh nhanh chậm thì sửa 2 dòng delay hoặc delay vòng lập, muốn thêm port để đk 8x16 hay 8x24 thì gọi thêm thôi, chúc các bác thành công
#include <REGX51.H>
/* Cot tu P1.0 den 1.7
Hang tu P2.0 den P3.7
De quet dua muc logic 0 lan luot ra cong 0
*/
/* Ham tre */
void delay(long time)
{
long n;
for(n=0; n<time; n++)
{
;
}
}
unsigned char kytu1[9];
unsigned char k=0;
/* Ham nap gia tri hien thi cac ky tu vao mang kytu1
co 8 gia tri dua ra va 1 gia tri khong bat den nao de cac ky tu cach nhau 1 cot */
void mahoa(unsigned char x)
{
switch(x)
{
case 0: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 1: { kytu1[0]=0x00; kytu1[1]=0x3E; kytu1[2]=0x0A; kytu1[3]=0x0E;
kytu1[4]=0x00; kytu1[5]=0x38; kytu1[6]=0x08; kytu1[7]=0x08; kytu1[8]=0x00;
break; }
case 2: { kytu1[0]=0x00; kytu1[1]=0x38; kytu1[2]=0x28; kytu1[3]=0x38;
kytu1[4]=0x00; kytu1[5]=0x38; kytu1[6]=0xA8; kytu1[7]=0xF8; kytu1[8]=0x00;
break; }
case 3: { kytu1[0]=0x00; kytu1[1]=0x38; kytu1[2]=0x08; kytu1[3]=0x08;
kytu1[4]=0x00; kytu1[5]=0x38; kytu1[6]=0x28; kytu1[7]=0x38; kytu1[8]=0x20;
break; }
case 4: { kytu1[0]=0x20; kytu1[1]=0x00; kytu1[2]=0x38; kytu1[3]=0x08;
kytu1[4]=0x38; kytu1[5]=0x08; kytu1[6]=0x38; kytu1[7]=0x00; kytu1[8]=0x38;
break; }
case 5: { kytu1[0]=0x38; kytu1[1]=0x08; kytu1[2]=0x38; kytu1[3]=0x08;
kytu1[4]=0x38; kytu1[5]=0x00; kytu1[6]=0x38; kytu1[7]=0x00; kytu1[8]=0x38;
break; }
case 6: { kytu1[0]=0x38; kytu1[1]=0x08; kytu1[2]=0x38; kytu1[3]=0x00;
kytu1[4]=0x38; kytu1[5]=0xA8; kytu1[6]=0xF8; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 7: { kytu1[0]=0x00; kytu1[1]=0x3C; kytu1[2]=0x0A; kytu1[3]=0x3C;
kytu1[4]=0x02; kytu1[5]=0x3E; kytu1[6]=0x02; kytu1[7]=0x00; kytu1[8]=0x3E;
break; }
case 8: { kytu1[0]=0x3E; kytu1[1]=0x2A; kytu1[2]=0x3E; kytu1[3]=0x00;
kytu1[4]=0x2E; kytu1[5]=0x2A; kytu1[6]=0x3E; kytu1[7]=0x00; kytu1[8]=0x3E;
break; }
case 9: { kytu1[0]=0x3E; kytu1[1]=0x22; kytu1[2]=0x22; kytu1[3]=0x00;
kytu1[4]=0x28; kytu1[5]=0x10; kytu1[6]=0x28; kytu1[7]=0x00; kytu1[8]=0x28;
break; }
case 10: { kytu1[0]=0x28; kytu1[1]=0x10; kytu1[2]=0x28; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 11: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 12: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
}
}
/* Ham quet led ma tran_ vua hien thi vua dich ky tu dan sang trai*/
void hienthi(void)
{
unsigned char n,m,lap;
unsigned char cot[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
for(m=0; m<8 ; m++)
{
for(lap=0; lap<10; lap ++)
{
for(n=0; n<8 ; n++)
{
if((n+m)<9 )
{
mahoa(k);
P0=cot[n];
P2=kytu1[n+m];
delay(45);
}
if((n+m) > 7)
{
mahoa(k+1);
P0=cot[n];
P2=kytu1[n+m-8];
delay(45);
}
P0=0xFF;
P2=0x00;
}
}
}
}
void main(void)
{
while(1)
{
hienthi();
k=k+1;
if(k==12) k=0;
}
}
/* Cot tu P1.0 den 1.7
Hang tu P2.0 den P3.7
De quet dua muc logic 0 lan luot ra cong 0
*/
/* Ham tre */
void delay(long time)
{
long n;
for(n=0; n<time; n++)
{
;
}
}
unsigned char kytu1[9];
unsigned char k=0;
/* Ham nap gia tri hien thi cac ky tu vao mang kytu1
co 8 gia tri dua ra va 1 gia tri khong bat den nao de cac ky tu cach nhau 1 cot */
void mahoa(unsigned char x)
{
switch(x)
{
case 0: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 1: { kytu1[0]=0x00; kytu1[1]=0x3E; kytu1[2]=0x0A; kytu1[3]=0x0E;
kytu1[4]=0x00; kytu1[5]=0x38; kytu1[6]=0x08; kytu1[7]=0x08; kytu1[8]=0x00;
break; }
case 2: { kytu1[0]=0x00; kytu1[1]=0x38; kytu1[2]=0x28; kytu1[3]=0x38;
kytu1[4]=0x00; kytu1[5]=0x38; kytu1[6]=0xA8; kytu1[7]=0xF8; kytu1[8]=0x00;
break; }
case 3: { kytu1[0]=0x00; kytu1[1]=0x38; kytu1[2]=0x08; kytu1[3]=0x08;
kytu1[4]=0x00; kytu1[5]=0x38; kytu1[6]=0x28; kytu1[7]=0x38; kytu1[8]=0x20;
break; }
case 4: { kytu1[0]=0x20; kytu1[1]=0x00; kytu1[2]=0x38; kytu1[3]=0x08;
kytu1[4]=0x38; kytu1[5]=0x08; kytu1[6]=0x38; kytu1[7]=0x00; kytu1[8]=0x38;
break; }
case 5: { kytu1[0]=0x38; kytu1[1]=0x08; kytu1[2]=0x38; kytu1[3]=0x08;
kytu1[4]=0x38; kytu1[5]=0x00; kytu1[6]=0x38; kytu1[7]=0x00; kytu1[8]=0x38;
break; }
case 6: { kytu1[0]=0x38; kytu1[1]=0x08; kytu1[2]=0x38; kytu1[3]=0x00;
kytu1[4]=0x38; kytu1[5]=0xA8; kytu1[6]=0xF8; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 7: { kytu1[0]=0x00; kytu1[1]=0x3C; kytu1[2]=0x0A; kytu1[3]=0x3C;
kytu1[4]=0x02; kytu1[5]=0x3E; kytu1[6]=0x02; kytu1[7]=0x00; kytu1[8]=0x3E;
break; }
case 8: { kytu1[0]=0x3E; kytu1[1]=0x2A; kytu1[2]=0x3E; kytu1[3]=0x00;
kytu1[4]=0x2E; kytu1[5]=0x2A; kytu1[6]=0x3E; kytu1[7]=0x00; kytu1[8]=0x3E;
break; }
case 9: { kytu1[0]=0x3E; kytu1[1]=0x22; kytu1[2]=0x22; kytu1[3]=0x00;
kytu1[4]=0x28; kytu1[5]=0x10; kytu1[6]=0x28; kytu1[7]=0x00; kytu1[8]=0x28;
break; }
case 10: { kytu1[0]=0x28; kytu1[1]=0x10; kytu1[2]=0x28; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 11: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
case 12: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;
kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;
break; }
}
}
/* Ham quet led ma tran_ vua hien thi vua dich ky tu dan sang trai*/
void hienthi(void)
{
unsigned char n,m,lap;
unsigned char cot[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
for(m=0; m<8 ; m++)
{
for(lap=0; lap<10; lap ++)
{
for(n=0; n<8 ; n++)
{
if((n+m)<9 )
{
mahoa(k);
P0=cot[n];
P2=kytu1[n+m];
delay(45);
}
if((n+m) > 7)
{
mahoa(k+1);
P0=cot[n];
P2=kytu1[n+m-8];
delay(45);
}
P0=0xFF;
P2=0x00;
}
}
}
}
void main(void)
{
while(1)
{
hienthi();
k=k+1;
if(k==12) k=0;
}
}
Comment