본문 바로가기
마이크로프로세서/ATmega128

I/O포트 레지스터의 이해

by kiki1743 2024. 6. 25.
반응형

ATmega128의 I/O 포트 레지스터는 마이크로컨트롤러의 입출력 동작을 제어하고 데이터를 주고받을 수 있게 해주는 중요한 부분입니다.

 

각 포트는 여러 개의 핀을 포함하며, 각 핀은 데이터 입력 또는 출력에 사용됩니다. ATmega128은 여러 개의 포트(A, B, C, D, E, F, G)를 가지고 있으며, 각 포트마다 해당하는 레지스터들이 있습니다.

 

 

DDR 레지스터 (Data Direction Register)

  • 각 핀이 입력인지 출력인지를 설정합니다.
  • DDRA, DDRB, DDRC, DDRD, DDRE, DDRF, DDRG 등의 레지스터가 있습니다.
  • 예를 들어, DDRA 레지스터의 비트를 설정하여 A 포트의 각 핀을 입력(0) 또는 출력(1)으로 설정할 수 있습니다.
#include <avr/io.h>   // IO포트 레지스터를 사용하기 위한 헤더파일

DDRA = 0xff;  // A포트의 0~7번핀 모두 출력설정
DDRB = 0X00;  // B포트의 0~7번핀 모두 입력설정

 

 

PORT 레지스터

  • 출력 모드로 설정된 핀의 출력 값을 설정하거나 읽습니다.
  • PORTA, PORTB, PORTC, PORTD, PORTE, PORTF, PORTG 등의 레지스터가 있습니다.
  • 예를 들어, PORTA 레지스터의 비트를 설정하여 A 포트의 각 핀의 출력 상태를 조절할 수 있습니다.
#include <avr/io.h>


DDRA = 0xff;    //A포트 출력으로 설정
PORTA = 0xff;  // A포트 0~7번 모두 5[V]인가

 

PIN 레지스터

  • 입력 모드로 설정된 핀의 입력 값을 읽습니다.
  • PINA, PINB, PINC, PIND, PINE, PINF, PING 등의 레지스터가 있습니다.
  • 예를 들어, PINA 레지스터를 읽어 A 포트의 각 핀의 입력 상태를 확인할 수 있습니다.
#include <avr/io.h>


int input = 0;

DDRA = 0x00; //핀A 0~7번 입력으로 설정



input = PINA; //핀A로 입력된 값이 변수에 저장

 

반응형

'마이크로프로세서 > ATmega128' 카테고리의 다른 글

ATmega128의 사양  (0) 2024.06.25