'DIP SW'에 해당되는 글 1건

  1. 2011.08.25 WAT-AVR128, EX_01_03, 스위치에 따른 LED ON 제어 예제

 

PORTA의 0 ~ 7 포트에 LED 8개가 연결되어 있고 LED에 불이 들어오게 하려면 해당되는 포트에 '0'을 출력하면 됩니다. 딥스위치 1번을 ON 하면 D0(PORTA.0에 연결된 LED)부터 D7까지 차례대로 ON되고 딥스위치 1번을 OFF 하면 마지막 켜진 LED부터 OFF 되는 예제입니다.

 

 

DIP SWITCH 1번 ON

D0: ●○○○○○○○

D1: ●●○○○○○○

D2: ●●●○○○○○

D3: ●●●●○○○○

D4: ●●●●●○○○

D5: ●●●●●●○○

DIP SWITCH 1번 OFF

D4: ●●●●●○○○

D3: ●●●●○○○○

D2: ●●●○○○○○

D1: ●●○○○○○○

D0: ●○○○○○○○

PORTA 에 LED, PORTE에는 딥스위치가 연결되며, 실험에 사용할 회로와 WAT보드의 연결 방법은 아래와 같습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

원문은 http://avr128.com 에 있습니다.

 






 

 

 

 

 

주요 코드

 

main.c 일부

/*

    EX_01_03.c

 

    PORTA의0 ~ 7 포트에LED 8개가연결되어있고

    LED에불이들어오게하려면해당되는포트에

    ''을출력하면됩니다.

    

    딥스위치1번을ON 하면

    D0(PORTA.0에연결된LED)부터D7까지차례대로ON되고

    딥스위치1번을OFF 하면마지막켜진LED부터OFF 되는

    예제입니다.

 

    LED: PORTA 에연결

    DIP SWITCH: PORTE 에연결

         

 

    AVRStudio 4.18

    2011-08-25

 

    최신코드와다른예제는홈페이지에있습니다.

    http://avr128.com

 

*/

 

#include <avr/io.h>

 

// 일정시간딜레이

void Delay()

{

    register unsigned long i;

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

    {

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");

        asm volatile(" PUSH R0 ");

        asm volatile(" POP R0 ");    

    }

}

 

int main()

{

    DDRA = 0xFF;     // PORTA OUTPUT

    PORTA = 0xFF;    //    ALL LED OFF

 

    DDRE = 0x00;        // DIP SWITCH 용으로입력

 

    while(1)

    {

 

        Delay();

 

        if((PINE & 0x01) == 0x00)

        {

 

            // DIP 1 이ON 이면

            PORTA <<= 1;

            PORTA |= 0;        // 마지막LED 는ON 되게

        

        }

        else

        {

 

            //     DIP 1이OFF 이면

            PORTA >>=1;

            PORTA |=0x80;    // 처음LED 는OFF 되게

 

        }    

    }

}

 

 

 

 

 

 

전체 소스 ( AVRStudio 컴파일용)

 

 

 




Posted by WhiteAT
,