viết cái code này cho AT89C51 Cho tớ hỏi để cho led matrix chạy đúng 1s so với ngoài đời thì làm như thế nào mình đã tạo hàm trễ dùng timer nhưng khi kết hợp với led matrix quét led thì thời gian kết hợp thì chưa dõ vì cả vòng lặp
Các bạn chỉ dõ cho mình cách chạy đúng thòi gian ngoài đời và giải thích giúp mình nhé đây là code của mình dùng matrix 5*7
cảm ơn các bạn trước nhé !!!
#include<at89x51.h>
void delay(int s)
{
while(s--)
{
TMOD=0x01;//hehe hehe
TH0=0xFC;
TL0=0x18;
TR0=1;//cho phep timer hoat dong
while(!TF0);
TF0=0;
TR0=0;
}
}
unsigned char m,n,lap;
void quet(unsigned int x)
{
while(x--){}
}
unsigned char quetcot[5]={0x01,0x02,0x04,0x08,0x10};
unsigned char codeled[5][5]={{0xc1,0xbe,0xbe,0xbe,0xc1},{0xfb,0xfd,0x80,0xff, 0xff},{0x9d,0xae,0xb6,0xb8,0xff},{0xff,0xbe,0xb6,0 xb6,0xc9},
{0xf7,0xf3,0xf5,0xf6,0x80}};
void dislay()
{
for(m=0;m<5;m++)
{
for(lap=0;lap<5;lap++)
{
for(n=0;n<5;n++)
{
P2=quetcot[n];
P1=codeled[m][n];
delay(10);
P1=0xff;
P2=0x00;
}
}
delay(975);
}
}
void main()
{
while(1)
{
quet();
dislay();
}
}
Các bạn chỉ dõ cho mình cách chạy đúng thòi gian ngoài đời và giải thích giúp mình nhé đây là code của mình dùng matrix 5*7
cảm ơn các bạn trước nhé !!!
#include<at89x51.h>
void delay(int s)
{
while(s--)
{
TMOD=0x01;//hehe hehe
TH0=0xFC;
TL0=0x18;
TR0=1;//cho phep timer hoat dong
while(!TF0);
TF0=0;
TR0=0;
}
}
unsigned char m,n,lap;
void quet(unsigned int x)
{
while(x--){}
}
unsigned char quetcot[5]={0x01,0x02,0x04,0x08,0x10};
unsigned char codeled[5][5]={{0xc1,0xbe,0xbe,0xbe,0xc1},{0xfb,0xfd,0x80,0xff, 0xff},{0x9d,0xae,0xb6,0xb8,0xff},{0xff,0xbe,0xb6,0 xb6,0xc9},
{0xf7,0xf3,0xf5,0xf6,0x80}};
void dislay()
{
for(m=0;m<5;m++)
{
for(lap=0;lap<5;lap++)
{
for(n=0;n<5;n++)
{
P2=quetcot[n];
P1=codeled[m][n];
delay(10);
P1=0xff;
P2=0x00;
}
}
delay(975);
}
}
void main()
{
while(1)
{
quet();
dislay();
}
}
Comment