8-Pin PIC (12F617, 12F609, 12F683, 12F1822, 12F1840)
8비트 PIC중 매우작고 단순한 8핀 PIC로 PIC12F617를 사용할 수 있습니다. PIC12F617은 외부 크리스탈을 사용하지 않고
내부 발진회로를 이용할 수 있기 때문에 매우 간단한 회로를 설계할 수 있습니다.
8-Pin DIP Diagram of PIC12F617
http://ww1.microchip.com/downloads/en/devicedoc/41302d.pdf
PIC12F617을 8핀 마이크로컨트롤러로 작고 아래 그림은 PIC12F617을 사용하기 위한 기본 회로로 ICD2는 그림에 나와 있는 것과 같이 PIC12F617의 2, 3, 4, 6, 7번 핀을 사용하여 연결 할 수 있습니다.
PIC12F617의 핀 번호중 GPx는 RAx에 해당하고 GP2는 RA2에해당합니다. 따라서 프로그램에서는 PIN_A2로 하여 사용하면 됩니다.
그림 PIC12F617을 사용하기 위한 기본 회로
8핀 PIC12F617 LED 켜고 끄는 회로 만들기
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다.)
프로그램은 매우 단순하지만 이러한 단순함이 이루어져 복잡한 기능을 수행할 수 있어 매우 중요합니다.
LED 하나를 원하는데로 켜고 끌 수 있으면 많은 것들을 할 수 있습니다.
8-Pin DIP Diagram of PIC12F617
http://ww1.microchip.com/downloads/en/devicedoc/41302d.pdf
PIC12F617을 8핀 마이크로컨트롤러로 작고 아래 그림은 PIC12F617을 사용하기 위한 기본 회로로 ICD2는 그림에 나와 있는 것과 같이 PIC12F617의 2, 3, 4, 6, 7번 핀을 사용하여 연결 할 수 있습니다.
PIC12F617의 핀 번호중 GPx는 RAx에 해당하고 GP2는 RA2에해당합니다. 따라서 프로그램에서는 PIN_A2로 하여 사용하면 됩니다.
그림 PIC12F617을 사용하기 위한 기본 회로
8핀 PIC12F617 LED 켜고 끄는 회로 만들기
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다.)
//*********************************************************************** // 8 핀 PIC12F617을 사용한 기본 프로그램 - 1 //*********************************************************************** #include <12f617.h> //* 사용 PIC에 따라 달라짐 #fuses INTRC_IO //* 내부 발진 사용, #use delay (clock = 8000000) //* 8 MHz 사용 void main (void) //* main 함수 시작 { while (1) { //* 무한루프 시작 output_high (PIN_A2) ; //* RA2 핀 High(5V) 출력, LED 켜짐) delay_ms (500) ; //* 500 ms 기다림 output_low (PIN_A2) ; //* RA2 핀 High(0V) 출력, LED 꺼짐) delay_ms (500) ; //* 500 ms 기다림 } } //*********************************************************************** 을 #define 문을 사용하여 바꾸면 //*********************************************************************** // 8 핀 PIC12F617을 사용한 기본 프로그램 - 2 //*********************************************************************** #include <12f617.h> #fuses INTRC_IO #use delay (clock = 8000000) #define LED_PIN PIN_A2 //* PIN_A2를 LED_PIN으로 정의 #define LED_ON output_high (LED_PIN) //* output_high (LED_PIN) 을 LED_ON 으로 정의 #define LED_OFF output_low (LED_PIN) //* output_low (LED_PIN) 을 LED_OFF 로 정의 void main (void) { while (1) { LED_ON ; delay_ms (500) ; LED_OFF ; delay_ms (500) ; } } //***********************************************************************
프로그램은 매우 단순하지만 이러한 단순함이 이루어져 복잡한 기능을 수행할 수 있어 매우 중요합니다.
LED 하나를 원하는데로 켜고 끌 수 있으면 많은 것들을 할 수 있습니다.