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 켜고 끄는 회로 만들기
(그림을 마우스로 클릭하면 간단한 동영상을 볼 수 있다.)


                    
	//***********************************************************************
	// 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 하나를 원하는데로 켜고 끌 수 있으면 많은 것들을 할 수 있습니다.

참고: