PIC16F873A: мощный 8-битный микроконтроллер для встраиваемых систем

Какие ключевые особенности делают PIC16F873A популярным выбором для разработчиков. Как его производительность и периферийные устройства упрощают разработку встраиваемых систем. Почему PIC16F873A является отличным вариантом для обучения программированию микроконтроллеров.

Архитектура и ключевые характеристики PIC16F873A

PIC16F873A — это высокопроизводительный 8-битный микроконтроллер семейства PIC16 от Microchip Technology. Он построен на основе RISC-архитектуры и обладает рядом впечатляющих характеристик:

  • 8-битное ядро с тактовой частотой до 20 МГц
  • 7 КБ флэш-памяти программ
  • 368 байт оперативной памяти (RAM)
  • 256 байт энергонезависимой памяти данных EEPROM
  • 22 линии ввода/вывода общего назначения
  • Набор из 35 инструкций

Такое сочетание параметров делает PIC16F873A мощным и гибким решением для широкого спектра встраиваемых приложений. Но чем конкретно этот микроконтроллер выделяется на фоне аналогов?

Производительность и эффективность PIC16F873A

Одним из ключевых преимуществ PIC16F873A является его высокая производительность при низком энергопотреблении. Как это достигается?


  • Большинство инструкций выполняются за один машинный цикл
  • Пиковая производительность достигает 5 MIPS при тактовой частоте 20 МГц
  • Поддержка режима пониженного энергопотребления (Sleep)
  • Типовое потребление тока всего 1.6 мА при 5В питания

Такие показатели позволяют создавать на базе PIC16F873A высокопроизводительные системы с автономным питанием. А как обстоят дела с периферийными устройствами?

Богатый набор периферийных модулей

PIC16F873A оснащен широким набором встроенных периферийных устройств, что значительно упрощает разработку сложных систем:

  • 10-битный АЦП с 5 входными каналами
  • Два модуля PWM
  • Три таймера (8 и 16-битные)
  • Модули USART, SPI, I2C для организации связи
  • Аналоговые компараторы
  • Сторожевой таймер WDT

Такой богатый функционал позволяет реализовать большинство типовых задач без использования внешних компонентов. Но насколько просто программировать PIC16F873A?

Удобство программирования и отладки

Microchip предоставляет разработчикам мощные инструменты для работы с PIC16F873A:


  • Бесплатная среда разработки MPLAB X IDE
  • Компилятор XC8 для программирования на C
  • Поддержка внутрисхемного программирования и отладки
  • Большое количество примеров кода и документации

Это делает процесс разработки максимально удобным даже для начинающих. Но в чем преимущества PIC16F873A для обучения?

PIC16F873A как платформа для обучения

PIC16F873A часто используется в образовательных целях благодаря ряду факторов:

  • Доступная цена и широкая распространенность
  • Простая для понимания RISC-архитектура
  • Возможность программирования как на ассемблере, так и на C
  • Наличие недорогих отладочных плат
  • Большое сообщество и обилие учебных материалов

Это позволяет студентам и любителям быстро освоить основы микроконтроллерной техники. Но какие реальные проекты можно реализовать на PIC16F873A?

Примеры применения PIC16F873A

Благодаря своей универсальности, PIC16F873A находит применение в самых разных областях:

  • Системы сбора данных и управления
  • Бытовая электроника
  • Автомобильная электроника
  • Системы безопасности
  • Медицинское оборудование
  • Робототехника

Такая широкая сфера применения делает навыки работы с PIC16F873A крайне востребованными. Но как этот микроконтроллер соотносится с современными тенденциями?


PIC16F873A в контексте современных технологий

Несмотря на то, что PIC16F873A был выпущен достаточно давно, он остается актуальным и сегодня:

  • Низкое энергопотребление актуально для IoT-устройств
  • Простота интеграции подходит для быстрого прототипирования
  • Невысокая стоимость важна для массового производства
  • Проверенная временем надежность критична для ответственных применений

Это позволяет PIC16F873A успешно конкурировать даже с более современными микроконтроллерами. Но каковы перспективы его дальнейшего использования?

Будущее PIC16F873A

Хотя появляются все более мощные микроконтроллеры, PIC16F873A, вероятно, еще долго будет оставаться востребованным благодаря:

  • Огромной базе существующего кода и наработок
  • Совместимости с новыми моделями семейства PIC16
  • Постоянному совершенствованию инструментов разработки от Microchip
  • Сохраняющейся потребности в простых и недорогих решениях

