Белорусский Государственный Университет Информатики и Радиоэлектроники.
Контрольная работа
по дисциплине
«ММПС»
Выполнил студент группы 500501
Балахонов Е.В.
Минск, 2000 г.
Контрольная работа № 1.
Задание.
Разработать МПС для передачи массива информации в параллельном формате между двумя микро ЭВМ КР580ВН80А с использованием БИС КР580ВВ55. Устройство сопряжения должно обеспечивать однонаправленный обмен информацией по параллельному каналу связи, где одна микро ЭВМ – ведущая, в другая – ведомая (без контроля правильности). В качестве сигналов управления использовать разряды канала С.
Описание микросхемы КР580ВВ55А.
Предложенная в задании микросхема КР580ВВ55 предназначена для ввода и вывода информации через параллельный интерфейс.
Рассмотрим структурную схему данной БИС и алгоритм ее работы:
Структурная схема КР580ВВ55 представлена на рис. 1.
Сигналы управления работой ППИ подаются на блок RWCU и вместе с адресными входами A0 и A1 задают вид операции, выполняемой БИС. Режим работы каждого из каналов ППИ программируется при помощи управляющего слова. Управляющее слово может задавать один из трех режимов работы: основной режим ввода /вывода (режим 0), стробируемый режим ввод/вывод и режим двунаправленной передачи информации (режим 2). Одним управляющим словом можно программно установить любые режимы работы для каждого из каналов.
Рис. 1. Структурная схема БИС КР580ВВ55.
Выбор режима работы и подключения
В нашей ситуации предпочтительнее использовать режим 1, который как раз и обеспечивает заданный в задании однонаправленную параллельную передачу данных. Мы будем использовать линии канала А для передачи данных, а линии С, как и указано в задании, для передачи управляющих сигналов.
В выбранном режиме 1 используются следующие сигналы:
- строб приема (STB) – входной сигнал, формируемый внешним устройством, указывает на готовность к вводу информации;
- подтверждение приема (IBF) – выходной сигнал ППИ, сообщающий об окончании приема данных в канал, формируется по спаду STB;
- запрос прерывания (INTR) – выходной сигнал ППИ, информирующий микропроцессор о завершении приема информации в канале;
Для вывода информации в режиме 1 используются следующие управляющие сигналы:
- строб записи (OBF) – выходной сигнал, указывающий о готовности к выводу;
- подтверждение записи (ACK) – выходной сигнал, подтверждающий прием информации из ППИ;
- запрос прерывания (INTR) – выход ППРИ, информирующий микропроцессор о завершении вывода информации в канале;
Для операции ввода необходимо записать управляющее слово:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
А для производства операции вывода необходимо записать управляющее слово:
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
Схема подключения КР580ВВ55 показана на рис. 2.
Рис. 2. Схема подключения КР580ВВ55.
Контрольная работа № 2.
Задание.
Разработать программу, обеспечивающую работу двухпроцессорной системы в указанном режиме по алгоритму
a) Передача массива информации из ведущей в ведомую микро ЭВМ.
b) Размещение информации в ведомой микро ЭВМ
Исходные данные:
a) Длина массива информации (64/номер зачетки) ~= 8 байт
b) Адрес параллельного порта на БИС К580ВВ55А – 90
c) Адрес расположения массива данных – 90
Текст разработанной программы:
Передача массива информации из ведущей в ведомую микро ЭВМ.
Адрес команды
|
Машинный код
|
Ассемблер
|
Пояснение
|
000 |
00111110 |
MVI A, 0A4H |
Запись в аккумулятор управляющего слова. |
002 |
00100001 |
LXI HL, 05AH |
Загрузка адреса начала массива (90) |
005 |
00010110 |
MVI D, 08H |
Количество элементов массива (8) |
007 |
11010011 |
OUT 05AH |
Запись управляющего слова в порт |
009 |
11011011 |
WAIT: IN 05AH |
Считывание из канала С |
00B |
11100110 |
ANI 20H |
Выбираем 6 бит |
00D |
11001010 |
J2 WAIT |
Переход по готовности |
010 |
00101010 |
LDAXHL |
Загрузка в аккумулятор байта из памяти |
013 |
11010011 |
OUT 05BH |
Запись в порт 1-го слова массива |
015 |
00100011 |
INXHL |
Инкремент указателя на массив |
016 |
00010101 |
DCBD |
Декремент счетчика |
017 |
00111110 |
MVZ A, 00H |
Обнуляем аккумулятор |
019 |
10100010 |
ANAD |
Проверка, что счетчик еще на равен нулю |
01A |
11000010 |
JNZ WAIT |
Переход на начало пересылки, если еще не весь массив послан |
01E |
01110110 |
HLT |
Останов программы |
Размещение массива в памяти ведомой микро ЭВМ.
Адрес команды
|
Машинный код
|
Ассемблер
|
Пояснение
|
000 |
00111110 |
MVI A, 0ADH |
Запись в аккумулятор управляющего слова. |
002 |
00100001 |
LXI HL, 05AH |
Загрузка адреса начала массива (90) |
005 |
00010110 |
MVI D, 08H |
Количество элементов массива (8) |
007 |
11011011 |
WAIT: IN 05AH |
Считывание из канала С |
009 |
11100110 |
ANI 04H |
Выбираем 3 бит |
00A |
11001010 |
J2 WAIT |
Переход по готовности |
00E |
11011011 |
IN 05BH |
Считывание принятого байта |
010 |
00100010 |
STAXHL |
Запись принятого байта в память |
011 |
00100011 |
INXHL |
Инкремент указателя на массив |
012 |
00010101 |
DCBD |
Декремент счетчика |
013 |
00111110 |
MVI A, 010H |
Запись в аккумулятор управляющего слова. |
015 |
11010011 |
OUT 05AH |
Записываем управляющее слово в канал С |
017 |
00111110 |
MVI A, 00H |
Обнуляем аккумулятор |
019 |
10100010 |
ANAD |
Проверка счетчика |
01A |
11000010 |
JN2 WAIT |
Если не ноль, переход на метку WAIT |
01D |
01110110 |
HLT |
Останов программы |
|