![]() |
|
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 | |
|
|