Это делает изучение PIC16F873A отличным вложением времени для разработчиков встраиваемых систем. Но с чего начать знакомство с этим микроконтроллером?


Начало работы с PIC16F873A

Для тех, кто хочет освоить PIC16F873A, можно рекомендовать следующие шаги:

  1. Изучить документацию на микроконтроллер (даташит)
  2. Установить среду разработки MPLAB X IDE
  3. Приобрести недорогую отладочную плату
  4. Пройти онлайн-курсы или изучить учебные пособия по программированию PIC
  5. Присоединиться к сообществам разработчиков для обмена опытом

Такой подход позволит быстро войти в мир разработки на базе PIC16F873A и начать создавать собственные проекты. Но какие альтернативы стоит рассмотреть?

Альтернативы PIC16F873A

Хотя PIC16F873A обладает множеством достоинств, в некоторых случаях могут подойти другие варианты:

  • AVR-микроконтроллеры от Atmel (теперь Microchip) — популярны в любительских проектах
  • STM32 на базе ARM Cortex-M — более мощные, но и более сложные
  • ESP32 — со встроенным Wi-Fi для IoT-применений
  • Новые модели семейства PIC — с расширенным функционалом

Выбор конкретного микроконтроллера зависит от требований проекта и предпочтений разработчика. Но в чем главные преимущества именно PIC16F873A?



Запрашиваемая страница не найдена!

  • Главная
  • Запрашиваемая страница не найдена!

Категории

  • УФ-ППЗУ (Eprom)
  • Flash, Eeprom, Firmware Hub
  • Serial Eeprom, Serial Flash
  • Static RAM
  • Микроконтроллеры Atmel
  • PIC-микроконтроллеры Microchip
  • Микроконтроллеры Winbond/Nuvoton
  • Микроконтроллеры NXP/Philips
  • Микроконтроллеры Texas Instruments
  • Микроконтроллеры ST Microelectronics
  • Устройства программирования микросхем (переходники, клипсы, УФ-приборы), прочие приборы, инструмент
  • Макетные платы, текстолит
  • Панели, разъёмы, переключатели, герконы, кабель
  • Микросхемы импортные для ремонта (TDA, AN, LA, STR и пр.
    )
  • Логика
  • Компоненты Analog Devices
  • Компоненты Maxim/Dallas
  • Компоненты FTDI
  • Компоненты International Rectifier
  • Светодиоды
  • Транзисторы
  • Диоды, мосты, стабилитроны
  • Тиристоры, симисторы
  • Оптоэлектроника
  • Кварцы, генераторы
  • AC/DC преобразователи
  • Магниты
  • Импортные выводные (=К50-35, К50-24) и SMD электролитические конденсаторы, ионисторы
  • Импортные выводные керамические конденсаторы (=К10-17Б, К15-5, КД-2)
  • Импортные выводные плен. полиэстер. конденсаторы (=К73-9)
  • Чип конденсаторы керамические
  • Чип танталовые конденсаторы
  • Резисторы подстроечные
  • Чип резисторы
  • Резисторы выводные МЛТ-0,25 (С1-4), МЛТ-1, МЛТ-2 (С2-33)
  • Звукоизлучатели
  • Реле
  • Аккумуляторы свинцово-кислотные герметизированные
  • Тюнеры
  • Прочее
  • Товары под заказ

PIC16F873A-I/SP PDIP-28

Высокопроизводительный RISC-процессор:

• Всего 35 инструкций из одного слова для изучения

• Все одноцикловые инструкции, за исключением программных ветвей, которые являются двухтактными.

• Рабочая скорость: постоянный ток — тактовый сигнал 20 МГц, входной постоянный ток — цикл команд 200 нс.

• До 8K x 14 слов флэш-памяти программ, до 368 x 8 байт памяти данных (RAM), до 256 x 8 байт памяти данных EEPROM

• Распиновка совместима с другими 28-контактными или 40/44-контактными микроконтроллерами PIC16CXXX и PIC16FXXX.

Периферийные функции:

• Timer0: 8-битный таймер / счетчик с 8-битным предварительным делителем

• Timer1: 16-битный таймер / счетчик с предварительным делителем, может увеличиваться во время сна через внешний кристалл / часы

• Timer2: 8-битный таймер / счетчик с 8-битным регистром периода, предварительным делителем и постделителем

• Два модуля захвата, сравнения, ШИМ

