Intel 8051

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 11 июня 2023 года; проверки требуют2 правки.
Перейти к навигацииПерейти к поиску
Intel 8051
Дата возникновениянеизвестно
Изображение
Архивы хранятся вМузей компьютерной истории[1]
Предыдущее по порядкуMCS-48
РазработчикIntel
ПроектировщикJohn Harrison Wharton[вд]
Логотип Викисклада Медиафайлы на Викискладе

Intel 8051 — этооднокристальный микроконтроллергарвардской архитектуры, который был впервые произведенIntel в 1980 году для использования вовстраиваемых системах. В течение 1980-х и начале 1990-х годов был чрезвычайно популярен, однако позже устарел и был вытеснен более современными устройствами, также с 8051-совместимыми ядрами, производившимися более чем 20 независимыми производителями, такими, какAtmel,Maxim/Dallas,NXP,Winbond,Silicon Labs,Texas Instruments,Cypress Semiconductor иNuvoton.

Официальное название 8051-семейства микроконтроллеров Intel —MCS 51. Существует также советский клон данной микросхемы —КР1816ВЕ51 и российские аналоги разработкиНИИЭТ — 1830ВЕ, 1882ВЕ, 1882ВМ, К1830ВЕ.

Первые из 8051-семейства Intel производились с использованиемn-МОП технологии, но следующие версии, содержащие символ «C» в названии, такие, как 80C51, использовалиКМОП-технологию и потребляли меньшую мощность, чем n-МОП предшественники, что облегчало их применение для устройств с батарейным питанием.

Содержание

Особенности

[править |править код]
Архитектура Intel 8051

Общей особенностью в современных 8051-совместимых микроконтроллерах стало встраивание улучшенных и дополнительных схем, таких, как: автоматический сброс по падению питающего напряжения; встроенныетактовые генераторы; внутрисхемное программирование памяти программ; автозагрузчики долговременной памяти данных на основеEEPROM;I²C ;SPI (стандарт 3-проводной последовательной шины);USB хост-интерфейс;ШИМ-генераторы; аналоговыхкомпараторов;АЦП иЦАП преобразователей; часов реального времени; дополнительных таймеров и счётчиков; внутрисхемных отладчиков, дополнительных источников прерываний; расширенных энергосберегающих режимов.

8051-совместимые микроконтроллеры обычно имеют один или дваУАПП (UART), два или три таймера, 128 или 256 байт встроенной ОЗУ (16 байт которой имеют побитовую адресацию), от 512 байт до 128 Кбайт встроенной памяти программ, и иногда встречается использованиеEEPROM, адресуемой через «регистры специального назначения» (SFR = special function register).УАПП/UART может быть настроен для использования в режиме 9-бит данных, что делает возможным адресную приёмопередачу в многоточечном подключении на основеRS-485 аппаратного протокола.

Одинмашинный цикл оригинального 8051-ядра занимает 12 временных тактов, а большинство инструкций выполняется за один или два машинных цикла. При частоте тактового генератора, равной 12 МГц, 8051-ядро может выполнять 1миллион операций в секунду, выполняемых за один цикл, или 500 тысяч операций в секунду, выполняемых за два цикла. Улучшенное 8051-совместимое ядро, которое в настоящее время распространено, выполняет машинный цикл за шесть, четыре, два или даже за один временной такт, и позволяет использовать тактовые генераторы с частотой до 100 МГц, что позволило увеличить количество выполняемых операций в секунду.

Ещё более быстрые 8051-ядра, с 1 тактом на машинный цикл, организуются с использованиемПЛИС, таких, какFPGA (скорость в диапазоне 130—150 МГц) илиASIC (скорость в диапазоне нескольких сотен МГц), при помощи специальной прошивки[3]. Все 8051-совместимые устройства, производимыеSilicon Labs, некоторые из производимыхDallas,Atmel,Nuvoton,STCmicro имеют ядро с 1 тактом на машинный цикл.

Чрезвычайно полезной особенностью 8051-ядра является обработкабулевых данных, что позволило ввести бинарную логику, оперирующую напрямую с битами внутренней ОЗУ (области из 128 прямоадресуемых битов) и регистров. Данная особенность была востребована в приложенияхпромышленной автоматики. Еще одна ценная особенность состояла в 4 независимых наборахрегистров, которые значительно уменьшали задержки при обработке прерываний в сравнении с классическим использованиемстека, применявшимся ранее.

