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
, однако они не получили такого широкого распространения, как
Си
и
ассемблер
.
Сравнение Intel
i8085
,
i8048
и i8051 на примере работы подпрограмм последовательного ввода-вывода
Подпрограмма ввода
8085
|
8048
|
8051
|
IN SERPORT
|
MOV C,SERPIN
|
CLR RI
|
ANI MASK
|
CLR С
|
JNB RI, $
|
JZ LO
|
JNT0 LO
|
MOV A, SBUF
|
CMC
|
CPL С
|
|
LO: LXI HL, SERBUF
|
LO: MOV R0, #SERBUF
|
|
MOV A,M
|
MOV A, @R0
|
|
RR
|
RRC A
|
|
MOV M,A
|
MOV @R0,A
|
|
|
|
|
|
|
|
|
|
|
8 команд
|
7 команд
|
3 команды
|
14 байт
|
9 байт
|
6 байт
|
56 состояний
|
9 циклов
|
4 цикла
|
19 мкс
|
22,5 мкс
|
4 мкс
|
|
|
|
Подпрограмма вывода
8085
|
8048
|
8051
|
LXI HL,SERBUF
|
MOV R0,#SERBUF
|
CLR TI
|
MOV А,М
|
MOV A,@R0
|
MOV SBUF, A
|
RR
|
RRC A
|
JNB TI, $
|
MOV М, А
|
MOV @R0, A
|
|
IN SERPORT
|
|
|
JC HI
|
JC HI
|
|
LO: ANI NOT MASK
|
ANL SERPRT, #NOT MASK
|
|
JMP CNT
|
JMP CNT
|
|
HI: ORI MASK
|
HI: ORL SERPRT, #MASK
|
|
CNT:OUT SERPORT
|
CNT:
|
|
|
|
|
10 команд
|
8 команд
|
3 команды
|
20 байт
|
13 байт
|
6 байт
|
72 состояния
|
11 циклов
|
4 цикла
|
24 мкс
|
27,5 мкс
|
4 мкс
|
|
Вычислительное ядро до сих пор широко применяется в различных микроконтроллерах общего и специального назначения с различным набором периферии.
- Боборыкин А. В.; Липовецкий Г. П. и др.
Однокристальные микроЭВМ. Справочник. ?
М.
: Бином, 1994. ? 400 с. ?
ISBN 5-85959-030-X
.
- Сташин В. В.; Урусов А. В.; Мологонцева О.Ф.
Проектирование цифровых устройств на однокристальных микроконтроллерах. ?
М.
: Энергоатомиздат, 1990. ? 224 с. ?
70 000 экз.
?
ISBN 5-283-01543-2
.
![Перейти к шаблону «Микроконтроллеры»](//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png) |
---|
Архитектура
| | |
---|
Производители
| |
---|
Компоненты
| |
---|
Периферия
| |
---|
Интерфейсы
| |
---|
ОС
| |
---|
Программирование
| |
---|