Trả lời cho hai bạn wicamb và angel_eyes, cùng những bạn khác đã và sẽ có thắc mắc về cách tính thời gian trễ (trì hoãn) này. Với đoạn code dưới đây:
Code:
movlw D'20'
movwf cnt
wait
decfsz cnt
goto wait
lệnh goto sẽ được thực thi 19 lần, và khi cnt giảm từ 1 xuống 0, lệnh goto sẽ bị bỏ qua, thay bằng một lệnh nop. Thời gian thực thi của đoạn code này là (2 + 19*3 + 2) chu kỳ máy. 2 chu kỳ máy đầu tiên dành cho 2 lệnh movlw và movwf.
Tổng quát, nếu bạn thay 20 bằng N (0 < N <= 255), thời gian thực thi của đoạn code trên sẽ là (2 + (N-1)*3 + 2) chu kỳ máy. Viết gọn lại là (3*N + 1).
Tutorial của Chính tính không chính xác, và thời gian đó tôi đã không kiểm tra code trong tutorial.
Thân,