|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
26-11-2009, 10:55 AM | #15 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 3
: |
Code:
MOVLW d’20’ ; đưa giá trị 20 vào thanh ghi W MOVWF delay‐reg ; delay‐reg <‐ 20 loop DECFSZ delay‐reg,0 ; giảm giá trị trong thanh ghi delay‐reg ; và so sánh với 0, kết quả chứa trong W GOTO loop ; nếu giá tri thanh ghi “delay_reg” khác 0 ; thì nhảy tới label “loop” -Giả sử ban đầu nạp vào thanh ghi delay_reg giá trị là 2.Loop lần 1 sẽ giảm thanh ghi delay_reg xuống còn 1 so sánh rồi thực hiện lệnh goto.Loop lần 2 sẽ giảm thanh ghi delay_reg xuống còn 0 so sánh thì nhảy cách.Như vậy chẳng phải chỉ có 2 lần giảm thanh ghi.Trong khi trong bài hướng dẫn tác giả lại nói là N+1 tức ở đây là 3 lần -Và như mình thấy ở trên lần giảm thanh ghi cuối cùng tức từ 1->0 thì lệnh goto loop ko được thực hiện vậy sao khi tính thời gian thực hiện lại là 3x(N+1).Có phải lúc đó lệnh Goto loop được thay bởi lệnh nop (1 chu kỳ) + decfsz lần cuối ( 2 chu kỳ) nên được gộp chung vào ko |
|
|