- 프로그래밍 준비 :
- MPLAB-X를 사용하여 새 프로젝트 만들기 :
- 구성 레지스터 알아보기 :
- MPLAB-X에서 구성 비트 설정 :
- LED를 깜박이도록 PIC 프로그래밍 :
- 회로도 및 Proteus 시뮬레이션 :
이것은 PIC 튜토리얼 시리즈의 두 번째 튜토리얼입니다. 이전 튜토리얼에서 PIC 마이크로 컨트롤러 시작하기: PIC 및 MPLABX 소개, PIC 마이크로 컨트롤러에 대한 기본 사항을 배웠고 필요한 소프트웨어를 설치하고 곧 사용할 새로운 PicKit 3 프로그래머를 구입했습니다. 이제 PIC16F877A를 사용하여 첫 번째 LED 깜박임 프로그램을 시작할 준비가되었습니다 . 이 자습서에서는 구성 레지스터에 대해서도 알아 봅니다.
이 튜토리얼은 컴퓨터에 필요한 소프트웨어를 설치했고 PIC MCU에 대한 몇 가지 기본적인 사항을 알고 있다고 예상합니다. 그렇지 않은 경우 이전 튜토리얼로 돌아가서 시작하십시오.
프로그래밍 준비:
PIC16F877A를 사용하기로 결정 했으므로 XC8 컴파일러를 사용하여 데이터 시트를 시작하겠습니다. 튜토리얼을 진행하면서 자주 참조하게 될 PIC16F877A 데이터 시트와 XC8 컴파일러 매뉴얼을 다운로드 할 것을 권장합니다. 실제로 프로그래밍을 시작하기 전에 MCU의 전체 데이터 시트를 읽는 것이 항상 좋은 습관입니다.
이제 MPLAB-X를 열고 프로그래밍을 시작하기 전에 알아야 할 몇 가지 기본 사항이 있습니다. 어쨌든, 이것이 우리의 첫 번째 프로그램이기 때문에 많은 이론을 가진 사람들을 괴롭 히고 싶지 않지만 우리가 프로그램하는 동안 여기저기서 멈추고 그런 것들을 설명 할 것입니다. 이 모든 것을 읽을 시간이 충분하지 않다면 페이지 하단 의 비디오를 살짝 훑어 보시면 됩니다.
MPLAB-X를 사용하여 새 프로젝트 만들기:
1 단계: 이전 클래스에서 설치 한 MPLAB-X IDE를 시작하면로드되면 다음과 같이 보일 것입니다.
2 단계: 파일-> 새 프로젝트를 클릭하거나 단축키 Ctrl + Shift + N을 사용합니다. 독립 실행 형 프로젝트 를 선택 하고 다음을 클릭 해야하는 다음 팝업이 표시됩니다.
3 단계: 이제 프로젝트에 대한 장치를 선택해야합니다. 따라서 Select Device 드롭 다운 섹션에 PIC16F877A를 입력 합니다. 완료되면 다음과 같이 표시되고 다음을 클릭합니다.
4 단계: 다음 페이지에서 프로젝트를위한 도구를 선택할 수 있습니다. 이것은 우리 프로젝트의 PicKit 3입니다. PicKit 3을 선택하고 다음을 클릭하십시오.
5 단계: 다음 페이지에서 컴파일러를 선택하고 XC8 컴파일러를 선택한 후 다음을 클릭합니다.
6 단계: 이 페이지에서 프로젝트 이름을 지정하고 프로젝트를 저장할 위치를 선택해야합니다. 이 프로젝트의 이름을 Blink로 지정 하고 데스크탑에 저장했습니다. 원하는 방식으로 이름을 지정하고 저장할 수 있습니다. 우리의 프로젝트는 MAPLB-X에서 직접 실행할 수있는 확장자가 .X 인 폴더로 저장됩니다. 완료되면 마침을 클릭합니다.
7 단계: 그게 다야 !!! 프로젝트가 생성되었습니다. 가장 왼쪽 창에는 프로젝트 이름 (Here Blink)이 표시됩니다. 클릭하면 그 안에있는 모든 디렉토리를 볼 수 있습니다.
프로그래밍을 시작하려면 소스 파일 디렉토리에 C Main 파일을 추가해야합니다. 이렇게하려면 아래 이미지와 같이 소스 파일을 마우스 오른쪽 버튼으로 클릭하고 New-> C Main File을 선택합니다.
8 단계: C- 파일의 이름을 언급해야하는 다음 대화 상자가 나타납니다. 나는 Blink에서 다시 이름을 지었지만 선택은 당신에게 달려 있습니다. 파일 이름 열에 이름을 지정하고 마침을 클릭합니다.
9 단계: C 주 파일이 생성되면 IDE는 아래와 같이 일부 기본 코드와 함께 파일을 엽니 다.
10 단계: 이제 C-main 파일에서 코드 프로그래밍을 시작할 수 있습니다. 기본 코드는 자습서에서 사용되지 않습니다. 그래서 완전히 삭제합시다.
구성 레지스터 알아보기:
마이크로 컨트롤러를 프로그래밍하기 전에 구성 레지스터에 대해 알아야합니다.
그렇다면 이러한 구성 레지스터는 무엇이며 어떻게 설정해야합니까?
PIC 장치에는 구성 비트 또는 퓨즈가 포함 된 여러 위치가 있습니다. 이러한 비트는 오실레이터 모드, 워치 독 타이머, 프로그래밍 모드 및 코드 보호와 같은 기본적인 장치 작동을 지정 합니다. 코드를 실행하려면이 비트를 올바르게 설정해야합니다. 그렇지 않으면 장치가 실행되지 않습니다 . 따라서 Blink 프로그램을 시작하기 전에 이러한 구성 레지스터에 대해 아는 것이 매우 중요합니다.
이러한 구성 레지스터를 사용하려면 데이터 시트를 읽고 사용할 수있는 다양한 유형의 구성 비트와 그 기능을 이해해야합니다. 이러한 비트는 구성 pragma를 사용하여 프로그래밍 요구 사항에 따라 설정하거나 재설정 할 수 있습니다.
pragma의 형식은 다음과 같습니다.
#pragma 구성 설정 = 상태 값 #pragma 구성 레지스터 = 값
여기서 setting 은 구성 설정 설명자 (예: WDT)이고 state는 원하는 상태 (예: OFF)의 텍스트 설명입니다. 다음 예를 고려하십시오.
#pragma config WDT = ON // 감시 타이머 켜기 #pragma config WDTPS = 0x1A // 타이머 포스트 스케일 값 지정
편하게 하다!!….. RELAX !!…. RELAX !!…...
나는 그것이 우리 머리에 너무 많이 들어갔고 이러한 구성 비트를 설정하는 것이 초보자에게는 약간 어려울 수 있다는 것을 알고 있습니다! 그러나 MPLAB-X는 도전적이지 않습니다.
MPLAB-X에서 구성 비트 설정:
Microchip은 다양한 유형의 구성 비트에 대한 그래픽 표현을 사용하여이 피곤한 프로세스를 훨씬 쉽게 만들었습니다. 이제이를 설정하려면 아래 단계를 따르기 만하면됩니다.
1 단계: 창-> PIC 메모리보기-> 구성 비트를 클릭합니다. 아래 그림과 같이.
2 단계: 아래와 같이 IDE 하단에 구성 비트 창이 열립니다. 여기에서 필요에 따라 각 구성 비트를 설정할 수 있습니다. 단계를 진행하면서 각 비트와 그 목적을 설명하겠습니다.
3 단계: 첫 번째 비트는 오실레이터 선택 비트입니다.
PIC16F87XA는 네 가지 다른 오실레이터 모드에서 작동 할 수 있습니다. 이 네 가지 모드는 두 가지 구성 비트 (FOSC1 및 FOSC0)를 프로그래밍하여 선택할 수 있습니다.
- LP 저전력 크리스탈
- XT 크리스탈 / 공진기
- HS 고속 수정 / 공진기
- RC 저항기 / 커패시터
프로젝트의 경우 20Mhz Osc를 사용하고 있으므로 드롭 다운 상자에서 HS 를 선택 해야합니다.
4 단계: 다음 비트는 워치 독 타이머 활성화 비트입니다.
Watchdog Timer는 외부 부품이 필요없는 자유 실행 온칩 RC 발진기입니다. 이 RC 오실레이터는 OSC1 / CLKI 핀의 RC 오실레이터와 별개입니다. 즉, 장치의 OSC1 / CLKI 및 OSC2 / CLKO 핀의 클럭이 중지 된 경우에도 WDT가 실행됩니다. 정상 작동 중에 WDT 시간 초과는 장치 재설정 (Watchdog Timer Reset)을 생성합니다. 상태 레지스터의 TO 비트는 Watchdog Timer 타임 아웃시 지워집니다. 소프트웨어 코딩에서 타이머가 지워지지 않으면 전체 MCU는 모든 WDT 타이머 오버플로시 재설정됩니다. WDT는 구성 비트를 삭제하여 영구적으로 비활성화 할 수 있습니다.
프로그램에서 WDT를 사용하지 않으므로 드롭 다운 상자에서 OFF 를 선택하여 선택을 취소하겠습니다.
5 단계: 다음 비트는 파워 업 타이머 비트입니다.
Power-up Timer는 POR에서만 전원을 켤 때 72ms의 고정 된 공칭 타임 아웃을 제공합니다. 파워 업 타이머는 내부 RC 오실레이터에서 작동합니다. 칩은 PWRT가 활성화되어있는 한 리셋 상태로 유지됩니다. PWRT의 시간 지연으로 인해 VDD가 허용 가능한 수준으로 상승 할 수 있습니다. PWRT를 활성화 또는 비활성화하기 위해 구성 비트가 제공됩니다.
프로그램에서 이러한 지연이 필요하지 않으므로이 기능도 끄겠습니다.
6 단계: 다음 비트는 저전압 프로그래밍입니다.
구성 워드의 LVP 비트는 저전압 ICSP 프로그래밍을 가능하게합니다. 이 모드를 사용하면 작동 전압 범위에서 VDD 소스를 사용하여 ICSP를 통해 마이크로 컨트롤러를 프로그래밍 할 수 있습니다. 이것은 VPP를 VIHH로 가져올 필요가없고 대신 정상 작동 전압으로 남겨 둘 수 있음을 의미합니다. 이 모드에서 RB3 / PGM 핀은 프로그래밍 기능 전용이며 범용 I / O 핀이 아닙니다. 프로그래밍 중에 VDD는 MCLR 핀에 적용됩니다. 프로그래밍 모드로 들어가려면 LVP 비트가 설정된 경우 RB3 / PGM에 VDD를 적용해야합니다.
RB3를 I / O 핀으로 사용할 수 있도록 LVP를 끄겠습니다. 이렇게하려면이 설정 OFF를 드롭 다운 상자를 사용하여.
7 단계: 다음 비트는 EEPROM 및 프로그램 메모리 보호 비트입니다. 이 비트가 켜지면 MCU가 프로그래밍되면 아무도 하드웨어에서 프로그램을 검색하지 않습니다. 그러나 지금은이 세 가지를 모두 꺼 두겠습니다.
지시에 따라 설정이 완료되면 대화 상자가 다음과 같이 보일 것입니다.
8 단계: 이제 Generate Source Code to Output을 클릭하면 코드가 생성됩니다. 헤더 파일과 함께 복사하여 Blink.c C-File에 붙여 넣습니다.
이것이 우리의 구성 작업이 완료되었습니다. 모든 프로젝트에 대해이 구성을 가질 수 있습니다. 그러나 당신이 관심이 있다면 나중에 그것들을 엉망으로 만들 수 있습니다.
LED를 깜박이도록 PIC 프로그래밍:
이 프로그램에서는 PIC 마이크로 컨트롤러 를 사용 하여 I / O 핀에 연결된 LED를 깜박 입니다. PIC16F877A에서 사용할 수있는 다양한 I / O 핀을 살펴 보겠습니다.
위에 표시된대로 PIC16F877에는 5 개의 기본 입력 / 출력 포트가 있습니다. 일반적으로 PORT A (RA), PORT B (RB), PORT C (RC), PORT D (RD) 및 PORT E (RE)로 표시됩니다. 이 포트는 입력 / 출력 인터페이스에 사용됩니다. 이 컨트롤러에서 "PORT A"는 폭이 6 비트 (RA-0 ~ RA-5)에 불과하고 "PORT B", "PORT C", "PORT D"는 폭이 8 비트입니다 (RB-0 ~ RB-7, RC-0 ~ RC-7, RD-0 ~ RD-7),”PORT E”의 너비는 3 비트 (RE-0 ~ RE-2)뿐입니다.
이 모든 포트는 양방향입니다. 포트의 방향은 TRIS (X) 레지스터 (PORT-A의 방향을 설정하는 데 사용되는 TRIS A, PORT-B의 방향을 설정하는 데 사용되는 TRIS B 등)를 사용하여 제어됩니다. TRIS (X) 비트 '1'을 설정하면 해당 PORT (X) 비트가 입력으로 설정됩니다. TRIS (X) 비트 '0'을 지우면 해당 PORT (X) 비트가 출력으로 설정됩니다.
프로젝트를 위해 PORT B의 핀 RB3을 출력으로 만들어 LED를 연결할 수 있도록해야합니다. 다음은 PIC 마이크로 컨트롤러로 깜박이는 LED 코드입니다.
#포함
먼저 #define _XTAL_FREQ 20000000을 사용하여 외부 Crystal 주파수를 지정했습니다. 그런 다음 void main () 함수에서 RB3을 출력 (TRISB = 0X00;) 핀 으로 사용할 것임을 MCU에 지시했습니다. 그런 다음 마지막으로 무한 while 루프가 사용되어 LED 깜박임이 영원히 계속됩니다. LED를 깜박이려면 눈에 띄게 지연된 상태로 간단히 켜고 끄면됩니다.
코딩이 완료되면 Run-> Build Main Project 명령을 사용하여 프로젝트를 빌드합니다. 이것은 프로그램을 컴파일해야합니다. 모든 것이 정상이면 (정상대로) 화면 하단의 출력 콘솔에 아래 그림과 같이 BUILD SUCCESSFUL 메시지가 표시됩니다.
회로도 및 Proteus 시뮬레이션:
프로젝트를 빌드하고 빌드가 성공하면 IDE의 백그라운드에서 HEX 파일이 생성되었을 것입니다. 이 HEX 파일은 아래 디렉토리에서 찾을 수 있습니다.
다른 위치에 저장 한 경우에는 다를 수 있습니다.
이제 이전에 설치 한 Proteus를 빠르게 열고이 프로젝트의 회로도를 작성하겠습니다. 이 프로젝트의 범위를 벗어나므로이를 수행하는 방법에 대해서는 설명하지 않습니다. 그러나 걱정하지 마십시오. 아래 비디오에서 설명합니다. 지침에 따라 회로도를 작성하면 다음과 같이 보일 것입니다.
출력을 시뮬레이션하려면 Hex 파일을로드 한 후 화면 왼쪽 하단에있는 재생 버튼을 클릭합니다. MCU의 RB3에 연결된 LED가 깜박 여야합니다. 문제가있는 경우 동영상을 시청하고 여전히 해결되지 않으면 댓글 섹션을 사용하여 도움을 받으세요.
이제 PIC 마이크로 컨트롤러로 첫 번째 프로젝트를 만들고 시뮬레이션 소프트웨어를 사용하여 출력을 확인했습니다. 가서 프로그램을 조정하고 결과를 관찰하십시오. 다음 프로젝트에서 만날 때까지.
오 기다려 !!
다음 프로젝트에서는 실제 하드웨어에서이 작업을 수행하는 방법을 배우게됩니다. 이를 위해 다음 도구가 필요합니다. 그때까지 HAPPY LEARNING !!
- PicKit 3
- PIC16F877A IC
- 40-핀 IC 홀더
- 성능 보드
- 20Mhz 크리스탈 OSC
- 암컷 및 수컷 Bergstick 핀
- 33pf 커패시터-2Nos
- 680 옴 저항기
- 모든 색상의 LED
- 납땜 키트.