본문 바로가기
AVR

[AVR] ATmega8 브레드보드 테스트 - 스위치 & LED

by hseoy 2020. 6. 11.
반응형

[ATmega8 브레드보드 테스트 - 스위치 & LED]

지난 글에서 ATmega8에 대한 주변회로를 구성하고 간단한 테스트를 위해 LED를 500ms만큼 껐다 키는 프로그램을 업로드하여 실행시켰었다. 이 과정에서 많은 실수를 범하고 심지어는 칩을 날려먹기도 했지만 매우 뜻깊은 활동이었다 자부할 수 있다.

이번에는 프로젝트를 위한 브레드보드에서의 두 번째 테스트로 외부 풀업 저항을 단 스위치로 입력을 받고, 해당하는 스위치가 입력되었을 때 해당 LED가 켜지도록 하는 프로그램을 작성하고 실행해보았다.

코드는 아래와 같다. 회로도에 대해서는 생략을 했는 데, 지난 글에서 구성한 ATmega8 주변 회로에서 코드만 봐도 알 수 있다시피 포트D 2,3,4 핀에 10k 저항의 풀업 저항을 단 스위치를 연결하고 포트B 0,1,2 핀에 LED를 각각 연결해주면 된다. 

#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>

#define BV(n) (1 << n)

int main(void)
{
	DDRB = 0xFF;
	DDRD = 0x00;
	PORTB = 0x00;
	
	while (1) 
	{
		if(~PIND & BV(2)) PORTB = BV(0);
		else if(~PIND & BV(3)) PORTB = BV(1);
		else if(~PIND & BV(4)) PORTB = BV(2);
		else PORTB = 0x00;
	}
	
	return 0;
}

 위 코드를 AVR ISP Mk2를 이용해서 ATmega8에 업로드하여 실행한 결과는 아래와 같다.

여기까지 프로젝트에 사용되는 부품 중 2가지(스위치, LED)를 테스트했다. 이제 남은 것은 MP3 모듈에 대한 테스트만 진행하면 될 듯하다. 거기까지 테스트하게 되면 전체적인 프로젝트 회로도를 작성하고 만능기판에 납땜 작업을 진행할 예정이다.

반응형

댓글