2014-10-08 3 views
-1

PORTA (RA0, RA1)에서 처음 2 비트를 읽은 다음 어떻게 처리합니까? 스위치가 각 스위치에 연결되어 있고 RA0, RA11 인 경우 RB11을 출력하고 싶습니다.pic18f에서 포트를 읽은 다음 수행하십시오

I 출력

MOVLW 0xF 
MOVWF TRISA,0 ;PORTA IN 

로 입력으로 PORTAPORTB을 구성한 후, 루프, I 연속적 PORTA 값을 읽고 난 개의 최하위 비트 1에 있는지 확인하고 싶다. 이렇게하려면 PORTA을 WREG로 이동 한 후 값 PORTA0x03과 비교합니다. 내가 이전 값

0x03 그러나이 작동하지 않습니다를 저장 한 주소 0x02에서

MOVF PORTA, 0, 0 ;W<--PORTA 
CPFSLT 0x20, 0 
MOVWF PORTB,0 ;PORTB<--W 

, 난 이유를 모르겠어.

감사

답변

0

PORTA 0..3이 입력으로 설정되고 있지만, 출력으로 PORTB 핀을 구성하는 도시하지 않은 비트 많은. I/O 핀은 전원을 켤 때 입력이므로 명시 적으로 출력해야합니다. 계속 반복하고 있지만 W를 PORTB로 이동 한 후 분기 명령을 표시하지 않으면 PORTA를 루프백하여 다시 읽습니다. 그리고 CPFSLT는 0x20에있는 것과 비교하여 0x02에 3을 저장했습니다.

관련 문제