Рефераты. Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ

Таким образом, доступ к внешней памяти программ осуществляется в двух случаях:

1) при действии сигнала DEMA=0 независимо от адреса обращения;

2) в любом случае, если программный счетчик (PC) содержит число, большее чем 0FFFH.

Внутренняя память данных ОМЭВМ состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 0-7FH и области регистров специальных функций, занимающей адреса 80Н-FFH. Распределение пространства внутренней памяти данных показано на рис. 3. Физически внутреннее ОЗУ данных и область регистров специальных функций являются отдельными устройствами.

Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации (режимы адресации даны в описании системы команд ОМЭВМ). Кроме того, внутреннее ОЗУ данных имеет следующие особенности.

Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров в каждом (БАНК0 - БАНКЗ на рис. 3). Команды программы могут обращаться к регистрам, используя их имена R0 - R7. Два бита PSW (указатели банка рабочих регистров RS0 и RS1) определяют, с регистрами какого банка производятся манипуляции. Наличие такого механизма работы с ячейками ОЗУ позволяет экономить память программ, т. к. команды, работающие с регистрами R0-R7, короче команд, использующих прямую адресацию.

Следующие после банков регистров внутреннего ОЗУ данных 16 байт (адреса 20Н-2FH) образуют область ячеек, к которым возможна побитовая адресация. Набор команд ОМЭВМ семейства MCS-51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. 128 бит, составляющих рассматриваемую область внутреннего ОЗУ данных, имеют адреса 00Н-7FH и предназначены для работы с такими инструкциями.


Рисунок 3 - Адресное пространство внутренней памяти данных


Внешняя память данных формируется дополнительными микросхемами памяти, подключаемыми к ОМЭВМ, и может иметь емкость до 64 Кбайт. Пространства внутренней и внешней памяти данных не пересекаются, т.к. доступ к ним осуществляется с помощью разных команд. Для работы с внешней памятью данных существуют специальные команды MOVX, которые не влияют на внутреннюю память данных ОМЭВМ. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00Н - FFH и внешняя память данных с адресами 0000Н - FFFFH.

Обращение к ячейкам внешней памяти данных осуществляется только с использованием косвенной адресации по регистрам R0 и R1 активного банка регистров внутреннего ОЗУ (команды типа MOV @Ri) или по регистру специальных функций DPTR (команды типа MOV @DPTR). Соответственно в первом случае будет формироваться 8-разрядный, а во втором случае 16-разрядный адреса внешней памяти данных.

При обращениях к внешней памяти данных адрес выводится через порт Р0 (младший байт) и порт Р2 (старший байт) ОМЭВМ. Обмен байтом данных (запись и чтение) производится через порт Р0 ОМЭВМ, т.е. порт Р0 используется как шина адреса/данных в режиме мультиплексирования.

Считывание данных из внешней памяти данных в ОМЭВМ производится с помощью выходного сигнала ОМЭВМ RD, а запись данных из ОМЭВМ во внешнюю память данных с помощью выходного сигнала ОМЭВМ WR.

Каждый тип внешней памяти (память программ, память данных) может быть добавлен независимо от другого и каждый использует те же адреса и шины данных, но различные сигналы управления.


3. Система команд


Система команд ОМЭВМ семейства MCS-51 имеет 111 команд и позволяет реализовать обработку данных, обеспечить выполнение логических, арифметических операций, а также управление в режиме реального времени. Реализованы побитовая, потетрадная (4 бита), побайтовая (8 бит) и 16-разрядная обработка данных.

Полное описание команд и примеры их выполнения приведены в приложении Б.

В машинном коде команда занимает один, два или три байта и выполняется за один, два или четыре (умножение и деление) машинных цикла. При частоте тактового генератора, равной 12 МГц, одноцикловые команды выполняются за 1 мкс, двухцикловые - за 2 мкс и т.д. Из 111 типов команд 64 выполняются за 1 мкс (12 тактов), 45 команд - за 2 мкс (24 такта) и две команды - умножение и деление (MUL, DIV) выполняются за 4 мкс (48 тактов).

Все команды условных переходов осуществляются относительно содержимого счетчика команд с адресом перехода, вычисляемым ЦПУ во время выполнения команды.

