![]() |
|
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 |
|
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Oct 2006
Bài gửi: 8
: |
- Bác nào rảnh giải thích giúp em cái hàm Delay này cái:
Code:
Delay Movlw d’250’ Movwf count1 D1 Movlw 0xc7 Movwf counta Movlw 0x01 Movwf countb Delay_0 Decfsz counta, f Goto $+2 Decfsz countb, f Goto Delay_0 Decfsz count1, f Goto D1 Return - và lệnh "Goto Delay_0" với "Goto D1" thì có gì khác nhau? em thấy trong một số hàm Delay người ta chỉ dùng có lệnh "Goto Delay_0" Em xin cảm ơn rất nhiều. thay đổi nội dung bởi: namqn, 30-03-2008 lúc 07:52 PM. |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
$ là địa chỉ lệnh hiện hành, $ + 2 là ô nhớ lệnh cách vị trí hiện hành 2 đơn vị.
Với ví dụ trên của bạn (giả sử viết cho PIC16), lệnh GOTO $ + 2 dùng để chuyển điều khiển đến lệnh GOTO Delay_0 nếu sau khi giảm biến counta kết quả vẫn khác 0 (tức là nếu sau khi giảm counta mà counta vẫn khác 0 thì bỏ qua lệnh giảm countb). Đoạn chương trình trên dùng 3 biến đếm, do đó nếu cập nhật counta, rồi countb, thì sẽ đến lượt count1 được cập nhật. Do đó cần dùng các nhãn Delay_0 hay D1 cho các lệnh GOTO một cách thích hợp. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|