Передача массива информации в параллельном формате между двумя микроЭВМ КР580ВН80А с использованием БИС КР580ВВ55
Белорусский Государственный Университет Информатики и Радиоэлектроники.
Контрольная работа
по дисциплине
«ММПС»
Выполнил студент группы 500501
Балахонов Е.В.
Минск, 2000 г.
Контрольная работа № 1.
Задание.
Разработать МПС для передачи массива информации в параллельном формате
между двумя микро ЭВМ КР580ВН80А с использованием БИС КР580ВВ55. Устройство
сопряжения должно обеспечивать однонаправленный обмен информацией по
параллельному каналу связи, где одна микро ЭВМ – ведущая, в другая –
ведомая (без контроля правильности). В качестве сигналов управления
использовать разряды канала С.
Описание микросхемы КР580ВВ55А.
Предложенная в задании микросхема КР580ВВ55 предназначена для ввода и
вывода информации через параллельный интерфейс.
Рассмотрим структурную схему данной БИС и алгоритм ее работы:
Структурная схема КР580ВВ55 представлена на рис. 1.
Сигналы управления работой ППИ подаются на блок RWCU и вместе с
адресными входами A0 и A1 задают вид операции, выполняемой БИС. Режим
работы каждого из каналов ППИ программируется при помощи управляющего
слова. Управляющее слово может задавать один из трех режимов работы:
основной режим ввода /вывода (режим 0), стробируемый режим ввод/вывод и
режим двунаправленной передачи информации (режим 2). Одним управляющим
словом можно программно установить любые режимы работы для каждого из
каналов.
[pic]
Рис. 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.
[pic]
Рис. 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 |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 |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 |Останов |
| | | |программы |