bạn ko cần dùng timer để quét led đâu. nên dùng delay thì đơn giản hơn. nếu cảm thấy led còn bị giật thì có thể giảm delay xuống cho phù hợn là được. nếu bạn cải cách phần cứng như tôi nói thì có thể dùng cách sau để hiển thị led
int chon_ic[4] = {0x01, 0x02,0x04,0x08};
void display()
{ int a,b,i;
for(a = 0;a<30;a++) // điều chỉnh tốc độ dịch chữ
{ for(b = 0;b<4;b++)
{ portb = chon_ic[b]; // chọn ic 138 để quet
for(i-0;i<8;i++) {porte = i; delay_ms(1);} // quet 138
}
}
}
tại vị trí cần hiển thị chữ lên led bạn chỉ cần gọi hàm này là được.
còn một điều rất quan trọng là trình mô phỏng rất hạn chế khi quét led, vì nếu thời gian quét càng nhỏ thì đồi hỏi tốc độ xử lý của máy tính càng cao, không đáp ứng được tốc độ quét của vxl do đó cũng có thể hiển thị sai (có thể bị giật hoặc không chạy).
|