1 LED 켜고 끄기 output_high (), output_low (),

     Microcontroller를 사용하여 할 수 있는 가장 간단한 회로로, LED 하나를 켜고 끄는 회로이지만 이것을 사용할 수 있는 응용 범위는 매우 크다. 회로는 PIC의 RC2를 출력 핀으로 사용하고 그 출력(0 V 또는 5 V)을 사용하여 LED를 켜고 끄도록 회로를 만들었다. 회로는 아래 그림과 같으며


PIC16F18345/687을 사용하기 위한 기본 회로



      아래 그림은 위 회로를 빵판에 직접 꾸민 것으로 소형 빵판을 사용하고 PIC16F687을 그리고 4 MHz의 크리스탈을 사용하였습니다. 그리고 PIC 바로위 오른쪽에 PICKit3를 위한 케이블용 5핀이 있습니다. 이것을 통하여 PICKit3로 프로그램을 PIC에 전달 할 수 있습니다.


PIC16F687을 사용하기 위하여 빵판에 꾸민 모양
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다.)


1. Digital Output 명령어: output_high (), output_low ()  (CCS-C Manual 참고)

     - output_high (pin name): High (5 V) 출력 명령어
     - output_low (pin name): Low (0 V) 출력 명령어

     output_high (pin name)은 pin name으로 high (5V) 출력을 내 보낸다는 말이며,
output_low (pin name)는 pin name으로 low (0V) 출력을 내 보내는 명령어로,
output_high (PIN_C2)라고 프로그램하면 PIN_C2 (핀 번호 14)로 5 V 출력을 내 보내는 것이며,
output_low (PIN_C2)라고 프로그램하면 PIN_C2 (핀 번호 14)로 0 V 출력을 내 보낸다.
아래 프로그램은 1초 간격으로 LED를 켜고 끄는 프로그램으로 쉽게 이해 할 수 있을 것이다.

PIC16F687을 사용하여 LED을 다루기 위한 프로그램은 다음과 같다.

//***********************************************************************
// LED 켜고 끄기
//***********************************************************************  											 
                    
    #include  <16f687.h>                         //* pic16f687을 사용하기 위한 header file

    #fuses    HS                                        //* 4 MHz:XT, 4 MHz 이상: HS
    #use      delay (clock = 20000000)      //* 사용한 크리스탈

    void main (void)
    {
        while (1) {
            output_high (PIN_C2) ;          //* PIN_C2 (RC2) 출력을 High 로 >> LED On
            delay_ms (500) ;                   //* 500 ms 기다림
            output_low  (PIN_C2) ;          //* PIN_C2 (RC2) 출력을 Low 로 >> LED Off
            delay_ms (200) ;                   //* 500 ms 기다림
        }
    }

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

      위에서 이야기 했지만 프로그램에서 output_high (PIN_C2)는 출력을 PIC 핀번호 14 번으로 high로 즉 5 V를 내는 것이며 output_low (PIN_C2)는 출력을 low로 즉 0 V를 출력한다. 즉 PIN C2를 통하여 5 V 또는 0 V 를 낼 수 있다. 그리고 delay_ms (200) 은 200 mili second를 기다리라는 것으로 () 속의 값은 16 bit 수(0 ~ 65535) milisecond 를 의미한다. 따라서 위 프로그램은 LED를 켜고(output_high (PIN_C2) ;), 200 ms를 기다린 후 LED를 끄고(output_low (PIN_C2) ;) 200 ms를 기다린 후 다시 LED를 켜는 일을 무한 반복한다. 따라서 1초를 주기로 LED 가 켜졌다 꺼졌다를 반복한다. 시간을 바꿈으로써 LED의 켜고 끔 시간을 쉽게 바꿀 수 있다.



TOP
Next >