*키트는 Atmega128A를 사용하였습니다*
스위치를 눌렀을 때 LED를 점등하는 코드입니다.
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
int main(void) //main함수
{
/* Replace with your application code */
unsigned char LED[5] = {0xff, 0x7e, 0x3c, 0x18, 0x00}; //LED라는 이름의 배열 5개 생성. 배열 안의 각각의 값은 LED를 몇개 킬 것인지의 대한 값을 HEX로 나타낸값
DDRA = 0xff; //PORTA 사용 (LED 8개)
DDRE = 0x00; //PORTE 사용
while (1) //무한반복
{
if ((PINE & 0x10) == 0x00){ //회로도에서 위의 스위치가 4번.(PE4) 눌려지지 않았을 때는 1, 눌려졌을때에는 0
for (int i = 0 ; i<5 ; i++)
{
PORTA = LED[i]; //LED[i]의 값을 PORTA에 넣음
_delay_ms(1000); //딜레이 1초
}
}else
PORTA = 0x00; //스위치가 눌려지지 않았다면 LED OFF
}
}
Atmega128A에서 데이터시트를 보게 되면 스위치1은 PE4입니다.
DDRE = 0x00은 포트 E를 입력으로 사용한다는 의미입니다.
'AVR 기초 > LED 제어하기' 카테고리의 다른 글
[AVR 기초] LED로 1~255 표현하기 (0) | 2020.07.12 |
---|---|
[AVR 기초] LED로 X-MAS 트리 만들기2 (0) | 2020.07.12 |
[AVR 기초]LED로 X-MAS 트리 만들기 (0) | 2020.07.12 |
[AVR 기초]LED를 다양하게 켜보기 (0) | 2020.07.12 |
[AVR 기초]delay 헤더파일 간단히 만들어보기 (0) | 2020.07.12 |