8 Array LED 아래에서 위로 움직이기
8개의 LED를 output_hig (), output_low() 함수 또는 output_c () 함수를 사용하여 LED를 켜고 끔으로써
LED를 아래에서 위로 움직이게 할 수 있다. 회로는 앞 페이지 회로와 같이 기본회로를 사용한다.
PIC16F18345/687을 사용하기 위한 기본 회로
아래 그림 역시 위 회로를 빵판에 옮겨 놓은 기본회로로써 사용한 함수는 8개의 LED를 한번에 제어 할 수 있도록 output_c ()를 사용하였다.
PIC16F687을 사용하기 위하여 빵판에 꾸민 모양
(오른쪽 동영상을 참고하세요.)
아래 프로그램은 LED 가 아래에서 위로 하나씩 옮겨가는 프로그램 입니다.
각각의 상태(LED의 위치)를 배열로 저장하고 그 값을 출력 값으로 하였습니다.
PIC16F687을 사용하여 LED을 다루기 위한 프로그램은 다음과 같습니다.
input (PIN_B7)은 PIN_B7의 상태를 0 또는 1의 Digital 신호로 읽으라는 함수로 그 결과 값은 0 또는 1 이다. 위 프로그램에서는 input 함수를 통하여 스위치의 상태(눌리면 0, 아니면 1)를 읽어 bitSw에 저장을 하고, 그 값이 0 이면(스위치가 눌림) LED를 켜고 (output_high (PIN_C2) ;), 그렇지 않으면 (1 이면) LED를 끄는(output_low (PIN_C2) ;) 프로그램이다. 따라서 위 프로그램은 스위치가 눌리면 LED를 켜고 그렇지 않으면 LED를 끄는 프로그램으로, input () 함수는 output_high (), output_low () 명령어와 함께 같이 매우 중요한 함수이며, MCU 에서 가장 많이 사용하는 명령어이다.
PIC16F18345/687을 사용하기 위한 기본 회로
아래 그림 역시 위 회로를 빵판에 옮겨 놓은 기본회로로써 사용한 함수는 8개의 LED를 한번에 제어 할 수 있도록 output_c ()를 사용하였다.
PIC16F687을 사용하기 위하여 빵판에 꾸민 모양
(오른쪽 동영상을 참고하세요.)
아래 프로그램은 LED 가 아래에서 위로 하나씩 옮겨가는 프로그램 입니다.
각각의 상태(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) { int8 idx ; int8 led_data [9] = {0x00, 0x01, 0x02, 0x04, 0x08,0x10, 0x20, 0x40, 0x80} ; //* LED 켜짐을 배열로 지정 set_tris_c (0x00) ; //* C 포트를 출력으로 output_c (led_data [0]) ; //* C 포트 출력을 0 으로, LED를 모두 끔 while (1) { for (idx = 0;idx >= 7;idx++) { output_c (led_data [idx]) ; //* 배열에 맞는 LED 켬 delay_ms (200) ; } } } //***********************************************************************
input (PIN_B7)은 PIN_B7의 상태를 0 또는 1의 Digital 신호로 읽으라는 함수로 그 결과 값은 0 또는 1 이다. 위 프로그램에서는 input 함수를 통하여 스위치의 상태(눌리면 0, 아니면 1)를 읽어 bitSw에 저장을 하고, 그 값이 0 이면(스위치가 눌림) LED를 켜고 (output_high (PIN_C2) ;), 그렇지 않으면 (1 이면) LED를 끄는(output_low (PIN_C2) ;) 프로그램이다. 따라서 위 프로그램은 스위치가 눌리면 LED를 켜고 그렇지 않으면 LED를 끄는 프로그램으로, input () 함수는 output_high (), output_low () 명령어와 함께 같이 매우 중요한 함수이며, MCU 에서 가장 많이 사용하는 명령어이다.
< Prev |
TOP
|