— Захват 16 бит, макс. разрешение 12,5 нс

— Сравнение 16 бит, макс. разрешение 200 нс

— ШИМ макс. разрешение 10 бит

• Синхронный последовательный порт (SSP) с SPI (ведущий режим) и I2C ™ (ведущий / ведомый)

• Универсальный синхронный асинхронный приемный передатчик (USART / SCI) с обнаружением 9-битного адреса

• Параллельный подчиненный порт (PSP) — ширина 8 бит с внешними элементами управления RD, WR и CS (только 40/44 контактов)

• Схема обнаружения пониженного напряжения для сброса пониженного напряжения (BOR)

Аналоговые функции:

• 10-битный, до 8-канальный аналого-цифровой преобразователь (A / D)

• Сброс при пониженном напряжении (BOR)

• Модуль аналогового компаратора с:

— Два аналоговых компаратора

— Программируемый модуль опорного напряжения на кристалле (VREF)

— Программируемое мультиплексирование входов от входов устройства и внутреннего опорного напряжения

— Выходы компаратора доступны извне

Специальные возможности микроконтроллера:

• 100000 циклов стирания / записи Типичная расширенная флэш-память для программ

• 1000000 циклов стирания / записи, типичная память EEPROM данных

• Хранение данных в EEPROM> 40 лет

• Самостоятельное перепрограммирование под управлением программного обеспечения

• Внутрисхемное последовательное программирование ™ (ICSP ™) через два контакта

• Последовательное внутрисхемное программирование с однополярным питанием 5 В

• Сторожевой таймер (WDT) с собственным встроенным RC-генератором для надежной работы

• Программируемая защита кода

• Энергосберегающий спящий режим

• Выбираемые параметры осциллятора

• Внутрисхемная отладка (ICD) через два контакта

CMOS технология:

• Маломощная, высокоскоростная технология Flash / EEPROM.

• Полностью статичный дизайн

• Широкий диапазон рабочего напряжения (от 2,0 В до 5,5 В)

• Коммерческие и промышленные температурные диапазоны

• Низкое энергопотребление

Бренд microchip

По наличию 1000000 штук

Ускоренный курс программирования PIC16F873A

Ускоренный курс программирования PIC16F873A
Автор: Патрик Бойд. Группа 4.
Микроконтроллеры серии PIC обеспечивают легкий вес. альтернатива платам ARM
, обычно используемым в лабораториях CMPE490. Вот несколько советов, которые помогут получить начал с ПОС.

Приступая к работе

Программатор
Чтобы иметь возможность загружать код на PIC, вам нужно что-то, что может запрограммировать это. Для микроконтроллеров серии PIC16
почти все имеющиеся в продаже программы совместимы.

В нашем проекте мы использовали программатор PicStart Plus. Программатор фирмы Microchip.

ИДЕ
другим требованием является использование IDE. Microchip также предоставляет IDE в виде библиотек для каждой из моделей PIC
, доступных бесплатно на их веб-сайте под названием MPLAB

Once у вас запущена IDE, перейдите в меню Configure и выберите Select Устройство. Затем выберите PIC
, который у вас есть, из раскрывающегося меню в левом верхнем углу. Этот экран покажет вам, если программист
, который у вас есть, совместим с PIC, который вы используете. Зеленый означает полностью совместим, желтый — бета-поддержка
, красный — отсутствие совместимости.

После того, как вы выбрали устройство, перейдите в «Программист»> «Выбрать программатор». и выберите программатор из списка.

И последнее, о чем нужно убедиться, когда вы начинаете новый проект. Когда вы создаете новый файл сборки, MPLAB
не добавляет этот файл в проект автоматически, поэтому убедитесь, что вы вручную сделать это в меню навигатора проекта.
Существует также очень хороший шаблон кода, доступный в EE400/401. Веб-сайт.

Когда ваш код будет готов, выберите Programmer>Enable Programmer to подключить программатор. При использовании подключения USB к Serial
убедитесь, что вы настроили подключение таким образом, чтобы «Управление потоком:» установлено на «Аппаратное обеспечение», а флажок
«Использовать буферы FIFO» снят. После подключения к программист, просто нажмите кнопку «Программировать»
в правом верхнем углу, чтобы запрограммировать и проверить PIC.

Полезные свойства MPLAB

