МКС-51
История | |
---|---|
Предшественник | Интел МКС-48 |
Преемник | Интел МКС-151 |
Intel MCS-51 (обычно называемый 8051 ) — это серия однокристальных микроконтроллеров (MCU), разработанная Intel в 1980 году для использования во встраиваемых системах . Архитектором набора инструкций Intel MCS-51 был Джон Х. Уортон . [1] [2] Оригинальные версии Intel были популярны в 1980-х и начале 1990-х годов, а улучшенные двоично-совместимые производные остаются популярными и сегодня. Это компьютер со сложным набором команд , но он также обладает некоторыми особенностями RISC- архитектуры, такими как большой набор регистров и окна регистров , а также имеет отдельные области памяти для программных инструкций и данных.
Первоначальное семейство Intel MCS-51 было разработано с использованием технологии металл-оксид-полупроводник ( NMOS ) N-типа, как и его предшественник Intel MCS-48 , но в более поздних версиях, обозначенных буквой C в названии (например, 80C51), используются дополнительные металлы. –оксидно-полупроводниковая ( CMOS ) технология и потребляют меньше энергии, чем их предшественники NMOS. Это сделало их более подходящими для устройств с батарейным питанием.
Семейство было продолжено в 1996 году усовершенствованным 8-битным семейством MCS-151 и семейством 8/ 16-битных / 32-битных двоично-совместимых микроконтроллеров MCS-251. [3] Хотя Intel больше не производит семейства MCS-51, MCS-151 и MCS-251, улучшенные двоично-совместимые производные, выпускаемые многочисленными поставщиками, остаются популярными и сегодня. Некоторые производные включают процессор цифровых сигналов (DSP) или блок с плавающей запятой (сопроцессор, FPU). Помимо этих физических устройств, несколько компаний также предлагают производные MCS-51 в качестве IP-ядер для использования в конструкциях программируемых вентильных матриц (FPGA) или специализированных интегральных схемах (ASIC).
Важные функции и приложения
[ редактировать ]Архитектура 8051 обеспечивает множество функций ( центральный процессор (ЦП), оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), порты ввода/вывода (I/O), последовательный порт, прерываниями управление , таймеры ) в одном упаковка :
- 8- битное арифметико-логическое устройство (АЛУ) и аккумулятор , 8-битные регистры (один 16-битный регистр со специальными инструкциями перемещения ), 8-битная шина данных и 2 × 16-битные адресные шины , счетчик программ , указатель данных и т. д. 8/11/16-битные операции; следовательно, это в основном 8-битный микроконтроллер
- Логический процессор с 17 инструкциями, 1-битным аккумулятором, 32 регистрами (4 × 8-бит, с побитовой адресацией) и до 144 специальных 1-битно-адресуемых переменных ОЗУ (18 × 8-бит). [4]
- по умножению , разделению и сравнению Инструкции
- Четыре быстро переключаемых банка регистров по восемь регистров в каждом ( с отображением памяти )
- Быстрое прерывание с дополнительным переключением банка регистров
- Прерывания и потоки с выбираемым приоритетом [5]
- 128 или 256 байт встроенной оперативной памяти (IRAM)
- Двойная 16-битная адресная шина ; он может получить доступ к 2×2 16 ячейки памяти: по 64 КБ (65 536 ячеек) каждая из ПЗУ (PMEM) и внешней оперативной памяти (XRAM), с использованием двух шин памяти в гарвардской архитектуре .
- Встроенное ПЗУ (не входит в варианты 803x)
- Четыре (три полных) 8- битных двунаправленных ввода/вывода с побитовой адресацией порта
- UART ( последовательный порт )
- Два 16-битных счетчика/ таймера
- Режим энергосбережения (на некоторых производных)
Одной из особенностей ядра 8051 является включение механизма булевой обработки, который позволяет битов операции на уровне логические логические выполнять напрямую и эффективно над выбранными внутренними регистрами , портами и выбранными ячейками ОЗУ . Еще одной особенностью является включение четырех наборов рабочих регистров с возможностью выбора банка , которые значительно сокращают время, необходимое для выполнения переключений контекста для входа и выхода из подпрограмм обслуживания прерываний . С помощью одной инструкции 8051 может переключать банки регистров, избегая трудоемкой задачи по передаче критических регистров в ОЗУ.
После настройки UART и, при необходимости, таймера, программисту нужно только написать простую процедуру прерывания для пополнения сдвигового регистра отправки всякий раз, когда UART сдвигает последний бит, и/или полностью очищать приема сдвиговый регистр (скопировать данные где-то еще). Затем основная программа выполняет последовательное чтение и запись, просто считывая и записывая 8-битные данные в стеки.
Производные функции
[ редактировать ]По состоянию на 2013 год [update]новые производные все еще разрабатываются многими крупными производителями микросхем и крупными поставщиками компиляторов, такими как IAR Systems , Keil и Altium Tasking. [6] постоянно выпускать обновления.
Микроконтроллеры на базе MCS-51 обычно включают один или два UART , два или три таймера, 128 или 256 байт внутренней оперативной памяти данных (16 байт из которых побитно-адресуемые), до 128 байт ввода-вывода , от 512 байт до 64 КБ. внутренней программной памяти, а иногда и объема расширенной оперативной памяти данных (ERAM), расположенной во внешнем пространстве данных. Внешнее ОЗУ и ПЗУ совместно используют шины данных и адреса. Исходное ядро 8051 работало с частотой 12 тактов за машинный цикл, причем большинство инструкций выполнялось за один или два машинных цикла. 12 МГц Таким образом, при тактовой частоте процессор 8051 мог выполнять 1 миллион однотактных инструкций в секунду или 500 000 двухтактных инструкций в секунду. В настоящее время широко используются усовершенствованные ядра 8051, которые работают с частотой шесть, четыре, два или даже один такт за машинный цикл (обозначаются «1T») и имеют тактовую частоту до 100 МГц и, таким образом, способны выполнять еще большее количество операций. инструкций в секунду. Все устройства Silicon Labs , некоторые устройства в Далласе (теперь часть Maxim Integrated ) и несколько устройств Atmel (теперь часть Microchip ) имеют однотактные ядра . [7] [8] [9]
Варианты 8051 могут включать встроенные таймеры сброса с обнаружением отключения питания, встроенные генераторы, самопрограммируемую флэш- память программ, встроенное внешнее ОЗУ, дополнительное внутреннее хранилище программ, код загрузчика в ПЗУ, EEPROM энергонезависимое хранилище данных . , я 2 C , SPI и USB Хост-интерфейсы CAN или LIN , шина Zigbee или Bluetooth , радиомодули , генераторы ШИМ , аналоговые компараторы , аналого-цифровые и цифро-аналоговые преобразователи , часы реального времени , дополнительные счетчики и таймеры, внутрисхемная отладка возможности, больше источников прерываний, дополнительные режимы энергосбережения, больше/меньше параллельных портов и т. д. Intel выпустила версию с программированием по маске, 8052AH-BASIC, с интерпретатором BASIC в ПЗУ, способную запускать пользовательские программы, загруженные в ОЗУ.
Микроконтроллеры на базе MCS-51 адаптированы к экстремальным условиям. Примерами высокотемпературных вариантов являются семейство Tekmos TK8H51 для температур от -40 °C до +250 °C. [10] или Honeywell HT83C51 для температур от −55 °C до +225 °C (с эксплуатацией до 1 года при +300 °C). [11] радиационно-стойкие Доступны микроконтроллеры MCS-51 для использования в космических кораблях; например, от Cobham (ранее Aeroflex ) как UT69RH051 [12] из НИИЭТ 1830ВЕ32 как или . [13]
В некоторых инженерных школах микроконтроллер 8051 используется на вводных курсах по микроконтроллерам. [14] [15] [16] [17]
Соглашения о семейных именах
[ редактировать ]Первым микроконтроллером Intel MCS-51 был 8051 с 4 КБ ПЗУ и 128 байт ОЗУ. Варианты, начинающиеся с номера 87, имеют программируемую пользователем СППЗУ, иногда стираемую УФ-излучением. Варианты с буквой C в качестве третьего символа представляют собой своего рода CMOS . 8031 и 8032 — версии без ПЗУ с объемом ОЗУ 128 и 256 байт. Последняя цифра может указывать объем памяти, например 8052 с ПЗУ 8 КБ, 87C54 со СППЗУ 16 КБ и 87C58 со СППЗУ 32 КБ, все с ОЗУ 256 байт.
Архитектура памяти
[ редактировать ]MCS-51 имеет четыре различных типа памяти: внутреннюю RAM, регистры специальных функций, память программ и внешнюю память данных. Для эффективного доступа к ним некоторые компиляторы [18] использовать до 7 типов определений памяти: внутреннее ОЗУ, однобитовый доступ к внутреннему ОЗУ, регистры специальных функций, однобитовый доступ к выбранным (делящимся на 8) регистрам специальных функций, программное ОЗУ, доступ к внешнему ОЗУ с использованием косвенного регистра доступ, используя один из стандартных 8-битных регистров, и регистрируйте косвенный доступ к внешней оперативной памяти, используя 16-битный регистр косвенного доступа.
Набор команд 8051 выполнен в соответствии с Гарвардской архитектурой с разделенной памятью (данные и инструкции); он может выполнять только код, полученный из памяти программы, и не имеет инструкций для записи в память программы. Однако шина, выходящая из IC, имеет один адрес и путь данных и сильно напоминает шину архитектуры фон Неймана .
Большинство систем 8051 соблюдают набор команд и требуют специальных функций для загрузки новых исполняемых программ, например, во флэш-память.
Внутренняя оперативная память
[ редактировать ]Внутреннее ОЗУ (IRAM) имеет 8-битное адресное пространство и использует адреса от 0 до 0xFF. IRAM от 0x00 до 0x7F содержит 128 однобайтовых регистров с прямой адресацией, доступ к которым можно получить с помощью 8-битного абсолютного адреса, который является частью инструкции. В качестве альтернативы доступ к IRAM можно получить косвенно: адрес загружается в R0 или R1, а доступ к памяти осуществляется с использованием синтаксиса @R0 или @R1 или как к памяти стека через указатель стека SP с помощью операций PUSH и POP; и операции *CALL и RET.
Исходный 8051 имеет только 128 байт IRAM. В 8052 добавлен IRAM с 0x80 на 0xFF, доступ к которому возможен только косвенно (например, для использования в качестве стекового пространства). Большинство клонов 8051 также имеют полные 256 байт IRAM.
Вместо этого прямой доступ к адресам IRAM 0x80–0xFF отображается в регистрах специальных функций (SFR), где расположены аккумуляторы A, B, перенос бита C и другие специальные регистры для управления, состояния и т. д.
Регистры специальных функций
[ редактировать ]Регистры специальных функций (SFR) расположены в том же адресном пространстве, что и IRAM, по адресам от 0x80 до 0xFF, и доступ к ним осуществляется напрямую с использованием тех же инструкций, что и для нижней половины IRAM. К ним нельзя получить косвенный доступ через @R0 или @R1 или указатель стека SP; Косвенный доступ к этим адресам вместо этого приведет к доступу ко второй половине IRAM.
Регистры специальных функций (SFR) включают в себя аккумуляторы A (или ACC, в E0) и B (в F0) и слово состояния программы (или PSW, в D0), а также 16-битный указатель данных DPTR (в позиции D0). 82 как DPL и 83 как DPH). В дополнение к этому, небольшое ядро других специальных функциональных регистров, включая IE разрешения прерывания в A8 и IP приоритета прерывания в B8; порты ввода-вывода P0 (80), P1 (90), P2 (A0), P3 (B0); последовательное управление вводом/выводом SCON (98) и буфер SBUF (99); регистр управления процессором/питанием PCON (87); и регистры управления таймерами 0 и 1 (TCON в 88) и режима работы (TMOD в 89), 16-битный таймер 0 (TL0 в 8A, TH0 в 8C) и таймер 1 (TL1 в 8B, TH1 в 8D) – присутствуют во всех версиях 8051. Остальные адреса зависят от версии; в частности, регистры таймера 2 для 8052, регистр управления T2CON (в C8), 16-битный захват/фиксация (RCAP2L в CA, RCAP2H в CB) и таймер 2 (TL2 в CC и TH2 в CD) не являются входит в комплект 8051.
Регистрация окон
[ редактировать ]32 байта в IRAM от 0x00 до 0x1F содержат место для четырех 8-байтовых окон регистров , которым соответствуют восемь регистров R0–R7. Активное в данный момент окно определяется двухбитным адресом, содержащимся в слове состояния программы.
Битовые регистры
[ редактировать ]16 байтов (128 бит) в ячейках IRAM 0x20–0x2F содержат место для 128 1-битных регистров, которые отдельно адресуются как битовые регистры 00–7F.
Остальные битовые регистры, адресованные как 80–FF, отображаются на 16 регистров специальных функций 80, 88, 90, 98, ..., F0 и F8 (те, чьи адреса кратны 8), и, следовательно, включают биты, содержащие аккумуляторы A, B и слово состояния программы PSW. Адрес окна регистров, представляющий собой биты 3 и 4 PSW, сам адресуется как битовые регистры D3 и D4 соответственно; в то время как бит переноса C (или CY) в бите 7 PSW адресуется как битовый регистр D7.
Память программ
[ редактировать ]Программная память (PMEM, хотя и реже используется, чем IRAM и XRAM) составляет до 64 КБ постоянной памяти, начиная с адреса 0 в отдельном адресном пространстве. Он может быть внутри или вне кристалла, в зависимости от конкретной модели используемого чипа. Память программ доступна только для чтения, хотя некоторые варианты 8051 используют встроенную флэш-память и обеспечивают метод перепрограммирования памяти в системе или в приложении.
Помимо кода, в памяти программы можно хранить данные, доступные только для чтения, такие как справочные таблицы , извлекаемые программой. MOVC A,@A+DPTR
или MOVC A,@A+PC
инструкции. Адрес вычисляется как сумма 8-битного аккумулятора и 16-битного регистра (PC или DPTR).
Специальные инструкции по прыжкам и вызовам ( AJMP
и ACALL
) немного уменьшить размер кода, обращающегося к локальной (в пределах тех же 2 КБ) памяти программы. [19]
Когда требуется код размером более 64 КБ, обычная система переключает банки кода, при этом ввод-вывод общего назначения выбирает старшие биты адреса. Некоторые компиляторы 8051 [18] предусмотреть возможность автоматического доступа к страничному коду. В этих системах векторы прерываний и таблица подкачки размещаются в первых 32 КБ кода и всегда являются резидентными.
Внешняя память данных
[ редактировать ]Внешняя память данных (XRAM) представляет собой третье адресное пространство, также начинающееся с адреса 0 и допускающее 16 бит адресного пространства. Он также может быть внутри или вне кристалла; что делает его «внешним», так это то, что к нему необходимо получить доступ с помощью MOVX
(переместить внешнюю) инструкцию. Многие варианты 8051 включают стандартные 256 байт IRAM плюс несколько килобайт XRAM на чипе.
Доступ к первым 256 байтам XRAM можно получить с помощью MOVX A,@R0
, MOVX A,@R1
, MOVX @R0,A
, и MOVX @R1,A
инструкции. Доступ к полным 64 КБ можно получить с помощью MOVX A,@DPTR
и MOVX @DPTR,A
. 16-битный адрес требует, чтобы программист загрузил 16-битный индексный регистр. По этой причине доступ к ОЗУ с 16-битными адресами существенно медленнее.
Некоторые процессоры [20] разрешить 8-битному косвенному адресу использовать любой 8-битный регистр общего назначения.
Чтобы разрешить использование этой функции, некоторые 8051-совместимые микроконтроллеры с внутренней оперативной памятью размером более 256 байт или невозможностью доступа к внешней оперативной памяти: [20] имеют доступ к внутренней оперативной памяти, как если бы она была внешней, и имеют специальный функциональный регистр (например, PDATA), который позволяет им устанавливать верхний адрес 256-байтовой страницы. Это эмулирует режим MCS8051, который может выводить на страницу старший байт адреса ОЗУ, устанавливая контакты ввода-вывода общего назначения.
Когда требуется ОЗУ размером более 64 КБ, обычная система переключает банки ОЗУ, при этом ввод-вывод общего назначения выбирает старшие биты адреса. Некоторые компиляторы 8051 [18] предусмотреть возможность автоматического доступа к страничным данным.
Регистры
[ редактировать ]Единственный регистр 8051, который не отображается в памяти, — это 16-битный программный счетчик (ПК). Это указывает адрес следующей инструкции для выполнения. Инструкции относительного перехода предоставляют 8-битное смещение со знаком, которое добавляется к ПК.
Доступ к восьми регистрам общего назначения R0–R7 можно получить с помощью инструкций на один байт короче других. Они сопоставлены с IRAM между 0x00 и 0x1F. В любой момент времени используются только восемь байтов этого диапазона, что определяется двумя битами выбора банка в PSW.
Ниже приводится неполный список регистров 8051, которые отображены в памяти в пространство регистров специальных функций:
- Указатель стека, SP (0x81)
- Это 8-битный регистр, используемый инструкциями вызова подпрограммы и возврата. Стек растет вверх; SP увеличивается перед нажатием и уменьшается после извлечения значения.
- Указатель данных, DP (0x82–83)
- Это 16-битный регистр, который используется для доступа к PMEM и XRAM.
- Слово состояния программы, PSW (0xD0)
- Он содержит важные флаги состояния по номерам битов:
- Четность, P. Определяет четность ( исключающее ИЛИ битов) аккумулятора A.
- Определяется пользователем, UD. Может быть прочитан и записан программным обеспечением; иначе аппаратное обеспечение не влияет.
- Флаг переполнения , OV. Устанавливается, когда сложение приводит к знаковому переполнению.
- Регистр выберите 0, RS0. Младший бит банка регистров. Устанавливается, когда используются банки по адресам 0x08 или 0x18.
- Регистр выберите 1, RS1. Старший бит банка регистров. Устанавливается, когда используются банки по адресам 0x10 или 0x18.
- Флаг 0, F0. Может быть прочитан и записан программным обеспечением; иначе аппаратное обеспечение не влияет.
- Вспомогательная переноска , переменный ток. Устанавливается, когда сложение производит перенос из бита 3 в бит 4.
- Carry bit , C. Часто используется в качестве общего регистра для битовых вычислений или «логического аккумулятора».
- Аккумулятор, А (0xE0)
- Этот регистр используется большинством инструкций.
- Регистр B (0xF0)
- Он используется как расширение аккумулятора для команд умножения и деления.
256 отдельных битов имеют прямую адресацию. Это 16 ячеек IRAM от 0x20 до 0x2F и 16 регистров специальных функций 0x80, 0x88, 0x90, ..., 0xF8. К любому биту этих байтов можно напрямую получить доступ с помощью множества логических операций и условных ветвей.
Обратите внимание, что PSW не содержит общих отрицательных (N) или нулевых (Z) флагов . В первом случае к старшему биту аккумулятора можно обращаться напрямую, поскольку это SFR с побитовой адресацией. Для последнего существуют явные инструкции о том, равен ли аккумулятор нулю. Существует также операция сравнения и перехода с двумя операндами.
Бит четности (P) часто используется для реализации последовательных режимов, включающих контроль четности. Для поддержки этого стандартные UART MCS51 могут отправлять 9 бит.
Микроархитектура
[ редактировать ]Микроархитектура Intel MCS8051 является собственной собственностью, но опубликована. [21] функции подсказывают, как это работает. Это многотактный процессор . MCS8051 использовал 12 тактов. [21] для большинства инструкций. Во многих инструкциях используется аккумулятор. [21] Напротив, большинство совместимых компьютеров выполняют инструкции за один-три цикла, за исключением команд умножения и деления. Гораздо более высокая скорость является основной причиной, по которой они заменили MCS8051 в большинстве приложений.
Каждое прерывание имеет четыре приоритета. [21] В пределах каждого приоритета прерывания устройств имеют фиксированный приоритет. [21]
Набор инструкций
[ редактировать ]Все инструкции имеют длину от 1 до 3 байтов и состоят из начального байта кода операции, за которым следуют до 2 байтов операндов.
1/4 x , байта кода операции, x 0– 3 . используются для нерегулярных кодов операций
3/4 . F байта кода операции, x 4– x операндами , назначены 16 базовым инструкциям ALU с 12 возможными Младший полубайт опкода выбирает основной операнд следующим образом:
- x 8– x F : Прямая регистрация, R0–R7.
- x 6– x 7 : Косвенный регистр, @R0 или @R1.
- x 5 : прямая память, следующий байт указывает местоположение IRAM или SFR.
- x 4 : Сразу же, следующий байт определяет 8-битную константу. Когда операнд является пунктом назначения (
INC operand
,DEC operand
) или операция уже включает непосредственный источник (MOV operand,#data
,CJNE operand,#data,offset
), вместо этого указывается, что используется аккумулятор.
Самый старший полубайт определяет операцию следующим образом. Не все поддерживают все режимы адресации; в частности, непосредственный режим недоступен, когда записывается основной операнд. В мнемонике инструкций используется порядок назначения и источника операндов.
- 0 лет :
INC operand
- Увеличить указанный операнд. Непосредственный режим (код операции 0x04) определяет аккумулятор,
INC A
. - 1 год :
DEC operand
- Уменьшите указанный операнд. Немедленный режим (код операции 0x14) определяет аккумулятор,
DEC A
. - 2 года :
ADD A,operand
- Добавьте операнд в аккумулятор A. Код операции 0x23 (
RL A
, «поворот влево», но на самом деле сдвиг влево ) можно рассматривать какADD A,A
. - 3 года :
ADDC A,operand
- Добавьте операнд плюс бит C в аккумулятор. Код операции 0x33 (
RLC A
, повернуть влево посредством переноса) можно рассматривать какADDC A,A
. - 4 года :
ORL A,operand
- Логическое ИЛИ операнда в аккумулятор. Две формы назначения памяти этой операции:
ORL address,#data
иORL address,A
, определяются кодами операций 0x43 и 0x42. - 5 лет :
ANL A,operand
- Логическое И операнд в аккумулятор. Две формы назначения памяти этой операции:
ANL address,#data
иANL address,A
, определяются кодами операций 0x53 и 0x52. - 6 лет :
XRL A,operand
- Логическое исключающее ИЛИ операнд в аккумулятор. Две формы назначения памяти этой операции:
XRL address,#data
иXRL address,A
, определяются кодами операций 0x63 и 0x62. - 7 лет :
MOV operand,#data
- Немедленно перейти к операнду. Непосредственный режим (код операции 0x74) определяет аккумулятор,
MOV A,#data
. - 8 лет :
MOV address,operand
- Переместите значение в регистр IRAM или SFR. Немедленный режим (код операции 0x84) для этой операции не используется, так как он дублирует код операции 0x75.
- 9 лет :
SUBB A,operand
- Вычтите операнд из аккумулятора. заимствования невозможно Эта операция заимствует, и вычитание без .
- Да :
MOV operand,address
- Переместить значение из регистра IRAM или SFR. Немедленный режим (код операции 0xA4) не используется, поскольку непосредственные сигналы служат только источниками. Прямой режим памяти (код операции 0xA5) не используется, поскольку дублирует 0x85.
- К :
CJNE operand,#data,offset
- Сравнить операнд с непосредственным
#data
и перейдите к PC + смещение, если не равно. Непосредственный режим и режим прямого доступа к памяти (коды операций 0xB4 и 0xB5) сравнивают операнд с аккумулятором,CJNE A,operand,offset
. Обратите внимание, что здесь нет инструкций сравнения и перехода при равенстве.CJE
. - С :
XCH A,operand
- Поменяйте местами аккумулятор и операнд. Немедленный режим (код операции 0xC4) для этой операции не используется.
- Вы :
DJNZ operand,offset
- Уменьшите операнд и перейдите к PC + смещение, если результат не равен нулю. Непосредственный режим (код операции 0xD4) и косвенный режим регистра (0xD6, 0xD7) не используются.
- Эй :
MOV A,operand
- Переместить операнд в аккумулятор. Для этой операции не используется немедленный режим (код операции 0xE4), поскольку он дублирует код операции 0x74.
- Ф да :
MOV operand,A
- Переместить аккумулятор в операнд. Немедленный режим (код операции 0xF4) не используется, поскольку он не будет иметь никакого эффекта.
Только ADD
, ADDC
, и SUBB
инструкции устанавливают флаги PSW. INC
, DEC
, а логические инструкции — нет. CJNE
Инструкция изменяет только бит C, заимствуя его из операнда1 – операнда2 .
Нестандартные инструкции содержат 64 кода операций с более ограниченными режимами адресации, а также несколько кодов операций, удаленных из неприменимых режимов в обычных инструкциях.
Код операции | х 0 | х 1 | х 2 | х 3 | х 4 |
---|---|---|---|---|---|
0 лет | NOP |
| LJMP addr16 | RR A (повернуть вправо) | INC A |
1 год | JBC bit,offset (перейти, если бит установлен со сбросом) | LCALL addr16 | RRC A (повернуть вправо через перенос) | DEC A | |
2 года | JB bit,offset (перейти, если бит установлен) | RET | RL A (повернуть влево) | ADD A,#data | |
3 года | JNB bit,offset (перейти, если бит чист) | RETI | RLC A (поворот влево через перенос) | ADDC A,#data | |
4 года | JC offset (прыжок, если набор для переноски) | ORL address,A | ORL address,#data | ORL A,#data | |
5 лет | JNC offset (прыгнуть, если пронести) | ANL address,A | ANL address,#data | ANL A,#data | |
6 лет | JZ offset (прыжок, если ноль) | XRL address,A | XRL address,#data | XRL A,#data | |
7 лет | JNZ offset (перейти, если не ноль) | ORL C,bit | JMP @A+DPTR | MOV A,#data | |
8 лет | SJMP offset (короткий прыжок) | ANL C,bit | MOVC A,@A+PC | DIV AB | |
9 лет | MOV DPTR,#data16 | MOV bit,C | MOVC A,@A+DPTR | SUBB A,#data | |
Да, да | ORL C,/bit | MOV C,bit | INC DPTR | MUL AB | |
К | ANL C,/bit | CPL bit | CPL C | CJNE A,#data,offset | |
С y | PUSH address | CLR bit | CLR C | SWAP A | |
Д й | POP address | SETB bit | SETB C | DA A (десятичная настройка) | |
Эй, й | MOVX A,@DPTR | MOVX A,@R0 | MOVX A,@R1 | CLR A | |
Ф да | MOVX @DPTR,A | MOVX @R0,A | MOVX @R1,A | CPL A |
- 85
MOV address,address
перемещаться напрямую между двумя регистрами IRAM или SFR.- А5
- Неиспользованный
- Б5
CJNE A,address,offset
сравните аккумулятор с регистром IRAM или SFR и перейдите к PC + смещение, если оно не равно.- Д6–7
XCHD A,@R0–1
обмен младшими полубайтами операндов.
The SJMP
Код операции (короткий переход) принимает байтовый операнд относительного смещения со знаком и передает туда управление относительно адреса следующей инструкции. AJMP
/ ACALL
коды операций объединяют три старших бита байта кода операции со следующим байтом, чтобы указать 11-битный адрес назначения, который используется для замены 11 нижних бит регистра ПК (верхние 5 бит регистра ПК остаются нетронутыми). Для более крупных адресов LJMP
и LCALL
инструкции допускают 16-битное назначение.
Одной из причин популярности 8051 является его диапазон операций с отдельными битами. Биты всегда задаются абсолютными адресами; нет регистровой косвенной или индексированной адресации. Инструкции, которые работают с отдельными битами:
SETB bit
,CLR bit
,CPL bit
: Установить, очистить или дополнить указанный бит.JB bit,offset
: переход, если бит установленJNB bit,offset
: Перейти, если бит очищен.JBC bit,offset
: Переход, если бит установлен, и очистка бита.MOV C,bit
,MOV bit,C
: Переместить указанный бит в бит переноса или наоборот.ORL C,bit
,ORL C,/bit
: Или бит (или его дополнение) к биту переноса.ANL C,bit
,ANL C,/bit
: И бит (или его дополнение) к биту переноса
Битовый операнд записывается в виде address.number
. Поскольку флагом переноса является бит 7 слова состояния программы с побитовой адресацией, SETB C
, CLR C
и CPL C
инструкции являются более короткими эквивалентами SETB PSW.7
, CLR PSW.7
и CPL PSW.7
.
Программирование
[ редактировать ]Для 8051 существуют различные компиляторы языков программирования высокого уровня. Для 8051 доступно несколько компиляторов C , большинство из которых позволяют программисту указывать, где каждая переменная должна храниться в шести типах памяти, и обеспечивают доступ к специфичным для 8051 данным. аппаратные функции, такие как несколько банков регистров и инструкции по битовым манипуляциям. Существует множество коммерческих компиляторов C. [22] Small Device C Compiler (SDCC) — популярный компилятор C с открытым исходным кодом. [23] Другие языки высокого уровня, такие как C++ , Forth , [24] [25] [26] [27] BASIC , Object Pascal , Pascal , PL/M и Modula-2 доступны для 8051, но они менее широко используются. [ нужна ссылка ] чем C и сборка .
Поскольку IRAM, XRAM и PMEM (только для чтения) имеют адрес 0, компиляторы C для архитектуры 8051 предоставляют специфичные для компилятора прагмы или другие расширения, чтобы указать, где следует хранить конкретный фрагмент данных (т. е. константы в PMEM или переменные, требующие быстрый доступ в IRAM). Поскольку данные могут находиться в одном из трех пространств памяти, обычно предоставляется механизм, позволяющий определить, к какой памяти относится указатель, либо путем ограничения типа указателя включением пространства памяти, либо путем сохранения метаданных вместе с указателем.
Родственные процессоры
[ редактировать ]Intel прекратила выпуск линейки продуктов MCS-51 в марте 2007 года; [28] [29] однако регулярно добавляется множество усовершенствованных продуктов 8051 или интеллектуальной собственности на полупроводники от других поставщиков.
Предшественник 8051, 8048 , использовался в клавиатуре первого IBM PC , где он преобразовывал нажатия клавиш в последовательный поток данных, который отправлялся в основной блок компьютера. Intel 8049 выполнял аналогичную роль в Sinclair QL . 8048 и его производные используются до сих пор. [update] для клавиатур базовой модели.
8031 представлял собой уменьшенную версию оригинального 8051, не имевшую внутренней программной памяти ( ПЗУ , ПЗУ). Чтобы использовать этот чип, необходимо было добавить внешнее ПЗУ, содержащее программу, которую 8031 будет выбирать и выполнять. Чип 8051 может продаваться как 8031 без ПЗУ, поскольку внутреннее ПЗУ 8051 отключено из-за нормального состояния вывода EA в конструкции на основе 8031. Поставщик может продавать 8051 как 8031 по разным причинам, например, из-за неправильного кода в ПЗУ 8051 или просто избытка 8051 и недостаточного количества 8031.
В 8044 (а также в 8344 без ПЗУ и 8744 со EPROM) SDLC к ядру 8051 был добавлен контроллер (особенно для приложений Bitbus ). [30]
8052 . был расширенной версией оригинального 8051, который имел 256 байт внутренней оперативной памяти вместо 128 байт, 8 КБ ПЗУ вместо 4 КБ и третий 16-битный таймер Большинство современных 8051-совместимых микроконтроллеров имеют эти функции.
Модель 8032 имела те же функции, что и 8052, за исключением отсутствия внутренней программной памяти ПЗУ.
Модель 8751 была моделью 8051 с 4 КБ СППЗУ вместо 4 КБ ПЗУ. Они были идентичны, за исключением типа энергонезависимой памяти. Эта деталь была доступна в керамическом корпусе с прозрачным кварцевым окном в верхней части кристалла, чтобы ультрафиолетовый свет можно было использовать для стирания EPROM . Связанные части: 8752 имел EPROM 8 КБ, 8754 имел EPROM 16 КБ, 8758 имел EPROM 32 КБ.
80C537 ( ПЗУ (без ПЗУ) и 80C517 8 КБ) — это версии CMOS , разработанные для автомобильной промышленности . Усовершенствования в основном включают новые и усовершенствованные периферийные устройства. 80C5x7 имеет отказоустойчивые механизмы, средства обработки аналоговых сигналов, расширенные возможности таймера и 32-битное периферийное арифметическое устройство. Другие функции включают в себя:
- 256-байтовая встроенная оперативная память
- 256 бит с прямой адресацией
- Внешняя память программ и данных с возможностью расширения до 64 КБ.
- 8-битный аналого-цифровой преобразователь с 12 мультиплексированными входами
- Арифметическое периферийное устройство может выполнять 16×16→32-битное умножение, 32/16→16-битное деление, 32-битный сдвиг и 32-битные операции нормализации.
- Восемь указателей данных вместо одного для косвенной адресации программы и внешней памяти данных.
- Расширенные возможности наблюдения
- Девять портов ввода-вывода
- Два полнодуплексных последовательных интерфейса с отдельными генераторами скорости передачи данных
- Четыре системы прерываний с уровнем приоритета, 14 векторов прерываний
- Три режима энергосбережения
- AMD D87C51
- Fujitsu MBL8031AH
- МХС С-80С31
- ОКИ M80C31
- Philips PCB80C31
- Сигнетика SCN8031
- Темик TS80C32X2
Производные поставщики
[ редактировать ]Более 20 независимых производителей производят процессоры, совместимые с MCS-51. [ нужна ссылка ]
Другие микросхемы или IP-адреса, совместимые с MCS-51, были разработаны Analog Devices . [31] Интеграл Минск , [32] Кристалл Киев , [33] иНИИЭТ Воронеж . [13]
Использование в качестве интеллектуальной собственности
[ редактировать ]Сегодня 8051 по-прежнему доступны в виде отдельных частей, но в основном они используются в качестве кремниевых ядер интеллектуальной собственности . [34] Доступные в исходном коде языка описания оборудования (например, VHDL или Verilog ) или FPGA в форме списка соединений , эти ядра обычно интегрируются во встроенные системы, в продукты, начиная от USB-накопителей до стиральных машин и заканчивая сложными системами беспроводной связи на кристалле . Разработчики используют кремниевые IP-ядра 8051 из-за меньшего размера и меньшей мощности по сравнению с 32-битными процессорами, такими как серии ARM Cortex-M , MIPS и BA22. [ нужна ссылка ]
Современные ядра 8051 работают быстрее, чем более ранние версии. Улучшения конструкции позволили повысить производительность 8051, сохранив при этом совместимость с исходным набором команд MCS 51. Исходный процессор Intel 8051 работал с частотой 12 тактов за машинный цикл, и большинство инструкций выполнялось за один или два машинных цикла. Типичная максимальная тактовая частота 12 МГц означала, что эти старые 8051 могли выполнять один миллион однотактных инструкций или 500 000 двухтактных инструкций в секунду. Напротив, улучшенные кремниевые IP-ядра 8051 теперь работают с частотой один такт за машинный цикл и имеют тактовую частоту до 450 МГц. Это означает, что процессор, совместимый с 8051, теперь может выполнять 450 миллионов инструкций в секунду.
Микроконтроллеры на базе 8051
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( июнь 2021 г. ) |
- СВЕРХУ: серии MC94F, MC95F, MC96F.
- Cypress PSoC Серия CY8C3xxxx , имеющая выделенный USB 2.0. интерфейс [35]
- Инфинеон: XC800
- Maxim Integrated (ранее Даллас): серия DS80 и т. д. [36]
- Графика Mentor: M8051EW и т. д., разработанная SYNTILL8 для Mentor. [37]
- Megawin: серии 74, 82, 84, 86, 87 и 89.
- Микрочип (ранее Atmel): AT89C51, AT89S51 , AT83C5134 и т. д. [9]
- NXP: серии NXP700 и NXP900
- Siemens 8-битный: SAB 8035/8048, SAB 80512/80532, SAB 80513, SAB 8352-2/8352-5, SAB 80(C)515/80(C)535, SAB 83515, SAB 80(C)517/ 80(C)537, SAB 8051A/8031A, SAB 8052A/8032A, SAB 8052B/8032B, SAB80C52/80C32, SDA 30C164-2 (без ПЗУ) [38]
- Siemens 16-бит: семейство C166
- Silergy для измерения электроэнергии SoC : 71M6511, 71M6513, 71M6531, 71M6533, 71M6534, 71M6542, 71M6543 [39] для измерения энергии SoC : 78M6631, 78M6618, 78M6613, 78M6612 [40]
- Silicon Labs: серия C8051 и серия EFM8 [7]
- Кремниевая технология хранения данных : микроконтроллер FlashFlex51 (SST89E52RD2, SST89E54RD2, SST89E58RD2, SST89E516RD2SST89V52RD2, SST89V54RD2, SST89V58RD2, SST89V516RD2) [41]
- STC Micro: STC89C51RC, STC90C51RC, STC90C58AD, STC10F08XE, STC11F60XE, STC12C5410AD, STC12C5202AD, STC12C5A60S2, STC12C5628AD, STC15F100, STC15F204EA, STC15F2K6 Серии 0S2, STC15F4K60S2, STC15F101W, STC15F408AD, STC15W104, STC15W408S, STC15W201S, STC15W408AS, STC15W1K16S и STC15W4K56S4 [42]
- Семейства радиочастотных SoC Texas Instruments CC111x, CC24xx и CC25xx
- WCH ( Nanjing Qinheng Microelectronics ): CH551, CH552, CH554, CH546, CH547, CH548, CH558, CH559 [43]
Варианты цифрового сигнального процессора (DSP)
[ редактировать ]Несколько вариантов с дополнительным 16-битным процессором цифровых сигналов (DSP) (например, для кодирования/декодирования MP3 или Vorbis ) со скоростью до 675 миллионов инструкций в секунду (MIPS) [44] и встроенный USB 2.0. интерфейс [45] или как интеллектуальная собственность [46] существовать.
Усовершенствованный 8-битный двоично-совместимый микроконтроллер: семейство MCS-151.
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( май 2013 г. ) |
В 1996 году Intel анонсировала семейство MCS-151, вариант, который в 6 раз быстрее. [3] это полностью двоичный процессор и набор команд, совместимый с 8051. В отличие от 8051, MCS-151 представляет собой конвейерный ЦП с 16-битной внутренней кодовой шиной и в 6 раз быстрее. Семейство MCS-151 также было снято с производства Intel, но широко доступно в бинарно-совместимых и частично улучшенных вариантах.
8/16/32-битный бинарно-совместимый микроконтроллер: семейство MCS-251.
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( май 2013 г. ) |
8/16/32-битный микроконтроллер 80251 с адресным пространством 16 МБ ( 24-бит ) и в 6 раз более быстрым циклом команд был представлен Intel в 1996 году. [3] [47] Он может работать как 8-битный 8051, имеет 24-битную линейную адресацию , 8-битное АЛУ, 8-битные инструкции, 16-битные инструкции, ограниченный набор 32-битных инструкций, 16 8-битных регистров, 16 16 -битные регистры (8 16-битных регистров, которые не делят пространство с какими-либо 8-битными регистрами, и 8 16-битных регистров, которые содержат по 2 8-битных регистра на каждый 16-битный регистр) и 10 32-битных регистров (2 выделенных 32-битные регистры и 8 32-битных регистров, каждый из которых содержит по 2 16-битных регистра). [48]
Имеет расширенные инструкции [49] – см. также руководство программиста [50] – и более поздние варианты с более высокой производительностью, [51] также доступна как интеллектуальная собственность (IP). [52] Это трехступенчатый конвейер. Семейство MCS-251 также было снято с производства Intel, но оно широко доступно в бинарно-совместимых и частично улучшенных вариантах от многих производителей.
См. также
[ редактировать ]- DS80C390
- Hitachi HD44780 — ЖК-контроллер с XRAM-совместимым интерфейсом
- Интел ПЛ/М-51
- Комплект проектирования системы СДК-51
Ссылки
[ редактировать ]- ^ Джон Уортон (май 1980 г.). «Введение в семейство однокристальных микрокомпьютеров Intel MCS-51» . Корпорация Интел. Примечание по применению AP-69.
- ^ Панель устной истории микропроцессора Intel 8051 (PDF) , Музей истории компьютеров , 16 сентября 2008 г., заархивировано из оригинала (PDF) 25 февраля 2012 г. , получено 17 ноября 2018 г.
- ^ Перейти обратно: а б с «Микроконтроллеры Intel MCS 151 и MCS 251» . datasheets.chipdb.org .
- ^ Джон Уортон (май 1980 г.). «Использование возможностей логической обработки Intel MCS-51» (PDF) . Корпорация Интел. Рекомендации по применению AP-70. Архивировано из оригинала (PDF) 03 марта 2016 г.
- ^ «Урок 8051: Прерывания» . Архивировано из оригинала 28 декабря 2012 г. Проверено 21 декабря 2012 г.
- ^ «ЗАДАЧА» . www.tasking.com .
- ^ Перейти обратно: а б «8-битные микроконтроллеры — 8-битные микроконтроллеры — EFM8 — Silicon Labs» . www.silabs.com . Проверено 21 июня 2021 г.
- ^ «Поиск по сайту | Максим Комплексный» . www.maximintegrated.com . Проверено 21 июня 2021 г.
- ^ Перейти обратно: а б «8051 MCU | Технология микрочипов» . www.microchip.com . Проверено 21 июня 2021 г.
- ^ «Микроконтроллер TK80H51 250°C» . Tekmos Inc. Архивировано из оригинала 20 августа 2017 года . Проверено 23 августа 2017 г.
- ^ «ВЫСОКОТЕМПЕРАТУРНЫЙ МИКРОКОНТРОЛЛЕР 83C51» (PDF) . Ханивелл . Проверено 23 августа 2017 г.
- ^ «Микроконтроллеры и микропроцессоры» . Кобэмские полупроводниковые решения. Архивировано из оригинала 23 августа 2017 года . Проверено 23 августа 2017 г.
- ^ Перейти обратно: а б "Микроконтроллеры" [Микроконтроллеры] (на русском языке). Воронеж: ОАО «НИИЭТ». Архивировано из оригинала 22 августа 2017 года . Проверено 22 августа 2017 г.
- ^ «Ссылка для скачивания на Youtube: Ультразвуковой радар ELEC2700 — 8051» . Архивировано из оригинала 22 августа 2017 г. Проверено 22 августа 2017 г.
- ^ Архивировано в Ghostarchive и Wayback Machine : «ELEC2700 Задание 1 2014: 1D-понг» . Ютуб .
- ^ «ELEC2700 — Компьютерная инженерия 2 — Университет Ньюкасла — Учебники | Zookal.com» . www.zookal.com .
- ^ «Назначение 3 ELEC2700: Ультразвуковой радар» (PDF) . Простоответ.com . 29 июня 2012 года . Проверено 30 апреля 2023 г.
- ^ Перейти обратно: а б с Руководство пользователя Keil C51 . Кейл, подразделение ARM Inc. 2021 г. Проверено 17 мая 2021 г.
- ^ ACALL — это 2-байтовая инструкция вызова подпрограммы, она может обращаться к местам в одном и том же сегменте памяти размером 2 КБ. Абсолютный адрес памяти формируется из старших 5 бит ПК и 11 бит, определяемых инструкцией.
- ^ Перейти обратно: а б «Технический паспорт Silergy 71M6513» . ИС для учета электроэнергии Silergy . Компания Силергия . Проверено 17 мая 2021 г.
- ^ Перейти обратно: а б с д и Руководство пользователя семейства микроконтроллеров MCS-51 (PDF) . номер публикации 121517: Intel. 1994 . Проверено 17 мая 2021 г.
{{cite book}}
: CS1 maint: местоположение ( ссылка ) - ^ Хан-Вэй Хуан. «Проектирование встраиваемой системы с использованием C8051» .п. 238.
- ^ Левин ARW Эдвардс (2006). Итак, вы хотите быть инженером по встраиваемым системам: Руководство по разработке встраиваемых систем: от консультирования до корпоративной лестницы . п. 51.
- ^ Брэдфорд Дж. Родригес. "КэмелФорт/8051" .
- ^ Брэд Родригес. «Вперед, часть 7: CamelForth для 8051» .
- ^ «8051 Разработка SwiftX Форт» . Архивировано из оригинала 24 сентября 2015 г.
- ^ «Кросс-компиляторы MPE VFX Forth 7» . Архивировано из оригинала 23 октября 2014 г.
- ^ Ганссл, Джек (29 мая 2006 г.). «Intel уходит и прекращает выпуск MCS-51» .
- ^ «Линии микроконтроллеров MCS 51, MCS 251 и MCS 96, линейки процессоров Intel 186, Intel386 и Intel486, а также 32-разрядный RISC-процессор i960, PCN 106013-01, прекращение производства продукта, причина внесения изменений: добавить информацию о ключевых этапах и внести изменения. описание изменения» (PDF) . Интел. 2 мая 2006 г.
- ^ «Высокопроизводительный 8-битный микроконтроллер 8044AH/8344AH/8744AH со встроенным контроллером последовательной связи» (PDF) . Интел. Октябрь 1994 года.
- ^ «Микроконвертер, 12-битные АЦП и ЦАП со встроенным флэш-микроконтроллером емкостью 62 КБ» (PDF) . аналог.com . Архивировано из оригинала (PDF) 28 мая 2014 года . Проверено 30 апреля 2023 г.
- ^ "Микроконтроллеры и супервизоры питания Серии 1880; 1881; 1842; 588; 1345; 5518АП1ТБМ" [Microcontrollers and Power Supervisors Series 1880; 1881; 1842; 588; 1345; 5518AP1TBM] (in Russian). Minsk: OAO "Integral". Archived from the original on 1 January 2017 . Retrieved 6 January 2017 .
- ^ "Однокристальные микро-эвм" [Single-chip microcomputers] (in Russian). Kyiv: Kristall. Archived from the original on 30 May 2012 . Retrieved 5 January 2017 .
- ^ Хуссаини (20 августа 2019 г.). «Почему мы должны использовать 8051? Не слишком ли он стар?» . Технобайт . Проверено 5 июля 2023 г.
- ^ «PSoC 3 — Infineon Technologies» . Инфинеон . Архивировано из оригинала 21 сентября 2022 г. Проверено 20 мая 2023 г.
- ^ «Высокоскоростные/маломощные микроконтроллеры DS80C320 — Maxim Integrated» . www.maximintegrated.com . Проверено 21 июня 2021 г.
- ^ «Синтилл8 – Продукция» . www.syntill8.com . Проверено 21 июня 2021 г.
- ^ «Техническое описание SDA30C164» (PDF) . www.semiee.com . Архивировано из оригинала (PDF) 17 июня 2022 г. Проверено 15 мая 2022 г.
- ^ «Измерительные ИС Silergy» . Компания Силергия . Проверено 12 мая 2021 г.
- ^ «ИС для измерения энергии Silergy» . Компания Силергия . Проверено 12 мая 2021 г.
- ^ datasheetq.com. «Загрузка технического описания 89V54RD2 в формате PDF — Технология кремниевых накопителей» . www.datasheetq.com . Проверено 18 января 2020 г.
- ^ «Микроконтроллер STC --- STCmicro Technology Co, Ltd» . www.stcmicro.com . Проверено 19 февраля 2017 г.
- ^ "Индекс сайта - Нанкинская компания Qinheng Microelectronics Co., Ltd" . wch-ic.com . Проверено 21 июня 2021 г.
- ^ «TI предлагает новый недорогой высокопроизводительный цифровой процессор обработки звука для дома и автомобиля с 8051» . Архивировано из оригинала 13 ноября 2016 г. Проверено 6 мая 2013 г.
- ^ «Технические данные Atmel AT85C51SND3 Audio DSP с USB 2.0» (PDF) . Проверено 30 апреля 2023 г.
- ^ Салим, AJ; Отман, М.; Али, М. А. Мохд (5 октября 2006 г.). «Интеграция 8051 с DSP в Xilinx FPGA». 2006 Международная конференция IEEE по полупроводниковой электронике . стр. 562–566. дои : 10.1109/SMELEC.2006.380694 . ISBN 0-7803-9730-4 . S2CID 21616742 – через IEEE Xplore.
- ^ Кеннет Дж. Айала. Микроконтроллер 8051 .
- ^ «Обзор архитектуры MCSÉ 251» (PDF) . http://chipdb.org . Проверено 30 апреля 2023 г.
- ^ «Архитектура Temic TSC80251» (PDF) .
- ^ «Руководство программиста Atmel TSC80251» (PDF) . Архивировано из оригинала (PDF) 4 марта 2016 г. Проверено 6 мая 2013 г.
- ^ «32-битный микроконтроллер DQ80251» (PDF) . ДКД .
- ^ «32-битный микроконтроллер R80251XC» (PDF) . Эватроникс . [ мертвая ссылка ]
Дальнейшее чтение
[ редактировать ]- Книги
- Мазиди; МакКинли; Мазиди (2012). Микроконтроллер 8051: системный подход . Пирсон. 648 стр. ISBN 978-0-13-508044-3 .
- Шульц, Томас (2008). C и 8051 (4-е изд.). Томас В. Шульц. 464 стр. ISBN 978-0-9783995-0-4 .
- Штайнер, Крейг (2005). Микроконтроллер 8051/8052: архитектура, язык ассемблера и аппаратный интерфейс . Универсал-Издательство. 348 стр. ISBN 978-1-58112-459-0 .
- Калькутт; Коуэн; Парчизаде (2000). 8051 Микроконтроллеры: аппаратное обеспечение, программное обеспечение и приложения . Эльзевир. 329 стр. ISBN 978-0-340-67707-0 .
- Аксельсон, Ян (1994). Книга идей по микроконтроллерам: схемы, программы и приложения с использованием микроконтроллера 8052-BASIC . ООО «Лейквью Исследования». 277 стр. ISBN 978-0-9650819-0-0 .
- Пейн, Уильям (19 декабря 1990 г.) [1990]. Встроенный контроллер FORTH для семейства 8051 (твердый переплет). Бостон: Академическая пресса. 528 стр. ISBN 978-0-12-547570-9 .
- Интел
- Руководство пользователя семейства микроконтроллеров MCS-51 ; Интел; 1994 год; номер публикации 121517.
- Руководство пользователя макроассемблера MCS-51 ; Интел; номер публикации 9800937.
- 8-битные встроенные контроллеры ; Интел; 1991 год; номер публикации 270645-003.
- Справочник по микроконтроллеру ; Интел; 1984 год; номер публикации 210918-002.
- Предварительная архитектурная спецификация и функциональное описание микроконтроллера 8051 ; Интел; 44 страницы; 1980.
- Разное
- Хенниг-Ролефф, Вернер (1 февраля 1993 г.) [1988]. «HEX.DOC: EASM51 — формат HEX (электор ассемблера)» . SIM51 . 1.04 (на немецком языке). Архивировано из оригинала 11 августа 2017 г. Проверено 8 декабря 2021 г. [1] [2] (Помимо формата EASM , в файле HEX.DOC обсуждаются различные форматы шестнадцатеричных файлов от Intel , Motorola , Tektronix , MOS Technology и elektor .)
Внешние ссылки
[ редактировать ]СМИ, связанные с MCS-51, на Викискладе?