PIC16F877A 마이크로컨트롤러: 핵심 기능과 프로젝트 선택 가이드
마이크로컨트롤러
출처: 픽사베이
프로젝트를 빠르게 완성할 유명한 마이크로컨트롤러를 찾는다면 PIC16F877A를 고려해 보세요. 사용이 편리하고 컨트롤러 코딩/프로그래밍이 수월합니다.
플래시 메모리 기술로 여러 번 쓰기/지우기가 가능합니다. PIC 마이크로컨트롤러 프로젝트나 디지털 전자 회로에 사용하기 전 이 장치에 대해 더 알고 싶으신가요?
반가운 소식은,
이 글을 통해 PIC16F877A의 기초, 응용, 프로그래밍 방법 등을 설명하여 여러분의 지식을 넓혀 드리겠습니다.
시작해 봅시다!
PIC16F877A 마이크로컨트롤러: 소개와 특징
PIC16F877A 마이크로컨트롤러
출처: 위키미디어 커먼즈
PIC16F877A는 프로그래밍이 쉽고 견고한 CMOS 8비트 마이크로컨트롤러로 다음 장치들과 호환됩니다:
- PIC16C7X
- PIC16C5X
- PIC162CXXX
40핀 또는 44핀 패키지에 강력한 성능을 담았습니다.
수신 주파수, 송신 코드 등 중요한 데이터를 영구 저장할 수 있는 EEPROM도 탑재했습니다.
흥미롭게도 PIC16F877A는 비용 효율적이고 다루기 쉽습니다. 유연성 덕분에 마이크로컨트롤러를 사용해 본 적 없는 곳에서도 작동합니다.
PIC16F877A의 특징
- 최대 20MHz 주파수로 동작
- 내부 발진기 미포함
- 최대 100mA 전류 공급 가능. GPIO 핀 전류 제한: 10mA
- 35개 명령어 세트
- 4가지 IC 패키지: 44핀 QFN, 40핀 PDIP, 44핀 TQFP, 44핀 PLCC
동작 전압 범위는 4.2V ~ 5.5V입니다. 5.5V 초과 시 영구 손상될 수 있습니다.
기타 특징은 아래 표와 같습니다:
| 데이터 EEPROM | 256 바이트 |
| 프로그램 메모리 타입 | 플래시 |
| 통신 주변장치 | MSSP (SPI/I2C), UART (1), I2C (1), SPI (1) |
| 타이머 모듈 | 8비트 (2), 16비트 (1) |
| RAM 바이트 | 368 |
| CPU | 8비트 PIC |
| I/O 핀 수 | 33 |
| CPU 속도 (MIPS) | 5 MIPS |
| DAC 모듈 | 없음 |
| 핀 수 | 40 |
| 프로그램 메모리 | 14KB |
| ADC 모듈 | 8채널, 10비트 |
| 비교기 | 2 |
PIC16F877A 마이크로컨트롤러: 핀아웃 구성
PIC16F877A 핀아웃 구성 요약:
PIC16F877A 시리얼 포트
PIC16F877A는 시리얼 포트 덕분에 데이터 통신에 효과적입니다. 앞서 언급한 송신 핀(RC6/Tx/CK)으로 시리얼 통신이 가능하며 시리얼 데이터 전송에 사용합니다.
시리얼 데이터 수신이 필요하면 수신 핀(RC7/Rx/DT)이 적합합니다.
PIC16F877A 마이크로컨트롤러용 컴파일러
44핀 PIC16F877A 마이크로컨트롤러
출처: 플리커
PIC16F877A와 함께 사용할 수 있는 다양한 컴파일러가 있습니다. 선호하는 컴파일러를 구해 코드를 작성하고 장치에서 어셈블하세요.
그러면 헥스 파일이 생성되어 프로그래머로 PIC 마이크로컨트롤러에 업로드할 수 있습니다.
PIC16F877A로 LED 점멸 회로도
PIC16F877A 회로도
출처: Pic Learning
마이크로컨트롤러로 LED를 점멸시키는 회로도는 올바른 연결(LED가 핀에 어떻게 연결되는지)을 보여줍니다. 전류 제한 저항이 필요한데, 단일 핀에서 최대 5mA만 얻을 수 있기 때문입니다.
진행 방법:
1. 프로테우스 내장 라이브러리에서 PIC16F877A 마이크로컨트롤러와 기타 부품을 선택합니다.
2. 저항(330Ω)으로 LED를 PIC16F877A의 16번 핀에 연결합니다.
3. 발진을 위해 4MHz 크리스탈을 PIC 마이크로컨트롤러의 클록 입력(13번 핀)과 클록 출력(14번 핀)에 연결합니다. 크리스탈 양쪽에 커패시터(C1, C2)를 연결합니다.
4. 컨트롤러의 MCLR 핀에 풀업 저항을 연결합니다. 저항 다른 쪽을 Vdd에 연결합니다.
PIC 마이크로컨트롤러 선택 방법
PIC 프로젝트에 가장 적합한 PIC 마이크로컨트롤러를 선택하기 전, 다음 질문에 답해 보세요:
전문가인가요, 초보자인가요? 초보자라면 광범위한 응용과 훌륭한 온라인 지원을 갖춘 마이크로컨트롤러가 좋습니다. PIC18F4520이 좋은 예입니다.
시스템 동작 전압은? 3.3V라면 3.3V 마이크로컨트롤러, 5V라면 5V 마이크로컨트롤러를 선택하세요.
예산과 소형화를 원하시나요? 8핀 소형 마이크로컨트롤러를 구할 수 있습니다.
어떤 모듈이 필요한가요? 많은 아날로그 전압을 읽을 예정이라면 지원 해상도와 ADC 채널이 있는 PIC를 선택하세요.
CAN, UART, I2C 등 통신 프로토콜이 필요한가요? 그렇다면 해당 프로토콜을 지원하는 PIC를 구하세요.
PIC 마이크로컨트롤러 프로그래밍 방법
PIC 마이크로컨트롤러 프로그래밍에는 여러 방법이 있습니다. 어셈블리어를 쓰는 구식 방식이나 고급 방식을 쓸 수 있습니다. 먼저 통합 개발 환경(IDE), 예: MPLABX v3.35를 준비하세요.
둘째, 컴파일러(예: XC8)를 구해 프로그램을 헥스 파일(마이크로컨트롤러 읽기 가능 형태)로 변환합니다. 셋째, 헥스 파일을 통합 프로그래밍 환경(IPE), 예: MPLAB IPE v3.35에 넣습니다.
흥미롭게도 이 모든 소프트웨어를 마이크로칩에서 무료로 다운로드/설치할 수 있습니다.
PIC16F877A의 응용 분야
다음과 같은 응용에 사용할 수 있습니다:
- 아두이노 모듈 대체
- 자동화 프로젝트
- 임베디드 시스템 프로젝트
- 로보틱스
마무리
PIC16F877A는 사용 편의성, 다중 쓰기/지우기 기능, 간편한 프로그래밍 면에서 시중 최고의 마이크로컨트롤러 중 하나입니다.
산업용 및 자동차 산업의 A/D 응용에 이상적입니다. 다중 통신 프로토콜과 I/O 인터페이스가 필요한 프로젝트에도 완벽합니다.
PIC16F877A에 대해 어떻게 생각하시나요? 다음 프로젝트에 사용할 계획이신가요? 도움이 필요하면 언제든 연락 주세요.