MPLAB делает для вас ряд вещей, которые значительно облегчают жизнь, когда программирование PIC. Прежде всего, это
, упакованные с библиотеками для каждой из моделей PIC, которые может использовать MPLAB. программировать, а это почти все они.
Эти библиотеки в основном содержат #define для всех специальных Регистры и управляемые биты в них.
Поэтому, если вы хотите прочитать бит в регистре STATUS, вам не нужно нужно искать адрес памяти, можно
просто используйте его имя.

Ассемблер MPASM, который использует MPLAB, также предоставляет множество полезных ассемблеров. директивы. Я расскажу о некоторых из
более полезных здесь:

этикетка банка — используется для сгенерировать код для переключения текущего банка памяти на любой содержит
метку регистра.

__config expr — используется для настройки биты конфигурации PIC. Есть много разных вариантов которые все перечислены
в файле библиотеки.

выражение данных — Эта функция используется для хранения шестнадцатеричного значения в текущей ячейке памяти программы. Обычно предваряется директивой ORG
для настройки правильного отображения памяти. Также имеет аналогичные выражения, такие как da или dw для настройки данных различных типы.

udata и udata_shr — используется с командой res, эти резерв и имя регистры для определенного банка памяти и общий
для всех банков памяти соответственно.

org и код — Используется для установки местоположения последующий код в памяти. Команда code также позволяет укажите имя
для этого блока кода.

pagesel — Аналогичен банкселю, но используется для выбора страница памяти используется для команд goto и call.

res expr- Используется для резервное количество регистры.

Основы программирования PIC16

PIC16F873A — это 8-разрядный процессор со всеми 256 байтами памяти. адресуемая память, состоящая из регистров. Однако он имеет четыре отдельных банка памяти по
, между которыми можно переключаться, устанавливая биты. в регистре STATUS (или используя намного более простой банксел 9директива 0002). Очень важно всегда перепроверять в каком банке памяти вы находитесь, прежде чем пытаться получить доступ к регистру
. Точно так же код операции для вызова и перейти к инструкциям недостаточно долго, чтобы адресовать всю программную память, поэтому регистр STATUS
также имеет два бита PCLATH0:1, которые определяют, какая страница памяти выбирается при вызове или переходе. Так что еще раз
дважды проверьте, на какую страницу памяти вы указываете, и используйте pagesel для изменения, если это необходимо.

Все линии ввода-вывода на PIC напрямую доступны через регистры. 16F873A имеет 3 группы контактов ввода-вывода PORTA, PORTB и PORTC.
Каждый контакт на этих портах может быть настроен независимо как вход или выход. Это делается в соответствующем регистре TRISX. Где
1 соответствует входу, а 0 — выходу.

Итак, например, если бы я хотел вывести высокое значение на RA0, я бы использовал следующий код:

банксель TRISA
КБФ ТРИСА, 0 ;; Настройте PORTA pin0 как выход
bankel        PORTA
movlw         0x01
movwf ПОРТ ;; Запишите 0x01 в PORTA, установив высокий уровень на выводе 0

Вам может быть интересно, почему я не использовал bsf, чтобы просто установить единственный контакт ПОРТ высокий. Это потому что бсф является одной из многих
операций чтения-модификации-записи, которые использует PIC. Поскольку контакты PORTA могут быть входными или выходными контактами и могут быть изменены
во время выполнения, результаты операции RMW могут быть непредсказуемыми, в этом случае лучше просто записать целый байт
в реестр.

Аналогичная операция чтения из линий ввода/вывода:

bankel TRISB
movlw        0xFF
movwf ТРИСБ ;; Настройте все контакты PORTB как входы
bankel       PORTB
movf           PORTB, Вт ;; Переместить содержимое PORTB в аккумулятор

Обратите внимание на порты ввода-вывода. У нас возникли проблемы с использованием контакта RA4 для что-либо. Было небольшое упоминание в техпаспорте RA4
не работает должным образом на некоторых моделях PIC, и для нас мы не могли управлять это вообще высоко.

PIC Simulator

Одним из основных недостатков использования программатора PICStart Plus является что он не поддерживает отладку программного обеспечения PIC.
Чтобы исправить это, я использовал PIC Simulator IDE. Тот, который я использовал, доступна для бесплатной ограниченной пробной версии от OshonSoft.

Этот симулятор поставляется со встроенным ассемблером, но многие ассемблерные директивы, доступные в MPLAB, не работают в 9Ассемблер симулятора 0002. Однако вы можете просто собрать код в MPLAB и загрузите шестнадцатеричный файл прямо в симулятор.