Родственные контроллеры

[править |править код]

Предшественником контроллера 8051 былIntel 8048, который был применён вклавиатуре оригинального IBM PC — он конвертировал сигналы о нажатиях клавиш в поток данных, передававшийся по последовательной линии в системный блок компьютера. Контроллер 8048, а также контроллеры, спроектированные на его базе, всё ещё применяются в клавиатурах.

Контроллер8031 является урезанной версией Intel 8051: у него отсутствует встроенная память для хранения программы.

Контроллер8052 является расширенной версией оригинального Intel 8051: он оснащён 256 байтами внутреннего ОЗУ (вместо 128 байт 8051), 8 КБ ПЗУ (вместо 4 КБ), также ему добавлен третий 16-разрядный таймер.

Контроллер8058 отличается от 8052 увеличенным до 32 КБ ПЗУ.

Контроллер8032 аналогичен 8052, но не имеет встроенной памяти для хранения программы. Контроллеры 8052 и 8032 считаются устаревшими, так как почти все современные варианты 8051 оснащены теми расширениями, которыми обладает 8052.

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

[править |править код]

Для 8051 доступно несколькокомпиляторов для языка программированияСи, в частности, Keil, большинство из которых поддерживают расширения языка для более эффективного использования особенностей 8051. Например, программист может указать, в каком из шести типов памяти 8051 необходимо хранить переменную; компилятору можно указать, каким образом использовать переключаемые регистровые блоки и инструкции для манипулирования отдельными разрядами регистров.

Для программирования 8051 используются и другие языки высокого уровня:Форт,Бейсик,Паскаль,PL/M иModula-2, однако они не получили такого широкого распространения, какСи иассемблер.

Сравнение Inteli8085,i8048 и i8051 на примере работы подпрограмм последовательного ввода-вывода
Подпрограмма ввода
808580488051
IN SERPORTMOV C,SERPINCLR RI
ANI MASKCLR СJNB RI, $
JZ LOJNT0 LOMOV A, SBUF
CMCCPL С
LO: LXI HL, SERBUFLO: MOV R0, #SERBUF
MOV A,MMOV A, @R0
RRRRC A
MOV M,AMOV @R0,A
   
   
   
8 команд7 команд3 команды
14 байт9 байт6 байт
56 состояний9 циклов4 цикла
19 мкс22,5 мкс4 мкс
Подпрограмма вывода
808580488051
LXI HL,SERBUFMOV R0,#SERBUFCLR TI
MOV А,МMOV A,@R0MOV SBUF, A
RRRRC AJNB TI, $
MOV М, АMOV @R0, A
IN SERPORT
JC HIJC HI
LO: ANI NOT MASKANL SERPRT, #NOT MASK
JMP CNTJMP CNT
HI: ORI MASKHI: ORL SERPRT, #MASK
CNT:OUT SERPORTCNT:
   
10 команд8 команд3 команды
20 байт13 байт6 байт
72 состояния11 циклов4 цикла
24 мкс27,5 мкс4 мкс

Применение

[править |править код]

Вычислительное ядро до сих пор широко применяется в различных микроконтроллерах общего и специального назначения с различным набором периферии.

Литература

[править |править код]

Ссылки

[править |править код]

Примечания

[править |править код]
  1. http://www.computerhistory.org/collections/catalog/102658339
  2. Bob Koehler. 8051 Single-Chip Microcomputer Arhitectural Specifications and Functional Description. — Santa Clara: Intel Corporation, 1980. Архивировано 13 октября 2011 года.
  3. Примеры можно увидеть наe8051.com
Улучшение статьи
Для улучшения этой статьижелательно:
  • Проставитьсноски, внести более точные указания на источники.
После исправления проблемы исключите её из списка. Удалите шаблон, если устранены все недостатки.
Перейти к шаблону «Микроконтроллеры»
Архитектура
8 бит
16 бит
32 бита
Микросхемы фирмы ST в DIP14 корпусе
Производители
Компоненты
Периферия
Интерфейсы
ОС
Программирование
Источник —https://ru.wikipedia.org/w/index.php?title=Intel_8051&oldid=139926429
Категория:
Скрытые категории: