Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ALL_Лекции_Эмпт_2ч_Глот.doc
Скачиваний:
4
Добавлен:
19.11.2019
Размер:
941.06 Кб
Скачать

5. Группа команд управления.

Группу команд управления образуют команды, управляющие

процедурами ввода - вывода информации, операциями со стеком, и

команды проверки текущего состояния процессора.

EI - разрешить прерывание

┌───────────────┐

│1 1 1 1 1 0 1 1│ (РПР) <- 1

└───────────────┘

Разрешает прерывание программы. Устанавливает триггер разреше-

- 73 -

ния прерывания РПР в 1.

NOP - Пустая операция

┌───────────────┐

│0 0 0 0 0 0 0 0│

└───────────────┘

Не выполняет никаких действий. Используется для организации

программных задержек или для замещения других команд, подлежа-

щих удалению.

ПРИМЕР: Задана в виде таблицы истинности логическая функ-

ция Y трех переменных B,C,D.

--- -- - --

B C D │ Y BCD + BCD + BCD + BCD = BC + CD

──────┼──

0 0 0 │ 1 Входные сигналы будем считывать через порт ввода

0 0 1 │ 1

0 1 0 │ 0 с адресом 00000000 = 00H

0 1 1 │ 1 ┌───┬───┬───┬───┬───┬───┬───┬───┐

1 0 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ B │ C │ D │

1 0 1 │ 0 └───┴───┴───┴───┴───┴───┴───┴───┘

1 1 0 │ 0 Выходные сигналы будем выводить через порт вывода

1 1 1 │ 1

с адресом 00000001 = 01H

┌───┬───┬───┬───┬───┬───┬───┬───┐

│ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ Y │

└───┴───┴───┴───┴───┴───┴───┴───┘

Действие оператор код мт

1. Загрузить данные из порта ввода в А IN 00H D8 00 10

2. Сохранить слово данных в рег. E MOV E,A 5F 5

3. Выделить B: (А) AND 00000100 ANI 04H E6 04 7

(Обнуляются все разряды, кроме 2)

4. Сдвиг (A) вправо RRC 0F 4

5. Сдвиг (A) вправо RRC 0F 4

6. Сохранить B в рег. B: B <- (A) MOV B,A 47 5

7. Восстановить слово данных в A MOV A,E 7B 5

8. Выделить C: (А) AND 00000010 ANI 02H E6 02 7

(Обнуляются все разряды, кроме 1)

9. Сдвиг (A) вправо RRC 0F 4

10. Сохранить C в рег. C: C <- (A) MOV C,A 4F 5

11. Восстановить слово данных в A MOV A,E 7B 5

12. Выделить D: (A) AND 00000001 ANI 01H E6 01 7

(Обнуляются все разряды, кроме 0)

13. Произведение CD: (A)/\(C) ANA C A1 4

- 74 -

14. Сохранить CD в рег. D: D <- (A) MOV D,A 57 5

15. Поместить B в A: A <- (B) MOV A,B 78 5

_

16. Инверсия B: (A) CMA 2F 4

_

17. Сохранить B в рег. B: B <- (A) MOV B,A 47 5

18. Поместить C в A: A <- (C) MOV A,C 79 5

_

19. Инверсия C: (A) CMA 2F 4

--

20. Произведение BC: (A)/\(B) ANA B A0 4

--

21. Сумма BC+CD: X = (A)\/(D) ORA D B2 4

22. Вывод X в порт вывода:PORT <- (A) OUT 01H D3 01 10

23. Перейти на начало программы JMP 0000H C3 00 00 10

итого 128

При тактовой частоте 2 МГц длительность одного машинного такта

0,5 мкс, следовательно программа будет выполняться 64 мкс.

Прошивка ПЗУ

Адрес Данные │ Адрес Данные │ Адрес Данные │ Адрес Данные

│ │ │

00 D8 │ 08 7B │ 10 A1 │ 18 B2

01 00 │ 09 E6 │ 11 57 │ 19 D3

