#include <16f877a.h>
#use delay (clock=20000000)
#use fast_io(b)
#use fast_io(d)
#byte forta=0x05
#byte fortb=0x06
#byte fortc=0x07
#byte fortd=0x08
#byte porte=0x09
unsigned char i,j,k,m,n;
unsigned int cot[]= {0Xfe,0Xfd,0Xfb,0Xf7,0Xef,0Xdf,0Xbf,0X7f};
unsigned char hang[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x7F,0x08,0x08,0x08,0x7F,0x00,
0x00,0x00,0xFF,0x40,0x20,0x10,0x08,0x04,0xFF,0x00
};
void main ()
{
set_tris_b(0x00);
set_tris_d(0x00);
;
while (true)
{
for(j=0;j<=22;j++)
{for(k=0;k<=2;k++)
{
for (i=0;i<=7;i++)
{
output_d(cot[i]);
output_b(hang[i+j]);
delay_us(1.5);
}
}}
}
}
em phải delay tới 1.5 us thì khi kí tự chạy trên led matrix 8x8 trong proteus mới nhấp nháy ít còn em delay khoảng 5 us thì dịch hiện thj led chạy rất chậm đến 8 s (trong proteus ) mới xuất hiện kí tự chạy từ trái qua phải. Anh có thể giải thích tại sao phải delay 2 us không và nhân tiện viết công thức tính thời gian trong quá trình dịch hiển thị trong đoạn code trên cho em với ạ ? Thanks so much !!!