본문 바로가기

AVR 기초/LED 제어하기

[AVR 기초] LED로 1~255 표현하기

*키트는 Atmega128A를 사용하였습니다*

 

 

LED로 1부터 255 표현하기 입니다.

 

ATmega128A에서는 LED가 총 8개입니다.

 

맨 오른쪽의 LED부터 2의 0승 -> 맨 왼쪽의 LED는 2의 7승

 

코드는 다음과 같습니다.

 

#include <avr/io.h>
#define F_CPU 16000000UL									//클럭 설정 16MHz
#include <util/delay.h>										//딜레이 헤더파일 선언


int main(void)												//main 함수
{
	/* Replace with your application code */
	DDRA = 0xff;											//LED 8개 사용
	int j = 1;												//변수 j = 1
	while (1)												//무한루프
	{
		PORTA = 0x00;										//LED 다 끄기
		for (int i=0; i< 256 ; i++)							//i=0 부터 255까지 반복(i는 1씩 증가)
		{
			PORTA += j;										//PORTA 값에 현재의 값 + j >> PORTA = PORTA + j
			_delay_ms(500);									//0.5초 딜레이
		}
	}
	return 0;
}