02 5F │ 0A 02 │ 12 78 │ 1A 01

03 E6 │ 0B 0F │ 13 2F │ 1B C3

04 04 │ 0C 4F │ 14 47 │ 1C 00

05 0F │ 0D 7B │ 15 79 │ 1D 00

06 0F │ 0E E6 │ 16 2F │

07 47 │ 0F 01 │ 17 A0 │

.

- 75 -

DD1 DD2

┌───┬────┬──┐ ┌──┬────┬──┐

│ │CPU │A0├───────────────────────────────────────┤A0│ ROM│D0├─┐

Ф1────┤C1 │ │A1├───────────────────────────────────────┤A1│32Х8│D1├─┼─┐

Ф2────┤C2 │ │A2├───────────────────────────────────────┤A2│ │D2├─┼─┼─┐

+5V │ │ │A3├───────────────────────────────────────┤A3│ │D3├─┼─┼─┼─┐

o │ │ │A4├───────────────────────────────────────┤A4│ │D4├─┼─┼─┼─┼─┐

│ │ │ │ │ │ │ │D5├─┼─┼─┼─┼─┼─┐

┌┴┐R1│ │ │ │ ├──┤ │D6├─┼─┼─┼─┼─┼─┼─┐

│ │1к│ │ │ │ ┌───┤CS│ │D7├─┼─┼─┼─┼─┼─┼─┼─┐

└┬┘ │ │ ├──┤ │ └──┴────┴──┘ │ │ │ │ │ │ │ │

│ │ │ │D0├───────────────────────────────────┼─┬──────────────┘ │ │ │ │ │ │ │

┌\───┤SR │ │D1├───────────────────────────────────┼─┼─┬──────────────┘ │ │ │ │ │ │

─┴─ │ │ │D2├───────────────────────────────────┼─┼─┼─┬──────────────┘ │ │ │ │ │

+5V │ │ │D3├───────────────────────────────────┼─┼─┼─┼────────────────┘ │ │ │ │

o │ │ │D4├───────┬───────────────────────────┼─┼─┼─┼──────────────────┘ │ │ │

│ │ │ │D5├───────┼───────────────────────────┼─┼─┼─┼────────────────────┘ │ │

┌┴┐R2│ │ │D6├─────┬─┼───────────────────────────┼─┼─┼─┼──────────────────────┘ │

│ │1к│ │ │D7├─────┼─┼───────────────────────────┼─┼─┼─┼────────────────────────┘

└┬┘ │ │ │ │ ┌───┼─┼─────────────────┐ ┌───┐ │ │ │ │ DD5

└───┤RDY│ ├──┤ │ │ │ ┌─┬───┐DD3 └─┤ & │DD4│ │ │ │ ┌──┬──┬──┐ Y

┌───┤HLD│ │ │ │ │ └───┤D│ T o─────┬───┤ o───┘ ├─┼─┼───┤DI│RG│DO├────────────

├───┤INT│ SYN├─┼─┬─┼─────┤C│ │ │ ┌─┤ │ │ │ │ │ │ │ │

─┴─ │ │ │ │ │ │ │ ├─┼───┤ │ │ └───┘ │ │ │ │ │ │ │

│ │ ├──┤ │ │ └─────┤D│ T o─────┼─┘ ┌───┐DD6 │ │ │ ├──┤ │ │

│ │ │RC├─┤ └───────┤C│ ├──┐ └───┤ 1 o─────┼─┼─┼───┤ C│ │ │

│ │ │__│ │ └─┴───┘ │ ┌───┤ │ │ │ │ ┌─oOE│ │ │

│ │ВМ80│TR├─┼──────────────────┼──┘ └───┘ │ │ │ │ └──┴──┴──┘

└───┴────┴──┘ │ ┌───────┘ ┌──┬──┬──┐DD7 │ │ │ │ DD1-КР580ИК80А

B ──────────────────┼──────────┼──────────┤DI│BD│DO├────┘ │ │ │ +5V DD2-К155РЕ3

