Atmega128 GPIO 제어

살캉쿠·2023년 4월 12일
0
post-thumbnail

IO Port의 이해

Atmega128 내부에는 계산기의 두뇌와 같은 CPU(Central Processing Unit)이 존재하는데 이는 프로그래머가 작성한 프로그램을 수행하는 역할을 한다. Atmega128은 IO Port로 외부와 소통을 한다. 64개의 핀 중 11핀은 CPU가 동작할 수 있도록 전원, 클록, 리셋등에 연결하고 나머지 53개의 핀으로 외부와 소통한다. 이것이 IO 신호용 핀이다.


1. IO Port 개요


  • 6개의 8비트 양방향 병렬 I/O 포트(PORTA~F)
  • 1개의 5비트 양방향 병렬 I/O 포트(PORTG)
  • 각 PORT별 3개 I/O 레지스터 영역
  • DDR(Data Direct Register) : 해당 Pin(Port)을 입력 Rg의 입력으로 사용 할지, 출력 Port의 출력 Pin으로 사용 할지를 결정
  • PORT(Data Register) : 데이터 출력 PORT
  • PIN(Port Input Pins Register) : 입력 핀에 연결된 Input Port Rg
  • DDR, PORT : 읽기/쓰기 가능, PIN : 읽기만 가능



2. IO Port 레지스터


DDRx 레지스터(Data Direction Register)

  • 입출력의 방향설정을 하기 위한 레지스터
  • DDRA~DDRG레지스터의 해당 비트에 ‘1을 쓰면 출력, ‘0’을 쓰면입력으로 설정
	DDRA = 0x0f; // PORTA 0~3번핀은 출력핀, 4~7번핀은 입력핀으로 설정.

PORTx 레지스터(Data Register-PORTx)

  • 데이터를 출력하기 위한 레지스터
  • 출력을 원하는 데이터값을 PORTx 레지스터에 입력함
	PORTA = 0xff; // PORTA 0~7번핀 High 출력

PINx 레지스터(Input Pin Address)

  • 데이터 입력용 레지스터
  • PINx 레지스터에 해당하는 값을 읽으면 해당 핀의 값이 읽어짐

0개의 댓글