View Single Post
Old 30-08-2009, 09:37 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi congtri91 View Post
các bác cho em hỏi lệnh MOVF và lệnh MOVLW khác nhau ở chỗ nào vậy ạ????
trong đoạn code làm sáng led portb, nếu em viết:
MOVLW b'11111111'
MOVWF PORTB
thì led ở portb sáng, tuy nhiên nếu em viết:
MOVF b'11111111'
MOVWF PORTB
thì led ở portb lại chỉ sáng có một bóng

mong các bác chỉ giúp em về sự khác biệt này
MOVLW k sẽ copy giá trị k vào thanh ghi W, còn MOVF f, d sẽ copy giá trị của thanh ghi f vào thanh ghi đích (W hoặc f, tùy theo d = 0 hay 1).

Ở đoạn code dùng MOVF của bạn, bạn không mô tả tham số thứ hai của lệnh MOVF. Do đó, nếu trình dịch mặc định nó là '0' thì giá trị của thanh ghi 0xFF sẽ được copy vào W, còn nếu trình dịch mặc định nó là '1' thì giá trị của thanh ghi 0xFF sẽ được copy vào chính nó, còn W không bị ảnh hưởng. Cả hai trường hợp đều không đảm bảo là W sẽ được đặt giá trị 0xFF như trong đoạn code đầu tiên của bạn. Do đó, kết quả chạy khác nhau là dễ hiểu.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn