
- •Теория микропроцессорных систем микроконтроллеры
- •Структура и функциональные возможности мк51
- •Электрический интерфейс мк51
- •Резидентная память данных
- •Работа блока управления и синхронизации
- •Элементы данных в мк51
- •Характеристика функциональных групп команд
- •2.5. Система команд семейства mcs-51.
- •2.5.1. Команды пересылки данных.
- •Команда обработки данных.
- •Команды передачи управления.
- •Характеристика периферийных блоков в составе мк51
- •Управление таймерами-счетчиками (т/с)
- •Описание вариантов конфигурации таймеров-счетчиков
- •Особенности реализации временных интервалов
- •Структура последовательного порта и принципы управления
- •Описание режимов работы уапп
- •Назначение и принципы функционирования системы прерываний
- •Управление приоритетами запросов прерываний
- •Работа системы обслуживания прерываний
- •Заполнение начальной области памяти программ
- •Шестнадцатиразрядные микроконтроллеры Motorola
- •Современные встраиваемые микроконтроллеры, выпускаемые производственной фирмой Freescale Semiconductor
- •Номенклатура и функциональный состав микроконтроллеров cемейства 68hcs12
- •2.1. Микроконтроллеры семейства 68нс12/912
- •2.1.3. Начальный запуск и обработка прерываний
- •2.1.4. Режимы работы и конфигурация микроконтроллеров
- •2.1.5. Функционирование и программирование Flash-памяти и эсппзу
- •2.1.6. Блок контроля функционирования и генератор тактовых импульсов
- •2.1.7. Параллельный ввод-вывод данных и подключение внешней памяти
- •2.1.8. Последовательные порты sci и spi
- •2.1.9. Таймерные модули и широтно-импульсные модуляторы
- •2.1.10. Модуль аналого-цифрового преобразователя atd
- •2.1.11. Модуль последовательного интерфейса msCan
- •2.1.12. Режим отладки bdm и установка контрольных точек
Резидентная память данных
РПД является наиболее гибким адресным пространством, которое позволяет реализовать режимы прямой, регистровой, косвенной и битовой адресации. РПД состоит из таких областей:
1) ОЗУ объемом 128 байтов - адреса 00...7FH (0..127);
2) блок РСФ - содержит 20 однобайтовых регистров, размещенных по адресам, кратным 8, в диапазоне 80...FFH (128-255). Другие адреса из этой области недоступные и являются ошибочными.
Внутреннее ОЗУ предполагает прямую и косвенную адресацию, а банки рабочих регистров, которые входят в него, - также и регистровую адресацию.
Расположение разных областей в РПД показано на рис.11.2.
Рис. 11.2. Структура адресации РПД
Внутреннее ОЗУ (адреса 00...7FH) состоит из таких областей:
1. Четыре банка рабочих регистров по восемь байтов в каждом. В процессе работы МК51 один из банков регистров считается активным. Выбор активного банка осуществляется программным путем с помощью установления двух битов в регистре флагов. При этом регистры активного банка становятся доступными через регистровую адресацию с символическими именами R0...R7. С этими именами работают специальные короткие команды, которые используют данный тип адресации. Другие (неактивные) банки адресуются как обычные ячейки ОЗУ. Таким образом в МК51 реализован "плавающий" блок РОН. В регистры R0 и R1 могут использоваться для косвенной адресации любой из 128 ячеек внутреннего ОЗУ.
2. Блок ячеек ОЗУ с побитовой адресацией. Эти 16 байтов по адресам 20Н...2FH предполагают также прямую адресацию отдельных битов с адресами 00Н...7FH, то есть всего 128 битов. Для работы с битами существуют специальные команды, поэтому перепутывания адресов не возникает. Карта битов внутреннего ОЗУ, которые адресуются в отдельности, показана на рис.2.6 в пособии.
3. Блок ячеек ОЗУ без особенностей.
Все три области предполагают прямую и косвенную адресацию байтов через регистры R0 и R1 активного банка.
Организация стека
Стек в МК51 может занимать любые последовательно расположенные байты в ОЗУ РПД. Назначение стека такое же, как и в других МП.
Для адресации ячеек, которые составляют стек, используется восьмиразрядный регистр SP. Теоретическая глубина стека - 127 байтов, поскольку в диапазоне 80...FFH размещаются РСФ и недоступные адреса. Стек обычно размещают в области ОЗУ, начиная с адреса 40Н и выше. При включении питания или подачи сигнала Reset в (SP) автоматически загружается код 07H.
Особенность состоит в том, что в МК51 стек растет в сторону увеличения адресов, то есть при выполнении команд PUSH и CALL содержимое SP увеличивается, а при РОР и RET - уменьшается. Путем записи в SP значения от 0 до 127 можно разместить стек в любой области в границах ОЗУ РПД.
Блок регистров специальных функций (РСФ)
РСФ также относятся к РПД и расположены по адресам, кратным 8, в диапазоне адресов 80Н...FFH. Одиннадцать из 20 регистров специальных функций имеют битовую адресацию (табл.2.2, рис.2.7 в пособии).
В микроконтроллере реализованы следующие РСФ:
- арифметические: аккумулятор АСС (или A), регистр умножения В, слово
состояния программы PSW;
- указательные: SP и DPTR, который состоит из пары DPH, DPL;
- регистры-фиксаторы портов ввода-вывода Р0, Р1, Р2, Р3;
- регистры управления системой прерываний IP, IE;
- регистры управления и настройки таймеров-счетчиков TCON, TMOD,
- счетные регистры таймеров TH0, TL0, TH1, TL1;
- регистры управления последовательным портом SBUF, SCON;
- регистр управления мощностью PCON.
К регистрам СФ можно обращаться как к обычным ячейкам ОЗУ с битовой адресацией, и в то же время они обеспечивают работу многих узлов МК, устанавливают режимы их работы. Так, программирование различных периферийных устройств МК51 на определенные режимы работы реализуется как запись в соответствующие ячейки памяти РПД нужных кодов или путем установления соответствующих битов с прямой адресацией. Кроме того, биты регистров СФ имеют символические имена, что существенно облегчает программирование на Ассемблере.
Полный перечень всех РСФ представлен в табл. 2.2 в пособии.
Аккумулятор и слово состояния программы (PSW)
МК51 имеет аккумуляторно-ориентированную структуру. Но существует ряд операций (пересылка, INC, DEC, некоторые проверки), которые выполняются без аккумулятора. Аккумулятор - это регистр с побитовой адресацией, который существенным образом облегчает анализ данных с битовой структурой информации. Аккумулятор предполагает два способа адресации:
- регистровую, если ссылка на него помещается в коде операции (как «А»);
- прямую, путем указания прямого адреса (0Е0h) или символического имени "АСС" в адресной части команды.
Регистр PSW выполняет функцию регистра признаков, которые формируются по результатам действий в АЛУ, а также служит для управления выбором активного банка регистров. PSW - регистр с битовой адресацией, что облегчает анализ признаков и их установку. Отдельные биты PSW имеют символические имена, но к ним можно обратиться и через имя регистра с указанием номера бита: PSW.7, PSW.5. Структура регистра PSW показана на рис.2.8 в пособии, а табл.11.2 содержит краткие сведения о назначении отдельных разрядов данного регистра.
Т а б л и ц а 11.2
Формат регистра PSW - слова состояния программы
Название бита |
Позиция |
Назначение |
|
С AC F0 RS1 RS0 OV -- P |
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 |
Флаг переноса. Устанавливается и сбрасывается аппаратно при выполнении арифметических, логических и битовых операций, а также программно. Флаг вспомогательного переноса. Устанавливается и сбрасывается только аппаратно при выполнении команд суммирования и вычитания в случае возникновения переноса или заема в бите 3 аккумулятора. Свободный флаг. Может быть изменен программно и используется по назначению, установленному программистом. Выбор банка регистров. Биты устанавливаются и сбрасываются программно для выбора активного (рабочего) банка регистров: |
|
RS1 |
RS0 |
Активный банк |
Адреса РПД |
0 0 1 1 |
0 1 0 1 |
0 1 2 3 |
00Н-07Н 08Н-0FH 10H-17H 18H-1FH |
Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций в случае переполнения аккумулятора. Дает возможность корректно выполнять действия над числами, представленными в дополнительном коде. Не используется. Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле команды, фиксирует факт нечетного количества "1" в аккумуляторе. |
|
|
|
Указательный регистр DPTR
DPTR - двухбайтный регистр-указатель данных – является базовым регистром для косвенной адресации с обращением к внешней памяти. Поскольку в МК51 отсутствуют средства прямой адресации внешней памяти, DPTR - это единое средство доступа к ячейкам ВП. DPTR может функционировать как два независимых регистра: DPH и DPL.