4. AVR LED 제어

|

[뇌를 자극하는 하드웨어 -   AVR LED 제어]

AVR 을 이용해서 LED를 순차적으로 켜보는 실헙을 하겠습니다.

1. 소스

#include<iom162.h>
#include<ina90.h>

void Delay(unsigned int time)
{
  unsigned int i,j;
  
  __disable_interrupt();
  
  for(i=0;i<time;i++)
  {
    for(j=0;j<1000;j++);  
  }
  
  __enable_interrupt();
    
   
}
  

void main(void)
{
  DDRD=0xff;      // Port C를 출력 포트로 설정
  PORTD=0x00;     // LED OFF
 
  
  while(1)
  {
    
    PORTD=0x00;
    Delay(1000);    
    
    PORTD=0x01;
    Delay(1000);
    
    PORTD=0x02;
    Delay(1000);
    
    PORTD=0x04;
    Delay(1000);
         
    PORTD=0x08;
    Delay(1000);
    
    PORTD=0x10;
    Delay(1000);


  }
}


2. 플래시 메모리에 프로그램하기

 -IAR로 컴파일후에 AVR Studio로 ATmega162에 프로그램 한다.


3. 결과 화면

 


4. 피드백

 -회로도는 기본 ATmega162의 AVR 환경에서 PD0~PD5까지를 LED로 연결하면 됩니다.

 -Delay 라는 함수로 지연시간을 두어서 대략 1초를 대기했지만 이것은 크리스탈의 진동횟수에 따라서 파라미터를

  달리해야지 됩니다. 이런 함수로는 정확한 1초를 계산을 할수가 없으므로 내부 이벤트(타이머)를 이용해야 합니다.

  (타이머 이용을 바로 다음 포스팅에서 다루겠습니다. )

 -PORTD=0x01 에서 직접 숫자(PORTD=1)를 넣어도 작동이 됩니다.  


'하드웨어 > 1. 뇌를 자극하는 하드웨어 입문' 카테고리의 다른 글

6. 입력회로 실험  (0) 2012.08.16
5. AVR LED 제어 - 타이머(내부 인터럽트) 이용  (0) 2012.08.15
3. AVR 환경 설정  (0) 2012.08.12
2. FND507 제어  (2) 2012.08.11
1. LED 커기  (0) 2012.08.08
And