Trích:
Nguyên văn bởi congtri91
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,