главный экран симулятора PIC показывает значение всех регистров, программный счетчик и аккумулятор, последняя и следующая инструкции и Прошло
времени. Значения любого из SFR можно изменить, нажав на определенных битах, а GPR можно изменить, щелкнув и ввод
нового значения. На этом экране вы также можете изменить скорость моделирование, выполнять инструкции и изменять различные параметры, такие как как часы
скорость процессора.

На этом экране отображается текущая позиция ПК в коде и позволяет поставить точку останова в коде.
Установка и сброс точек останова производится щелчком по нужному строка кода. На этом этапе часто проще
перейти в View>Program Memory в MPLAB, чтобы получить список многих программ. более легкая для чтения версия кода, с памятью на
адреса.

Поскольку в нашем проекте использовалась программная память, это окно было очень важно для нас. Однако, даже если вы не используете программу
памяти для хранения, этот экран полезен для изменения инструкций хранится в памяти программы, если вы хотите что-то изменить
немного не пересобирая проект.

PIC16F873A-I/SP VS PIC16F73-I/SP Сравнение-UTMEL

. -I/SP50150150150 ~ 850 ° C ~ 85 ° C TA50150150150 ~ 850 ° C ~ 85 ° C TA50150150150 гг. C TA Тип генератора0091

HIDE SHARED ATTRIBUTES

Производитель: Microchip Technology Microchip Technology
Description: IC MCU 8BIT 7KB FLASH 28SDIP IC MCU 8BIT 7KB FLASH 28SDIP
Factory Lead Time 7 Weeks 6 Weeks
Mount Through Hole Сквозное отверстие
Тип крепления Сквозное отверстие Сквозное отверстие
Упаковка/кейс 28-DIP (0,3020, 7. 0091 28 -DIP (0,300, 7,62 мм)
Количество контактов 28 28
Рабочая температура -40 ° C ~ 85 ° C TA
Packaging Tube Tube
Published 1997 1996
Series PIC® 16F PIC® 16F
JESD-609 Code e3 E3
Код PBFREE Да Да
Статус Актив Active
SENSITITY SENSETIONST).
Количество терминаций 28 28
ECCN CODE EAR 99 EAR99
Термина.0091 Matte Tin (Sn)
Additional Feature OPERATES AT 4 V MINIMUM SUPPLY
Subcategory Microcontrollers Microcontrollers
Technology CMOS CMOS
Положение клеммы DUAL DUAL
Напряжение питания 5 В 5 В
Частота 20MHz 20MHz
Base Part Number PIC16F873A PIC16F73
Pin Count 28 28
Power Supplies 5V 5V
Interface I2C, SPI, SSP, UART, USART I2C, SPI, SSP, UART, USART
Объем памяти 7 КБ 7 КБ
External External
Number of I/O 22 22
Nominal Supply Current 1. 6mA 900μA
RAM Size 192 x 8 192 x 8
Напряжение — Поставка (VCC/VDD) 4V ~ 5,5 В 4V ~ 5,5 В
UPS/UCS/PERIPHERAL TYPE MICROLOLLER, Riscers

0,

1501501501501501501501501501501501501501501501501501015015015015015015.0091
Number of Bits 8 8
Core Processor PIC PIC
Peripherals Brown-out Detect/Reset, POR, PWM, WDT Brown-out Detect /Reset, POR, PWM, WDT
Program Memory Type FLASH FLASH
Core Size 8-Bit 8-Bit
Program Memory Size 7KB 4K x 14 7KB 4K x 14
Connectivity I2C, SPI, UART/USART I2C, SPI, UART/USART
Bit Size 8 8
Data Converter A/D 5x10b A/D 5x8b
Watchdog Timer Yes Yes
Access Time 20 μs 20 μs
Has ADC YES YES
DMA Channels NO NO
Data Bus Width 8b 8b
Number of Timers/Counters 3 3
Address Bus Width 8b 8b
Density 56 kb 56 kb
ROM (words) 4096 4096
EEPROM Size 128 x 8
CPU Family PIC PIC
Number of ADC Channels 5 5
Number of PWM Channels 2 2
Number of I2C Channels 1
Height 3. 43mm 3.43mm
Length 35.18mm 35.18mm
Width 7.49mm 7.49mm
Radiation Hardening No No
REACH SVHC No SVHC No SVHC
RoHS Status ROHS3 Compliant Соответствует ROHS3
Без свинца Без свинца Без свинца
Макс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *