
- •2. Архитектура микроконтроллеров семейства 8051
- •2.1. Общие сведения
- •2.2. Структурная схема микроконтроллера
- •2.3. Процессорное ядро
- •2.4. Организация памяти
- •2.5. Регистры специальных функций
- •2.6. Модуль системы прерываний
- •2.7. Модуль параллельных портов ввода-вывода
- •2.8. Модуль таймеров/счетчиков
- •2.9. Модуль универсального асинхронного приемопередатчика
- •2.10. Система команд микроконтроллеров семейства 8051
- •2.10.1. Общие сведения о системе команд
- •2.10.2. Описание команд
- •2.10.3. Методы адресации операндов
2. Архитектура микроконтроллеров семейства 8051
2.1. Общие сведения
Базовая модель МК семейства 8051, имеющая CISC–систему команд и построенная на основе гарвардской архитектуры с раздельными областями памяти программ и данных, имеет следующие основные технические характеристики [1]–[3]:
восьмиразрядное процессорное ядро, оптимизированное для реализации функций управления;
встроенную память программ емкостью 4096 байт с возможностью расширения до 64 Кбайт за счет внешних ЗУ;
встроенную память данных емкостью 128 байт с возможностью расширения до 64 Кбайт за счет внешних ЗУ;
21 регистр специального назначения;
четыре банка рабочих регистров общего назначения;
стек глубиной до 128 байт;
128 контролируемых пользователем отдельных разрядов, расположенных по фиксированным адресам в памяти данных;
32 двунаправленные линии ввода-вывода, организованные в четыре 8-разрядных порта;
быстродействующий универсальный асинхронный приемопередатчик (UART – Universal Asynchronous Receiver-Transmitter), работающий в мультиплексном режиме;
два 16-разрядных таймера/счетчика;
векторная двухуровневая система прерываний с пятью источниками прерываний.
2.2. Структурная схема микроконтроллера
Основу структурной схемы МК 8051, представленной на рис. 2.1, составляет процессорное ядро с системной двунаправленной 8-разрядной магистралью, которая связывает между собой все модули. 16-разрядная шина адреса ША служит для обращения к внутренней памяти программ и к внешнему модулю памяти с постоянным и оперативным запоминающими устройствами.
Функциональные периферийные устройства представлены модулями системы прерываний, параллельных портов ввода-вывода, двух 16-разрядных таймеров/счетчиков и универсального асинхронного последовательного приемопередатчика UART.
|
Рис. 2.1. Структура базового микроконтроллера 8051 |
Модуль памяти. В структуру базового МК 8051 входит резидентная память, разделяемая в соответствии с гарвардской архитектурой на память программ, предназначенную для хранения кодов исполняемой прикладной программы, и память данных, используемую для временного хранения информации. Резидентная память программ и данных может быть расширена за счет использования внешних микросхем памяти.
Память базового МК 8051 разделяется на следующие области:
резидентную (внутреннюю) память программ РПП емкостью 4 Кбайт;
внешнюю память программ ВПП общей емкостью до 64 Кбайт;
резидентную память данных РПД – 128 байт оперативного запоминающего устройства и область регистров специальных функций РСФ емкостью 128 байт;
внешнюю память данных ВПД общей емкостью до 64 Kбайт.
В области резидентной оперативной памяти расположена зона регистров специальных функций, каждый из которых предназначен для конфигурации или настройки одного из периферийных модулей МК или управления им.
Модуль прерываний. В базовой конфигурации МК имеется 5 источников прерываний – два внешних и три внутренних (2 таймера/счетчика и UART). Прерывание от каждого источника может иметь высокий или низкий приоритет и может быть индивидуально разрешено или запрещено.
Модуль параллельных портов ввода-вывода. Восьмиразрядные порты с символическими именами P0, P1, P2 и P3 предназначены для приема и выдачи байта данных в параллельном коде, а также имеют возможность поразрядного ввода-вывода. Для сокращения числа выводов линии параллельного порта выполняют альтернативные функции. При обращении к внешней памяти порт P0 выполняет функции совмещенной шины адреса/данных AD, а порт P2 – шины старшего байта адреса A. Все линии порта P3 выполняют альтернативные функции управления и специального ввода-вывода.
Модуль таймеров/счетчиков. Два таймера/счетчика TC0 и TC1 служат для счета времени (таймер) или внешних событий (счетчик). При работе последовательного порта таймер/счетчик TC1 используется в качестве генератора, задающего скорость обмена данными.
Модуль последовательного порта UART. Используется для приема и передачи данных в последовательном коде с различными скоростями.