1초마다 1칸씩 LED 시프트하기
1초마다 1칸씩 LED를 시프트 합니다. 마지막 LED가 ON 되면 처음으로 돌아갑니다.
전체 소스 Codevision 용
/********************************************* LED 이동하기 PORTA ==> LED 연결
Tools : Codevision *********************************************/
#include <mega128.h>
// time delay for us void Delay_10us(char time_us) { register char i; for(i = 0; i < time_us; i++) // 4 cycle + { #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_10us(50); Delay_10us(50); Delay_10us(50); Delay_10us(50); Delay_10us(50); } }
void main(void) { char byteA=0xFE;
DDRA=0xFF; // PORTA = 1;
while (1) { Delay_ms(100);
PORTA = byteA; byteA = (byteA<<1) | 0x01;
if(0xff == byteA) byteA=0xFE;
} } |
주요 부품
ATMEGA128 |
'CodeVision 용 소스' 카테고리의 다른 글
LED 순차 소등 하기 PORTC.0 => PORTC.7 순서로 (0) | 2011.02.06 |
---|---|
LED 순차 점등 하기 PORTC.0 => PORTC.7 순서로 (2) | 2011.02.05 |
스위치 누를 때마다 1 증가하는 카운터 (0) | 2011.01.28 |
스위치 누르면 ‘2’, 떼면 ‘1’ 을 FND에 표시 (0) | 2011.01.27 |
0000 ~ 9999 까지 FND 4 자리 출력하기 (0) | 2011.01.26 |