Микроконтроллер 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).
Процесс программирования
- Написание кода (ассемблер или C).
- Компиляция в HEX-файл (Intel HEX или Motorola S-record).
- Загрузка в микроконтроллер через программатор (например, параллельный программатор для AT89C51, ISP-программатор для AT89S51).
- Отладка с помощью симулятора (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 →