Трехбайтовые команды перехода и вызова LCALL, LJMP (с 16-разрядным адресом) позволяют осуществлять переход и обращение по любому адресу адресного пространства памяти программ емкостью 64 Кбайт. Если необходим переход в пределах области памяти программ 2 К, то можно использовать команды перехода и вызова с 11-разрядным адресом (ACALL, AJMP). Переход внутри участка памяти, определяемый 8-разрядной величиной смещения, осуществляется по команде SJMP. В табл. 2 приведены обозначения и символы, используемые в системе команд.

Систему команд ОМЭВМ условно можно разбить на пять групп: арифметические команды; логические команды с байтовыми переменными; команды передачи данных; команды битового процессора; команды ветвления программ и передачи управления.

Арифметические команды. В наборе команд ОМЭВМ имеются следующие арифметические операции: сложение, сложение с учетом флага переноса, вычитание с заёмом, инкрементирование, декрементирование, сравнение, десятичная коррекция, умножение и деление.

Таблица 2 - Обозначение символов в наборе команд

Обозначение, символ

Назначение

1

2

А

Аккумулятор

Rr

Регистры текущего выбранного банка регистров

r

Номер загружаемого регистра, указанного в команде

direct

Прямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255)

@Rr

Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных

data 8

8-битовое непосредственное данное, входящее в код операции (КОП)

Data 16

16-битовое непосредственное данное, входящее КОП

Data Н

Старшие биты (15-8) непосредственных 16-битовых данных

Data L

Младшие биты (7-0) непосредственных 16-битовых данных

Addr 11

11-битовый адрес назначения

Addr 16

16-битовый адрес назначения

Addr L

Младшие биты адреса назначения

disp 8

8-битовый байт смещения со знаком

bit

Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или SFR

al5,al4...a0

Биты адреса назначения

(X)

Содержимое элемента Х

((X)) (X) [M]

Содержимое по адресу, хранящемуся в элементе Х Разряд М элемента Х

(X)[MI-M2]

Группа разрядов М1-М2 элемента Х

 + - * / AND OR XOR /X

Операции: сложения вычитания умножения деления логического умножения (операция И) логического сложения (операция ИЛИ) сложения по модулю 2 (операция "Исключающее ИЛИ") инверсия элемента Х


В АЛУ производятся действия над целыми числами без знака. В двухоперандных операциях: сложение (ADD), сложение с переносом (ADDC) и вычитание с заёмом (SUBB) аккумулятор является первым операндом и принимает результат операции. Вторым операндом может быть рабочий регистр выбранного банка рабочих регистров, регистр внутренней памяти данных с косвенно-регистровой и прямой адресацией или байт непосредственных данных. Указанные операции влияют на флаги: переполнения, переноса, промежуточного переноса и флаг четности в слове состояния процессора (PSW).

Использование разряда переноса позволяет многократно повысить точность при операциях сложения (ADDC) и вычитания (SUBB).

Выполнение операций сложения и вычитания с учетом знака может быть осуществлено с помощью программного управления флагом переполнения (OV) регистра PSW. Флаг промежуточного переноса (АС) обеспечивает выполнение арифметических операций в двоично-десятичном коде.

Операции инкрементирования и декрементирования на флаги не влияют.

Операции сравнения не влияют ни на операнд назначения, ни на операнд источника, но они влияют на флаг переноса.

Существуют три арифметические операции, которые выполняются только на аккумуляторе: две команды проверки содержимого аккумулятора A (JZ, JNZ), и команда десятичной коррекции при сложении двоично-десятичных кодов.

При операции умножения содержимое аккумулятора А умножается на содержимое регистра В и результат размещается следующим образом: младший байт в регистре A, старший - в регистре B.

В случае выполнения операции деления целое от деления помещается в аккумулятор А, остаток от деления - в регистр В.

Логические команды с байтовыми переменными. Система команд ОМЭВМ позволяет реализовать логические операции: "И", "ИЛИ", "ИСКЛЮЧАЮЩЕЕ ИЛИ" на регистре-аккумуляторе (А) и байте-источнике. Вторым операндом (байтом-источником) при этом может быть рабочий регистр в выбранном банке рабочих регистров; регистр внутреннего ОЗУ, адресуемый с помощью косвенно-регистровой адресации; прямо адресуемые ячейки внутреннего ОЗУ и регистры специальных функций; непосредственная величина.

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.