PORTA에 연결된 LED 시프트

 

PORTA0 ~ PORTA7 에 연결된 LED 를 시프트하는 예제입니다.

 

< 시작화면: PA0의 LED 를 ON 합니다. >

 

 

 

 

< 500mS 경과: PA1의 LED 가 ON 됩니다. >

 

 

 

 

 

< 2500mS 경과: PA5의 LED 가 ON 됩니다. >

 

 

 

 

 

< 7500mS 경과: PA7의 LED 가 ON 됩니다. >

 

 

 

 

 

< 8000mS 경과: PA0의 LED 가 ON 됩니다. – 초기 상태와 동일 >

 

 

 

 

 

 

 

 

전체 소스 CodeVision 1.24.0 용

 

/*********************************************

LED 이동하기

PORTA ==> LED 연결

PA0 -> PA7 시프트

 

 

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)

{

    char byteA=0xFE;

 

    DDRA=0xFF;

    PORTA = byteA;

 

 

    while (1)

    {

    Delay_ms(500);

    byteA =     (byteA<<1) | 0x01;     

        if(0xff == byteA)

         byteA=0xFE;

           

PORTA = byteA;

}     

}

 

 

 

 

 

 

 

주요 부품

ATMEGA128 - 1EA

LED – 8EA

POWER 5V/1A

 

 

 



실행파일 다운로드

이번 예제가 추가되면서 실행파일이 업데이트 되었습니다.

이 예제를 사용하기 위해서는 최신 버전(0.2.1.1 이상)으로 패치 하시기 바랍니다.

 

실행파일:

 

 

 

프로젝트 파일(소스 포함):

 

 

 

 

 

 

Posted by WhiteAT

댓글을 달아 주세요