#include <avr/io.h> void my_delay(unsigned long x) // 시간 딜레이 함수. { while(--x); } // 포트 B 8개는 LED0~7까지, // 포트 D 8개는 LED8~15까지 연결한 상태입니다. int main(void){ int i; unsigned char tmp; DDRB = 0xFF; DDRD = 0xFF; while(1){ tmp=1; /* [포트 B] LED 윗 줄(LED0~LED7)에 대한 반복문 */ for(i=0;i<8;i++) { PORTB = tmp; tmp = tmp << 1; my_delay(500000); } PORTB = 0x00; // LED7 끄기 위함. /* [포트 D] LED 아랫 줄(LED8~LED15)에 대한 반복문 */ tmp=1; for(i=0;i<8;i++) { PORTD = tmp; tmp = tmp << 1; my_delay(500000); } PORTD = 0x00; // LED15 끄기 위함. } return 0; }
위 소스 코드는 HBE-MCU-AllinOne 보드에 있는 LED 16개 (LED0~LED15) 를 순차적으로 켤 수 있도록 만든 코드입니다. 크게 어려운 부분이 없으므로 설명은 생략하겠습니다.
▲ LED 포트가 하나씩 불이 들어오는 모습
각 LED 포트 하나씩 불들어오는 거 다 찍었으면 더 예뻤을 텐데 시간이 없었네요 ㅎㅎㅎ;;;
p.s 궁금한 점 있으면 댓글이나 이메일 보내주시면 감사하겠습니다 ^^ :)
'컴퓨터 프로그래밍' 카테고리의 다른 글
알고리즘 - 선택 정렬(Selection Sort) 소스 코드 (4) | 2013.09.26 |
---|---|
알고리즘 - Merge Sort (내림차순, 병합정렬, 합병정렬) (0) | 2013.09.24 |
HBE-MCU-All in One 소개 (0) | 2013.09.24 |
알고리즘 - 내림차순 삽입정렬 (0) | 2013.09.23 |
FreeNX 서버 구축하기 (0) | 2013.09.14 |