PORTC0 -> PORTC7 -> PORTC0 에 연결된 LED 를 무한히 좌우/상하로 이동하는 예제입니다.
< 시작화면: PC0 LED 를 ON 합니다. >
< 100mS경과: PC1 의 LED 를 ON 합니다. >
< 200mS경과: PC1 의 LED 를 ON 합니다. >
< 700mS경과: PC7 의 LED 를 ON 합니다. >
전체 소스 CodeVision 1.24.0 용
/********************************************* LED 좌우(상하)로이동하기
PC0 -> PC1 -> PC2 -> PC3 -> PC4 -> PC5 -> PC6 -> PC7 -> PC6 -> PC5 -> PC4 -> PC3 -> PC2 -> PC1 -> PC0 순으로 무한이이동하는예제
PORTC ==> LED 연결
Tools : Codevision
http://avr128.com *********************************************/
#include <mega128.h>
// time delay for us void Delay_us(char time_us) { register char i; for(i = 0; i < time_us; i++) { #asm PUSH R0 ; // 2 cycle + POP R0 ; // 2 cycle + PUSH R0 ; // 2 cycle + POP R0 ; // 2 cycle +
#endasm } }
// time delay for ms void Delay_ms(unsigned int time_ms) { register unsigned int i; for(i = 0; i < time_ms; i++) { Delay_us(250); Delay_us(250); Delay_us(250); Delay_us(250); } }
void main(void) { unsigned char byteData=0xFE; char bUp= 1; // 1:UP, 0: DOWN
// 포트C 를출력으로설정 DDRC=0xFF;
// PB0 LED ON PORTC = byteData;
while (1) { Delay_ms(100); if(byteData == 0x7F) { bUp = 0; // up -> down } else if(byteData == 0xFE) { bUp = 1; // down -> up } if(bUp) { byteData <<= 1; byteData |= 1; } else { byteData >>= 1; byteData |= 0x80;
}
PORTC = byteData;
} }
|
주요 부품
ATMEGA128 - 1EA LED – 8EA POWER 5V/1A |
실행파일 다운로드
이번 예제가 추가되면서 실행파일이 업데이트 되었습니다.
이 예제를 사용하기 위해서는 최신 버전(0.2.1.2 이상)으로 패치 하시기 바랍니다.
실행파일:
|
프로젝트 파일(소스 포함):
|
'CodeVision 용 소스' 카테고리의 다른 글
PORTB 에 연결된 LED 교차 ON/OFF (0) | 2011.06.24 |
---|---|
PORTA에 연결된 LED 시프트 (0) | 2011.06.06 |
4개의 키를 각각 누를 때마다 누른 횟수 증가 하는 예제 (0) | 2011.05.11 |
Switch 4개의 상태에 따른 LED ON/OFF 변화 (0) | 2011.02.21 |
Character LCD Control (0) | 2011.02.18 |