맨위로가기

마이크로컨트롤러 포트

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

마이크로컨트롤러 포트는 마이크로컨트롤러가 외부 장치와 데이터를 주고받기 위한 입출력 핀을 의미한다. 8051, ATmega 등 다양한 마이크로컨트롤러는 각기 다른 포트 구성을 가지며, 디지털 입출력 및 아날로그 입력 기능을 제공한다. 포트는 스위치 입력, LED 출력 제어 등 다양한 하드웨어 제어에 활용되며, 릴레이 구동과 같은 예시를 통해 포트의 활용 방법을 보여준다.

더 읽어볼만한 페이지

  • 아두이노 - UART
    UART는 비동기 직렬 통신을 위한 하드웨어 장치로, 데이터를 바이트 단위로 전송하고 수신하며, 다양한 오류 감지 기능을 통해 PC와 주변 기기 연결 등 다양한 분야에서 활용된다.
  • 아두이노 - UDOO
    UDOO는 2013년 킥스타터를 통해 시작된 단일 보드 컴퓨터로, 듀얼, 쿼드 등 세 가지 모델로 출시되었으며 ARM Cortex-A9 프로세서를 탑재하여 고성능 비디오 및 그래픽 처리를 지원한다.
  • 마이크로컨트롤러 - 마이크로프로세서
    마이크로프로세서는 CPU 기능을 단일 IC에 통합한 것으로, 무어의 법칙에 따라 성능이 향상되어 왔으며 다양한 아키텍처와 기술 발전을 거쳐 현재 광범위한 분야에서 사용된다.
  • 마이크로컨트롤러 - ARM 아키텍처
    ARM 아키텍처는 저전력 설계로 모바일 기기에서 널리 쓰이는 RISC 기반 프로세서 아키텍처로서, IP 코어 라이선스 모델과 ARM Flexible Access를 통해 다양한 분야로 확장되고 있다.
  • 디지털 전자공학 - 트랜지스터-트랜지스터 논리
    트랜지스터-트랜지스터 논리(TTL)는 1961년 제임스 L. 부이에 의해 발명된 바이폴라 접합 트랜지스터 기반의 디지털 회로 기술로, 텍사스 인스트루먼츠의 7400 시리즈를 통해 널리 사용되었으며, 저렴한 비용으로 디지털 기술 발전에 기여했다.
  • 디지털 전자공학 - 플립플롭
    플립플롭은 1비트 이상의 정보를 저장하는 디지털 논리 회로로, 에클스-조던 트리거 회로에서 기원하여 SR, D, T, JK 등 다양한 유형으로 구현되며, 컴퓨터 기억 장치의 기본 구성 요소로 사용되지만 타이밍 요소에 민감하게 설계해야 한다.

2. 마이크로컨트롤러 포트

마이크로컨트롤러의 포트는 디지털 입출력, 아날로그 입력 등 다양한 기능을 수행하며, 외부 회로와의 연결을 통해 마이크로컨트롤러가 주변 장치를 제어하고 데이터를 주고받을 수 있도록 한다. 인텔 8051은 4개의 포트(PORT 0, PORT 1, PORT 2, PORT 3)로 구성되며, 외부 메모리를 추가할 경우 PORT 0와 PORT 2는 사용할 수 없다. ATmega는 기능에 따라 다양한 구성의 제품이 출시되어 포트 구성이 다르며, 디지털 입출력과 아날로그 입력이 존재한다.[3]

2. 1. 8051 포트

인텔 8051 포트 구성


8051은 4개의 포트로 구성된다.

포트 이름
PORT 0
PORT 1
PORT 2
PORT 3



외부 메모리 추가 시 PORT 0와 PORT 2는 디지털 입출력으로 사용할 수 없다.

2. 2. ATmega 포트

ATmega 마이크로컨트롤러는 기능에 따라 다양한 구성의 제품이 출시되어 있어 포트 구성이 다르다. 디지털 입출력과 아날로그 입력이 존재한다.[3]

PDIP 패키지 종류에 따른 포트는 다음과 같이 구성된다.[3]

종류설명
디지털 포트Port B (PB7:0), Port C (PC5:0), Port D (PD7:0)
아날로그 포트6채널 10비트 ADC 입력



포트 D의 비트 PORTD7을 스위치 입력으로, PORTD6을 LED 출력으로 하드웨어적으로 구성되어 있다면 다음과 같이 C 코드를 작성할 수 있다.

```cpp

void main()

{

DDRD = 0x7C; // 01111100; // 비트 7을 입력, 비트 6~2, 비트1,0는 시리얼 TX,RX로 설정.

PORTD = 0xFF; // 모두 1 출력

while (1) {

if (! (PIND & 0x80)) { // 비트 7이 0 상태이면 키 눌림이 되도록 하드웨어 구성 됨.

PORTD = 0xFF; // 출력을 모두 1로 출력. 논리 1이면 LED가 켜지도록 구성된 경우.

} else {

PORTD = 0xBF; // 비트 6의 LED을 끈다. 논리 0이면 LED가 꺼지도록 구성된 경우.

}

}

}

3. 포트 활용 예

마이크로컨트롤러 포트를 활용하면 릴레이와 같이 다양한 주변 장치를 제어할 수 있다. 릴레이는 코일에 흐르는 전류에 의해 발생하는 자기장을 이용해 스위치를 작동시키는 장치이다. 디지털 신호를 통해 릴레이를 제어하며, 프로그램에서 논리 HIGH 또는 LOW 신호를 출력하여 릴레이를 켜거나 끌 수 있다.

3. 1. 릴레이 구동

릴레이는 코일에 흐르는 전류에 의해 생성되는 자기장을 이용하는 스위치이다. 코일에 전류를 흘려보내거나 차단하여 기계적 스위치의 동작을 제어한다. 이러한 릴레이는 디지털 신호로 작동하도록 구성할 수 있으며, 회로 구성에 따라 프로그램에서 논리 HIGH 또는 LOW 신호를 출력하여 릴레이를 동작시킨다.

릴레이 구동회로


아두이노 환경에서 릴레이를 제어하는 C 언어 코드는 다음과 같다.

```cpp

#define LV_SENS_H 512

const int pinRelay = 3; // 릴레이 제어용 디지털 출력 포트

const int pinSens = A0; // 센서 - 아날로그 입력 포트

void setup() {

pinMode(pinRelay, OUTPUT);

Serial.begin(9600);

}

int sensValue;

void loop() {

int value;

char cnt;

value= 0;

for (cnt = 0;cnt < 10; cnt++) {

value += analogRead(pinSens);

delay(20);

}

sensValue = value / 10;

Serial.print("센서 입력값 = ");

Serial.println(sensValue, DEC);

if (sensValue > LV_SENS_H) {

digitalWrite(pinRelay, HIGH); // 릴레이 켜기

} else {

digitalWrite(pinRelay, LOW); // 릴레이 끄기

}

delay(100);

}

참조

[1] 웹인용 ATmega PORT https://web.archive.[...] 2015-06-17
[2] 웹인용 8051 PORT https://web.archive.[...] 2015-06-17
[3] 문서 AVR8 포트 http://www.atmel.com[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com