Передача массива информации в параллельном формате между двумя микроЭВМ КР580ВН80А с использованием БИС КР580ВВ55
Белорусский
Государственный Университет Информатики и Радиоэлектроники.
Контрольная работа
по дисциплине
«ММПС»
Выполнил студент группы
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
|
LDAX HL
|
Загрузка в аккумулятор байта
из памяти
|
013
|
11010011
|
OUT 05BH
|
Запись в порт 1-го слова
массива
|
015
|
00100011
|
INX HL
|
Инкремент указателя на
массив
|
016
|
00010101
|
DCB D
|
Декремент счетчика
|
017
|
00111110
|
MVZ A, 00H
|
Обнуляем аккумулятор
|
019
|
10100010
|
ANA D
|
Проверка, что счетчик еще на
равен нулю
|
01A
|
11000010
|
JNZ WAIT
|
Переход на начало пересылки,
если еще не весь массив послан
|
01E
|
01110110
|
HLT
|
Останов программы
|
Размещение массива в памяти ведомой микро ЭВМ.
Адрес команды
|
Машинный код
|
Ассемблер
|
Пояснение
|
000
|
00111110
|
MVI A, 0ADH
|
Запись в аккумулятор
управляющего слова.
|
002
|
00100001
|
Загрузка адреса начала
массива (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
|
STAX HL
|
Запись принятого байта в
память
|
011
|
00100011
|
INX HL
|
Инкремент указателя на
массив
|
012
|
00010101
|
DCB D
|
Декремент счетчика
|
013
|
00111110
|
MVI A, 010H
|
Запись в аккумулятор
управляющего слова.
|
015
|
11010011
|
OUT 05AH
|
Записываем управляющее слово
в канал С
|
017
|
00111110
|
MVI A, 00H
|
Обнуляем аккумулятор
|
019
|
10100010
|
ANA D
|
Проверка счетчика
|
01A
|
11000010
|
JN2 WAIT
|
Если не ноль, переход на
метку WAIT
|
01D
|
01110110
|
HLT
|
Останов программы
|