2012-10-10 4 views
1

모두에게 당신에게 좋은 날;윌 movlw PORTB, movwf PORTC의 작품

나는 지금 2 일 동안 그림을 프로그래밍하기 시작했다. 그리고 조립에 관한 질문이 있으시면 EASYPIC7 (개발) 보드에 PIC 16F887a가 있습니다. PORTB의 버튼을 읽고 PORTC로 보내 봅니다.

그래서 내가 뭘 문질러서 :

movlw PORTB ; mov value of PORTB to "W file" (depents on which switches are pressed) 

하고, direcly 후 그

movwf PORTC ; mov value of "W file" to PORTC and should light up the led's 

그러나 행운, 수이 작품 (그리고 PIC의 잘못된 내가 설정했다) 또는이 없습니다 일한다면 왜 그렇게하지 않습니까?

+0

PORTB를 입력으로 설정하고 PORTC를 출력으로 설정 했습니까? – Marty

답변

4

movlw은 WREG에 리터럴 값을 배치합니다. 즉, 값은 어셈블리 타임에 결정된 상수입니다. movlw PORTB은 PORTB의 값이 아니라 WREG에 PORTB의 주소의 하위 바이트를 배치합니다. 값을 얻으려면 movf 명령어를 사용해야합니다.

movf PORTB, W ; Place the value of PORTB in WREG 
movwf PORTC ; Store WREG into PORTC 
+0

예, 그 속임수를했습니다! 고맙습니다. – Plumbum7