본문 바로가기

Hardware/ATmega128

4. 명령 Register 기본형

 

port F를 사용하여 LED가 깜빡이는 명령어를 실행합니다

DATASHEET에서 F의 위치를 확인해서 선을 연결합니다 PF0~PF7입니다


간단한 Register를 둘러보면


  DDRF 포트의 입출력 방향 설정

  PORTF 출력하고자 하는 값 LED

  PINF 외부로 부터의 값 스위치


DDRF = 0xFF; 출력용

            0x00; 입력용


PORTF = 0x00; LED On

              0xFF; LED Off


깜빡이는 회로를 제작하면 아래>>

#include <avr/io.h>


int main(void)

{

        volatile unsigned int i; //volatile는 for문을 일일다 계산하게 만듭니다

        /*실행 포트 초기화*/

        DDRF = 0xFF;

        PORTF = 0xFF;

        for(;;)

        {

                PORTF = 0x00;

                for(i=0; i<6000;i++);   //깝박이는중 딜레이를 주기위해 사용합니다 

                for(i=0; i<6000;i++);

                for(i=0; i<6000;i++);

                PORTF = 0xFF;

        }

        return 0;

}


for문을 추가하면 연산이 느려져 더 천천히 깜빡이게 됩니다

 

for문 10번돌고 회로 하나씩 번갈아가며 깝빡이는>>

#include <avr/io.h>


int main(void)

{

        volatile unsigned int i;

        volatile unsigned int b;


        DDRF = 0xFF;

        PORTF = 0xFF;

        for(;;)

        {

                PORTF = 0b01010101;   //8개의 불을 각회로별로 컨트롤 하기 위해

                for(b=0 ; b < 10 ; b++)  //아래 for문을 10번 반복합니다

                {

                        for(i=0 ; i < 6000 ; i++);

                }

                PORTF = 0b10101010;

                for(b=0 ; b < 10 ; b++)

                {

                        for(i=0 ; i < 6000 ; i++);

                }

        }

        return 0;
}
 

 번갈아가며 깜빡이게 됩니다

'Hardware > ATmega128' 카테고리의 다른 글

6. LED 실습문제  (0) 2011.04.26
5. ATmega128 자료형의 크기  (0) 2011.04.21
3. DK-128개발환경 설정  (0) 2011.04.20
2. ATmega128의 특징  (0) 2011.04.19
1. ATmega128란?  (2) 2011.04.19