반응형
[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 모듈에 대한 테스트만 진행하면 될 듯하다. 거기까지 테스트하게 되면 전체적인 프로젝트 회로도를 작성하고 만능기판에 납땜 작업을 진행할 예정이다.
반응형
'AVR' 카테고리의 다른 글
[AVR] 점핑 게임 Jumping Game - LCD로 만드는 게임 (0) | 2020.07.30 |
---|---|
[AVR] LCD1602A를 ATmega128에서 쉽게 사용하기 with lcd1602a_h68 라이브러리 (+ 커스텀 문자 출력, Display Shift) (1) | 2020.06.27 |
[AVR] ATmega8 브레드 보드에서 사용하기 - 퓨즈Fuse 비트를 잘못 변경하면 생기는 일 (0) | 2020.06.10 |
[AVR] LED 실습 6. LED 순차 점등 제어(for 문 이용) (2) | 2020.06.09 |
[AVR] LED 실습 5. LED 순차 점등 제어(if 문 이용) (0) | 2020.06.08 |
댓글