Открыть сервис

Микроконтроллеры 80C51

Микроконтроллер 80C51 — это 8-битное микропроцессорное устройство, представляющее собой модификацию классического микроконтроллера Intel 8051, выполненную по КМОП-технологии (Complementary Metal-Oxide-Semiconductor). Относится к семейству MCS-51, разработанному компанией Intel в 1980 году. Основное отличие 80C51 от предшественников — значительно сниженное энергопотребление, что делает его пригодным для использования в портативных и батарейных устройствах.

История

Микроконтроллер Intel 8051 был представлен в 1980 году и стал одним из самых популярных и долгоживущих семейств в истории встраиваемых систем. Изначально он изготавливался по n-МОП (NMOS) технологии, что обеспечивало высокую производительность, но сопровождалось значительным тепловыделением и энергопотреблением.

В середине 1980-х годов, с развитием КМОП-технологии, компания Intel выпустила версию 80C51. Буква «C» в обозначении указывает на использование КМОП-технологии. Переход на КМОП позволил снизить энергопотребление в несколько раз (до 10–20 мА в активном режиме против 100–150 мА у NMOS-версий) и ввести режимы пониженного энергопотребления (Idle и Power Down). Это открыло дорогу для применения микроконтроллера в устройствах с автономным питанием.

В 1990-е годы, после истечения срока действия патентов Intel, производство 80C51 и его клонов было освоено десятками компаний по всему миру, включая Atmel (серия AT89C51), Philips (серия P89C51), Siemens, Dallas Semiconductor, Maxim Integrated и многих других. В России и странах бывшего СССР также выпускались аналоги — например, микроконтроллеры серии КР1830ВЕ51 (советский аналог 80C51).

Архитектура и устройство

Микроконтроллер 80C51 построен на гарвардской архитектуре, где память программ (ROM/Flash) и память данных (RAM) имеют раздельные адресные пространства и шины доступа. Это позволяет одновременно выполнять выборку команды и обращение к данным, повышая производительность.

Основные компоненты

  • Центральный процессор (CPU) — 8-битный, с аккумулятором (A), регистром-указателем стека (SP), двумя регистрами-указателями (DPTR) и регистром состояния (PSW).
  • Память программ — встроенное ПЗУ (ROM) или Flash-память объёмом 4 КБ (в классической версии 80C51). В современных клонах объём может достигать 64 КБ и более.
  • Память данных — встроенное ОЗУ (RAM) объёмом 128 байт (в некоторых версиях — 256 байт). Адресуется как прямым, так и косвенным образом.
  • Таймеры/счётчики — два 16-битных таймера (T0 и T1), которые могут использоваться для измерения временных интервалов, генерации сигналов или как счётчики внешних событий.
  • Последовательный интерфейс — полнодуплексный UART (Universal Asynchronous Receiver/Transmitter) для связи с другими устройствами через RS-232, RS-485 или другие протоколы.
  • Порты ввода/вывода — четыре 8-битных порта (P0, P1, P2, P3), каждый из которых может быть настроен на ввод или вывод. Некоторые выводы портов имеют альтернативные функции (например, P3.0 — RxD, P3.1 — TxD).
  • Система прерываний — до 5 источников прерываний (внешние INT0, INT1, таймеры T0, T1, последовательный порт) с двумя уровнями приоритета.

Режимы энергопотребления

  • Активный режим — нормальная работа с полным энергопотреблением (типично 10–20 мА при 12 МГц).
  • Режим Idle — процессор останавливается, но периферийные устройства (таймеры, UART) продолжают работать. Энергопотребление снижается до 2–5 мА.
  • Режим Power Down — останавливается генератор тактовых импульсов, все функции приостанавливаются. Потребление падает до единиц микроампер (обычно 1–10 мкА). Выход из режима возможен только по внешнему прерыванию или сбросу.

Система команд

Процессор 80C51 использует систему команд, унаследованную от Intel 8051. Всего насчитывается 111 базовых инструкций, большинство из которых выполняются за 1–2 машинных цикла (один машинный цикл — 12 тактов кварцевого резонатора). Команды делятся на несколько групп:

  • Команды передачи данных (MOV, MOVX, MOVC, PUSH, POP, XCH) — работа с регистрами, памятью и портами.
  • Арифметические команды (ADD, ADDC, SUBB, INC, DEC, MUL, DIV) — сложение, вычитание, инкремент, декремент, умножение и деление.
  • Логические команды (ANL, ORL, XRL, CLR, SETB, CPL) — побитовые операции.
  • Команды перехода (JMP, CALL, RET, JZ, JNZ, CJNE, DJNZ) — условные и безусловные переходы, вызов подпрограмм.
  • Команды управления битами (JB, JNB, JBC, MOV C, bit) — работа с отдельными битами, что является отличительной особенностью архитектуры MCS-51.