C ──────────────────┼──────────┼──────────┤ │ │ ├──────┘ │ │ o DD3-К555ТМ2

D ──────────────────┼──────────┼──────────┤ │ │ ├────────┘ │ │ DD4-К555ЛА4

│ │ ┌───┐DD8 ├──┤ │ │ │ R3┌┴┐ DD5-К580ИР82

│ └─┤ & o────oOE│ │ │ │ 1к│ │ DD6-К555ЛЕ1

└────────────┤ │ ┌──┤ T│ │ │ │ └┬┘ DD7-К580ВА86

└───┘ │ └──┴──┴──┘ │ │ DD8-К555ЛА3

└──────────────────────┴────┘

Рис. 9.7. Пример построения МП - устройства.

.

- 76 -

Рассмотрим принципиальную схему МП - системы, реализующей

заданную функцию под управлением составленной программы

(Рис.9.7).

Система построена на базе центрального процессора DD1

КР580ВМ80А, синхронизируемого сигналами Ф1 и Ф2 от внешнего

генератора. Управляющая программа содержится в ПЗУ DD2. Ячейки

ПЗУ адресуются по пяти младшим линиям шины адреса микропроцес-

сора, что вполне достаточно для выборки 30 байт программы.

Выбранный в ПЗУ байт поступает в шину данных системы, образо-

ванную внешней шиной данных МП, выводами данных ПЗУ DD2, ре-

гистров DD3 и DD5 и шинного формирователя DD7.

Входные сигналы поступают по линиям B, C и D на вход шин-

ного формирователя DD7, образующего с элементом DD8 порт вво-

да. Выходной сигнал поступает на линию Y с выхода регистра

DD5, образующего с элементом DD6 порт вывода.

В начале каждого цикла на шину данных МП выводится слово

состояния процессора. В рассматриваемой системе используется

только 2 разряда PSW - разряд, информирующий о начале цикла

вывода данных в порт вывода (PSW4), и разряд, информирующий о

вводе из порта ввода (PSW6). Значения этих разрядов записыва-

ются в регистр слова состояния, образованный двумя D - тригге-

рами DD3. Запись синхронизируется сигналом SYN (СИНХРО). Эти

сигналы позволяют отличить циклы обращения к памяти от циклов

обращения к портам ввода - вывода. При выполнении процессором

циклов, не относящихся к операциям с портами ввода - вывода, в

триггеры записываются нулевые значения. Инверсные значения

этих сигналов поступают на входы логического элемента DD4.

Сигнал с выхода этого элемента подается на вход CS микросхемы

ПЗУ. Единичный сигнал на CS переводит линии данных ПЗУ в z -

- 77 -

состояние. При активном единичном сигнале RC, информирующем о

том, что процессор считывает сигналы с шины данных, на выходе

DD4 появляется уровень логического 0, Z - состояние снимается

и байт данных поступает из ПЗУ в процессор.

В процессе выполнения команды чтения из порта IN (port) в

разряде PSW6 появляется 1. При активном сигнале RC на выходе

элемента DD8 появляется лог. 0, который переводит шинный фор-

мирователь DD7 в режим передачи информации с входных линий B,

C и D на три младших разряда шины данных.

В процессе выполнения команды записи в порт OUT (port) в

__

разряде PSW4 появляется 1. При активном нулевом сигнале TR на

выходе элемента DD6 появляется лог. 1, которая переводит ре-

гистр DD5 в режим записи информации с шины данных. Бит D0 с

шины данных поступает на выходную линию Y и сохраняется на ней

до следующего цикла вывода.

Так как в рассматриваемом устройстве используется только

один порт ввода и один порт вывода, выборка их по адресам не

требуется и, поэтому в программе адреса портов могут быть лю-

быми.

Единичный сигнал SR устанавливает микропроцессор в исход-

ное состояние. В этом случае в счетчик команд записывается 0,

т.е. начинается выполнение программы с адреса 0000H.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]