문제 : - - 소개 (장)은 bookname 19 페이지 : 참고로 책을 사용하여 입력과 출력PIC를 사용하여 포트를 입력 또는 출력으로 설정하는 방법은 무엇입니까? 존 모튼 제 3 판 - PIC는 마이크로 컨트롤러 :
임로 포트 A 및 포트 B를 설정하는 방법에 대한 이해를 할 수 없습니다 개인 입문 과정
내가 책에서 이해 무엇에 따르면, 비트 번호가 같은 포트 DCBA하고 그게 전부 읽기 왼쪽으로, 그렇게 생각 메신저 오른쪽에서가는 이유 : b'0010 '그러나
,이 단락 페이지 18은 정말로 혼란 스럽습니다.
리터럴을 작업 레지스터로 이동시킵니다. 그런 다음 명령 트리스는 작업 레지스터에서 번호를 가져와 포트의 비트가 입력으로 작동하고 출력으로는 을 선택하는 데 사용합니다. 바이너리 1은 입력에 해당하고 0은 출력에 해당합니다. 각 포트, 4 비트가있는 경우
그리고 다시 읽고, 나는 궁금해, 내가 입력 얼마나 많은 이들의 선택하고 출력은 몇입니까? 하지만 포트는 출력 또는 입력 만 가능하다고 생각했습니다.
누군가가 명확하게 설명하겠습니까?
__config _CP_OFF & _WDT_OFF & _XT_OSC
list P = 16F57;
include "C:\Program Files (x86)\Microchip\MPLABX\v3.40\mpasmx\p16f57.inc";
portA equ 05
portB equ 06
org 0 ; Starts at 0?
goto Start
Init
clrf portA ; Reset Port A and B States
clrf portB ;
movlw b'0010'; Set port B as output
tris portA;
movlw b'0010'; Set Port A as input
;0010 should mean -> ABCD port states?
tris portB;
retlw 0; return
Start
call Init;
Main
bsf portA,0;
goto Main;
END
답변 해 주셔서 감사합니다. 그러나 칩을 외부 세계에 연결하기 위해 "핀"을 사용할 수 있다면 왜 "포트"에 대한 정의가 있습니까? – KenobiShan
@ScientistGirl - 포트의 각 비트가 개별 핀에 해당하기 때문에 - 핀을 사용하려면 올바른 포트 레지스터를 참조해야합니다. 예를 들어, 위의 코드에서 RA0은 출력으로 설정되었습니다. 이제, 만약 그 출력을 높은 레벨로 설정하고 싶다면,이'BSF PORTA, 0'와 같이 PORTA 레지스터 내에서 관련 비트를 설정해야합니다. 출력을 낮게 설정하려면'BCF PORTA, 0'을 사용합니다. –
그것에 대해 생각해 볼 수있는 또 다른 방법은 8 비트 마이크로 컨트롤러로 작업하는 것입니다. 칩의 설계자가 단일 핀에 대해 전체 레지스터를 사용할 수는 있지만, 이는 7 비트의 낭비입니다 (핀에는 1 비트 만 필요함). 보다 효율적으로 사용하려면 각 비트가 개별 핀과 연결되어있는 8 비트 레지스터가 필요합니다. 이는 공간을 절약합니다. 데이터 시트 [여기] (http://ww1.microchip.com/downloads/en/DeviceDoc/41213D.pdf)를 살펴 보시기 바랍니다. –