Применение

Благодаря низкому энергопотреблению, надёжности и широкой доступности, микроконтроллеры 80C51 и их клоны нашли применение в самых разных областях:

  • Бытовая электроника — пульты дистанционного управления, микроволновые печи, стиральные машины, кофеварки, термостаты.
  • Автомобильная промышленность — блоки управления двигателем, системы зажигания, иммобилайзеры, бортовые компьютеры.
  • Промышленная автоматика — программируемые логические контроллеры (ПЛК), датчики, исполнительные механизмы, системы управления конвейерами.
  • Медицинская техника — тонометры, глюкометры, инсулиновые помпы, портативные мониторы.
  • Телекоммуникации — модемы, маршрутизаторы, телефонные аппараты, факс-аппараты.
  • Обучающие и хобби-проекты — благодаря простоте программирования и низкой стоимости, 80C51 широко используется в учебных курсах по микроконтроллерам.

Программирование

Разработка программного обеспечения для 80C51 ведётся на языке ассемблера или на языке C (с использованием компиляторов, таких как Keil C51, SDCC, IAR EW8051). Типичный процесс разработки включает:

  1. Написание исходного кода в текстовом редакторе или IDE.
  2. Компиляция в машинный код (HEX-файл).
  3. Загрузка прошивки в микроконтроллер через программатор (например, через параллельный или последовательный интерфейс).
  4. Отладка с использованием симуляторов (например, Proteus) или внутрисхемных эмуляторов.

Клоны и современные версии

На сегодняшний день оригинальный 80C51 от Intel снят с производства, но его архитектура продолжает жить в виде многочисленных клонов и усовершенствованных версий от других производителей:

  • Atmel (Microchip) — серии AT89C51, AT89S51, AT89LP51. Отличаются наличием Flash-памяти, внутрисхемным программированием (ISP), повышенной тактовой частотой (до 40 МГц).
  • Philips (NXP) — серии P89C51, P89V51. Характеризуются расширенным набором периферии (дополнительные таймеры, I2C, SPI, АЦП).
  • Silicon Labs — серия C8051Fxxx. Полностью переработанная архитектура с ядром 8051, но с современной периферией (до 12-битных АЦП, ЦАП, USB, CAN).
  • Maxim Integrated — серия DS89Cxxx. Высокопроизводительные версии с тактовой частотой до 33 МГц и 4-кратным ускорением выполнения команд.
  • Российские аналоги — микроконтроллеры КР1830ВЕ51 (аналог 80C51), КР1830ВЕ751 (с Flash-памятью), выпускаемые на предприятиях в Зеленограде и Воронеже.

Критика

Несмотря на популярность, архитектура 80C51 имеет ряд недостатков, которые стали заметны с развитием технологий:

  • Низкая производительность — 12 тактов на машинный цикл (в современных версиях — 4 или 1 такт, но оригинальная архитектура остаётся медленной по сравнению с RISC-архитектурами, такими как AVR или ARM).
  • Ограниченный объём памяти — 128 байт ОЗУ и 4 КБ ПЗУ в классической версии недостаточны для сложных приложений. Хотя клоны имеют расширенную память, адресация остаётся неудобной.
  • Сложность программирования — система команд с большим количеством специализированных инструкций и регистров требует от разработчика глубокого понимания архитектуры.
  • Отсутствие встроенной периферии — в оригинальной версии нет АЦП, ЦАП, ШИМ, I2C, SPI, что вынуждает использовать внешние компоненты.

Источники

  • Intel. MCS-51 Microcontroller Family User’s Manual. — Intel Corporation, 1994.
  • Atmel. AT89C51 Datasheet. — Atmel Corporation, 2001.
  • NXP. P89C51 Datasheet. — NXP Semiconductors, 2004.
  • Угрюмов Е. П. Цифровая схемотехника. — СПб.: БХВ-Петербург, 2005.
  • Калашников А. В. Микроконтроллеры 8051: архитектура, программирование, применение. — М.: ДМК Пресс, 2010.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →