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

Микроконтроллер 8051

Микроконтроллер 8051 — это 8-битное однокристальное микропроцессорное устройство, разработанное корпорацией Intel в 1980 году. Он относится к семейству MCS-51 (Microcontroller System 51) и стал одним из самых массовых и долгоживущих микроконтроллеров в истории, заложив архитектурные основы для целого класса современных встраиваемых систем. Ключевые особенности 8051: гарвардская архитектура (раздельные адресные пространства памяти программ и данных), CISC-система команд, наличие встроенной последовательной шины UART, таймеров/счётчиков и портов ввода-вывода.

История

Разработка микроконтроллера 8051 началась в конце 1970-х годов в Intel под руководством инженера Джона Уорфа. Основной целью было создание универсального, недорогого и энергоэффективного контроллера для промышленной автоматизации, бытовой техники и автомобильной электроники. Первый образец был выпущен в 1980 году, а серийное производство стартовало в 1981 году.

В отличие от предшественников (например, Intel 8048), 8051 получил более мощную систему команд, увеличенный объём встроенной памяти (4 КБ ROM и 128 байт RAM) и встроенный последовательный интерфейс. Успех 8051 был настолько велик, что Intel лицензировала его архитектуру множеству производителей: Atmel, Philips (ныне NXP), Siemens, Dallas Semiconductor, Infineon, STMicroelectronics и другим. В 1990-х годах, после истечения срока действия патентов, архитектура стала открытой, что привело к появлению сотен клонов и производных.

В России и странах бывшего СССР микроконтроллеры семейства MCS-51 широко применялись в учебных заведениях, оборонной промышленности и приборостроении. Отечественные аналоги (например, КР1816ВЕ51, КМ1816ВЕ51) выпускались на предприятиях «Ангстрем» и «Микрон» (Зеленоград) и использовались в системах управления ракетной техникой, станками с ЧПУ и измерительными приборами.

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

Гарвардская архитектура

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

Центральный процессор (CPU)

  • Разрядность: 8 бит.
  • Тактовая частота: от 1 до 40 МГц (в зависимости от модификации и производителя).
  • Система команд: 111 инструкций, большинство из которых выполняются за 1 или 2 машинных цикла (12 тактов кварца на цикл). Включает операции с битами (бит-ориентированная обработка), что удобно для управления внешними устройствами.
  • Регистры: аккумулятор (A), регистр B, указатель стека (SP), два индексных регистра (DPTR — 16-битный указатель данных), регистр состояния (PSW — Program Status Word).

Память

  • Внутренняя память программ (ROM): 4 КБ (в оригинальном 8051). В современных клонах — до 64 КБ Flash-памяти.
  • Внутренняя память данных (RAM): 128 байт (включая 4 банка регистров по 8 байт и 128 бит адресуемой области). В расширенных версиях — до 256 байт.
  • Внешняя память: адресуется до 64 КБ программ и 64 КБ данных через мультиплексированную шину (порты P0 и P2).

Порты ввода-вывода

  • Четыре 8-битных порта (P0, P1, P2, P3), каждый из которых может быть настроен на ввод или вывод.
  • P0 — двунаправленный, открытый сток (требует внешних подтягивающих резисторов при работе с внешней памятью).
  • P1, P2, P3 — квази-двунаправленные, с внутренними подтягивающими резисторами.
  • P3 также выполняет альтернативные функции: последовательный интерфейс (RxD/TxD), внешние прерывания (INT0, INT1), таймеры (T0, T1), запись/чтение внешней памяти (WR, RD).

Таймеры/счётчики

Два 16-битных таймера/счётчика (T0 и T1), которые могут работать в четырёх режимах (13-битный, 16-битный, 8-битный с автоперезагрузкой, разделённый). Используются для измерения временных интервалов, генерации сигналов с ШИМ (в некоторых модификациях) и подсчёта внешних импульсов.

Последовательный интерфейс (UART)

Встроенный полнодуплексный асинхронный последовательный порт (UART) с возможностью работы в 4 режимах (синхронный, асинхронный с фиксированной/переменной скоростью). Скорость передачи задаётся таймером T1. Интерфейс поддерживает стандарт RS-232 (через внешний преобразователь уровней).

Система прерываний

  • 5 источников прерываний (в стандартной версии): внешние (INT0, INT1), таймерные (TF0, TF1) и последовательный порт (RI/TI).
  • Два уровня приоритета (низкий и высокий), настраиваемые программно.
  • Векторы прерываний расположены в начале памяти программ (адреса 0x0003, 0x000B, 0x0013, 0x001B, 0x0023).

Классификация и модификации

Семейство MCS-51 включает множество вариантов, различающихся объёмом памяти, тактовой частотой, напряжением питания и дополнительными периферийными модулями.

По типу памяти программ

  • ROM (масочный): программа записывается при производстве (8051).
  • EPROM (с ультрафиолетовым стиранием): 8751, 87C51.
  • OTP (однократно программируемый): 87C51 (однократная запись).
  • Flash (электрически перепрограммируемый): AT89C51 (Atmel), AT89S51, AT89C2051 (20-выводной корпус).
  • Без встроенной памяти: 8031, 80C31 (требуют внешней ROM).

По производителю

  • Intel: оригинальные 8051, 80C51 (CMOS-версия).
  • Atmel (Microchip): AT89C51, AT89S51, AT89C2051 (популярны в любительской и учебной практике).
  • Philips (NXP): P89C51, P89V51 (с расширенной Flash-памятью и дополнительными функциями).
  • Siemens (Infineon): C505, C515 (с улучшенной аналоговой периферией).
  • Dallas Semiconductor (Maxim): DS89C420 (с очень высокой тактовой частотой — до 33 МГц).
  • Silicon Labs: C8051Fxxx (полностью переработанная архитектура, до 100 МГц, встроенные АЦП, ЦАП, ШИМ).

По напряжению питания

  • Стандартные (5 В): 8051, 80C51.
  • Низковольтные (3,3 В или 2,7 В): 80C51LP, AT89LP.

Применение

Микроконтроллер 8051 и его клоны нашли применение в тысячах устройств благодаря простоте, надёжности и низкой стоимости.

Промышленная автоматика

  • Программируемые логические контроллеры (ПЛК) начального уровня.
  • Контроллеры станков с ЧПУ (например, в составе систем ЧПУ «Электроника НЦ-31»).
  • Датчики и исполнительные механизмы (температурные контроллеры, регуляторы оборотов).

Бытовая техника

  • Стиральные машины, микроволновые печи, холодильники (управление режимами, таймерами).
  • Пульты дистанционного управления (декодирование ИК-сигналов).
  • Игрушки и электронные игры (например, «Тетрис» на базе 8051).

Автомобильная электроника

  • Блоки управления двигателем (ЭБУ) ранних поколений (впрыск топлива, зажигание).
  • Панели приборов, бортовые компьютеры.
  • Системы управления подушками безопасности и ABS (в сочетании с другими контроллерами).

Телекоммуникации

  • Модемы, факсы, телефонные аппараты (управление набором номера, тоновым сигналом).
  • Сетевые карты и маршрутизаторы начального уровня.

Образование и хобби

  • Учебные стенды и лабораторные работы (архитектура MCS-51 изучается в технических вузах России и мира).
  • Любительские проекты (роботы, метеостанции, часы, измерители частоты).
  • Программирование на ассемблере и C (компиляторы SDCC, Keil C51, IAR).

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

Инструменты разработки

  • Ассемблер: стандартный язык для низкоуровневого программирования (директивы, макросы). Популярные ассемблеры: ASEM-51, A51 (Keil), MASM-51.
  • Язык C: компиляторы Keil C51 (коммерческий), SDCC (Small Device C Compiler, свободный), IAR Embedded Workbench.
  • Среды разработки (IDE): Keil µVision (Windows), SDCC + текстовый редактор (Linux), Proteus (симуляция), Atmel Studio (для продуктов Atmel).

Процесс программирования

  1. Написание кода (ассемблер или C).
  2. Компиляция в HEX-файл (Intel HEX или Motorola S-record).
  3. Загрузка в микроконтроллер через программатор (например, параллельный программатор для AT89C51, ISP-программатор для AT89S51).
  4. Отладка с помощью симулятора (Proteus, VMLab) или внутрисхемного эмулятора (ICE).

Пример простой программы (ассемблер)

`` ORG 0H MOV P1, #0FFH ; Установить порт P1 на ввод LOOP: MOV A, P1 ; Прочитать состояние порта P1 CPL A ; Инвертировать MOV P2, A ; Вывести на порт P2 SJMP LOOP ; Бесконечный цикл END ``

Критика и недостатки

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

  • Низкая производительность: CISC-архитектура с 12 тактами на машинный цикл (в оригинале) уступает RISC-контроллерам (например, AVR, PIC, ARM Cortex-M) по скорости и энергоэффективности.
  • Малый объём встроенной памяти: 128 байт RAM и 4 КБ ROM (в оригинале) недостаточны для сложных приложений. Современные клоны расширяют память, но это увеличивает стоимость.
  • Сложность адресации внешней памяти: мультиплексированная шина требует дополнительных микросхем (защёлок, дешифраторов), что усложняет схему.
  • Отсутствие встроенного АЦП/ЦАП (в стандартной версии): требуется внешний преобразователь.
  • Устаревшая система команд: отсутствие аппаратного умножения и деления (кроме регистра B), неэффективная работа с 16-битными данными.

Тем не менее, благодаря огромной базе кода, учебных материалов и доступности клонов, 8051 остаётся востребованным в образовании и простых встраиваемых системах.

Интересные факты

  • Микроконтроллер 8051 был одним из первых, кто получил встроенный последовательный интерфейс UART, что сделало его идеальным для связи с компьютером через RS-232.
  • В 1990-х годах компания Atmel выпустила микроконтроллер AT89C2051 в 20-выводном корпусе, который стал чрезвычайно популярен в радиолюбительских кругах благодаря малому размеру и низкой цене.
  • Архитектура 8051 используется в некоторых космических аппаратах (например, в спутниках серии «Метеор») благодаря радиационной стойкости некоторых модификаций.
  • В России до сих пор выпускаются отечественные аналоги микроконтроллеров 8051 (например, 1874ВЕ1Т, 1986ВЕ1Т) для оборонной и аэрокосмической промышленности.

Источники

  • Intel MCS-51 Microcontroller Family User’s Manual (1980).
  • Atmel AT89C51 Datasheet.
  • Язык ассемблера для микроконтроллеров 8051. — М.: ДМК Пресс, 2005.
  • Каганов В. И. Микроконтроллеры 8051: архитектура, программирование, применение. — СПб.: БХВ-Петербург, 2008.
  • Стандарт IEEE 1149.1 (JTAG) для отладки 8051-совместимых устройств.

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

На главную BFOmetr →