Освоение PIC16F877: особенности, распиновка и быстрое руководство по подключению
PIC16F877 — микроконтроллер с богатым набором функций, отличный для новичков и профи.
PIC16F877A содержит всё из PIC16F877 плюс внутренний RC-генератор, улучшенный АЦП и другое!
Статья охватывает особенности, порты ввода-вывода и базовое подключение. Поможет понять устройство и применение.
1. Обзор PIC16F877
PIC16F877 выполняет множество задач под управлением ПО.
Разработан для автономной работы или как часть чужих схем (RAMPS, Arduino). Может работать сам, но нужен кварцевый генератор (частота).
Полностью статический — работает с ограниченным Flash и RAM. Гибкий, дешёвый, самый популярный в схемах.
2. Особенности PIC16F877
Общие особенности
- Режим STOP экономии энергии — остановка без извлечения из схемы
- Высокоскоростной ШИМ (PWM) — до 256 уровней, встроенный программируемый предделитель
- Внутренний стабилизатор для I/O и интегрированный осциллятор (кварц/керамика)
- Начип-компаратор
- АЦП 12 бит, до 4 аналоговых каналов одновременно
- Поддержка внешних прерываний для пробуждения из сна или иных целей
- 8 режимов экономии энергии
- Аналоговый компаратор
- До 23 линий I/O
- 1 SPI и 4 UART (один полнодуплексный)
- Контроллер прерываний — до 14 источников
- Watchdog таймер — прерывание по истечению интервала
- Схема сброса при включении питания (Power-on reset)
- Программируемый детектор просадки питания (BOD)
- Внутренний калиброванный осциллятор — RC-цепочка как тактовый источник
- In-Circuit Serial Programming (ICSP) и отладка через debugWIRE
Ключевые особенности
- Внутренняя тактовая частота до 20 МГц
- 5 базовых портов I/O (A–E)
- 8 каналов 10-битного АЦП
- Параллельный порт PSP
- 8 КБ Flash (PIC16F877A)
- 2 последовательных интерфейса: I²C и SMBus
- 368 байт RAM + 256 байт (14 бит) EEPROM
- 3 таймера: один 16-битный и два 8-битных (режим таймера/счётчика)
Дополнительно
- Программирование на C
- Работа на 16 МГц внутреннем осцилляторе
- PIC16F877A конфигурируется как мастер/слейв, есть SPI-модуль
3. Распиновка PIC16F877A
Корпуса: 40-PIN DIP, 44-PIN TQFP, 44-PIN QFN — зависят от применения. На рисунке — распиновка PIC16F877A.
Источник: Microchip Datasheetspdf.com
4. Описание портов ввода-вывода
Каждый порт ассоциирован с двумя регистрами. Пример: PORT C — регистры PORTC и TRISC. TRISC задаёт направление (вход/выход). Каждому пину можно назначить значение независимо.
Для программирования используйте компиляторы. Лучший для PIC16F877A — MPLAB XC8 COMPILER.
- Порт A: аналоговый вход, цифровой I/O, PWM выход. 6 пинов (#2–#7): RA0–RA5
- Порт B: цифровой вход, аналоговый вход, захват таймера, сравнение таймера, PWM вход. 8 пинов (#33–#40): RB0–RB7
- Порт C: модуль счётчика/таймера (вход/выход), UART, SPI. 8 пинов: первые 4 (#15–#18), остальные 4 (#23–#26): RC0–RC7
Источник: Theengineeringprojects.com
- Порт D: цифровые входы, аналоговый вход, выход таймера. 8 пинов: #19–#22 и #27–#30: RD0–RD7
- Порт E: зарезервирован заводом. 3 пина (#8–#10): RE0–RE2
- VDD/VSS — питание, MCLR — мастер-сброс
- До 18 GPIO, настраиваемых как вход/выход через регистры
- Дополнительные выделенные пины на верхней поверхности
- VDD — плюс питания, VSS — земля
- 23 пина I/O, разделены на банк A и банк B
- У каждого I/O уникальный бит для функции входа/выхода
5. От теории к практике — мигание LED на PIC16F877A
Схема показывает подключение LED и ключевые пины. Для быстрой сборки:
- 5В на MCLR пин #1 + резистор 10 кОм
- 5В на пин #11 (VDD). 5В на пин #32 (VSS)
- Земля на VSS пин #12. Пины #13 (OSC1) и #14 (OSC2) → кварц 16 МГц
- 2 конденсатора 33 пФ на землю. Пин #31 (VSS) → земля
- LED + резистор 10 кОм на пин #21 (RD2) для загрузки программы
Для мигания LED: соедините LED между PORTD и землёй. Один LED + резистор 10 кОм. Настройте PORTD как выход (high-to-low через выходной защёлку). Запись 0x01 в DDRB → low-to-high. Запись 0x00 в DDRB → high (LED вкл).
Итоги
Изучили PIC16F877, его особенности и порты ввода-вывода PIC16F877A. Надеемся, было интересно!
Интересуетесь PIC — читайте наши другие статьи. Вопросы по PIC16F877 — обращайтесь.
Промышленные технологии
- E3.series 2021: расширенные функции кабелей и жгутов и бесплатная пробная версия
- Выбор правильного соединения батарей: последовательное, параллельное и смешанное
- Оптимизация литья под давлением с выталкивающими пинами: типы и лучшие практики
- Фаска против скругления: ключевые различия, которые должен знать каждый дизайнер
- Максимизация эффективности: функции и преимущества ПО для управления запасами
- Микроконтроллеры PIC18: особенности, производительность и руководство по использованию
- Транзистор 2N3771: распиновка, параметры, применение и аналоги
- AT89C51: обзор 8-битного микроконтроллера, распиновка, программирование, аналоги
- Сборка Arduino ProtoShield: пошаговое руководство
- Механизм быстрого возврата: принцип работы, применение и преимущества