Текст разработанной программы:
Передача массива информации из ведущей в ведомую микро ЭВМ.
Адрес команды |
Машинный код |
Ассемблер |
Пояснение |
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 | Останов программы |
Описание структуры и функционирование
Структурная схема программируемого периферийного адаптера представлена на рис. 1.
Структурная схема программируемого периферийного адаптера КР580ВВ55
ППА структурно разбит на две группы (A и B). Группа A включает в себя канал A и старшую тетраду канала C. Группа B состоит из канала B и младшей тетрады канала C. Доступ к каналам ввода/вывода и регистру управления осуществляется с помощью логики чтения-записи в соответствии с табл. 1.
Таблица 1. Доступ к каналам ввода/вывода и регистру управляющего слова
A1 | A0 | /RD | /WR | /CS | |
---|---|---|---|---|---|
1 | Шина данных <- канал A | ||||
1 | 1 | Шина данных <- канал B | |||
1 | 1 | Шина данных <- канал C | |||
1 | 1 | 1 | Данные не определены | ||
1 | Шина данных -> канал A | ||||
1 | 1 | Шина данных -> канал B | |||
1 | 1 | Шина данных -> канал C | |||
1 | 1 | 1 | Шина данных -> регистр управления | ||
X | Х | Х | Х | 1 | Шина данных в высокоомном состоянии |
Назначение этих и остальных выводов микросхемы приведено в табл. 2.
Таблица 2. Назначение выводов
D0…D7 | Двунаправленная шина данных. Предназначена для передачи и приема данных процессором, а также передачи управляющих команд и слова состояния |
/CS | Chip Select. Выбор микросхемы. Низкий уровень инициирует обмен между процессором и ППА |
/RD | Read. Чтение. Низкий уровень на этом входе позволяет ППА передать данные или слово состояния процессору |
/WR | Write. Запись. Низкий уровень на этом входе позволяет ППА принять данные или управляющую команду |
RESET | Reset. Сброс. Высокий уровень на этом входе сбрасывает все внутренние регистры, включая регистры управления, переключает все каналы (A, B, C) в режим 0, одновременно переводя их в режим ввода (только при /RD = 0 и /WR = 0) |
A0, A1 | Адресные входы. Выбор канала. Позволяют выбрать один из каналов (A, B, C) или регистры управляющего слова и состояния (в зависимости от сигналов на входах /RD и /WR, см. табл. 2) |
PA0…PA7 | Канал A |
PB0…PB7 | Канал B |
PC0…PC7 | Канал C |
Первоначальное включение или подача сигнала высокого уровня на вход сброс RESET микросхемы переключает все каналы (A, B, C) в режим 0, одновременно переводя их в режим ввода. Сброс выполняется только при условии /RD = 0 и /WR = 0.
Режим работы и направление передачи для каждого канала задается с помощью записи управляющего слова в регистр управления в соответствии с табл. 3 или 4. Отметим возможность комбинирования режимов работы для разных каналов. К примеру, канал B может быть запрограммирован на вывод в режим 0 для управления различными выключателями и реле, в то время как канал A может быть запрограммирован в режим 1 для ввода с клавиатуры или перфоленты.
Таблица 3. Формат управляющего слова для выбора режима работы
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
Флаг управления 1 = выбор режима |
Группа A | Группа В | |||||
Выбор режима: 00 = режим 001 = режим 11х = режим 2 |
Канал A: 1 = ввод0 = вывод |
Старшая тетрада канала C: 1 = ввод0 = вывод |
Выбор режима: 0 = режим 01 = режим 1 |
Канал B: 1 = ввод0 = вывод |
Младшая тетрада канала C: 1 = ввод0 = вывод |
Таблица 4. Формат управляющего слова для двунаправленного режима.
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Флаг управления 1 = выбор режима |
Выбор режима: 1 = режим 2 |
Произвольное состояние | Выбор режима для канала B: 0 = режим 01 = режим 1 |
Канал B: 1 = ввод0 = вывод |
Биты 0..2 канала C: 1 = ввод0 = вывод |
Каждый из восьми битов канала C может быть независимо от других установлен или сброшен с помощью специальной команды вывода, посылаемой в регистр управления. Это свойство канала C облегчает программирование в случае, когда биты канала C используется для управления передачей данных по каналам A или B. Формат команды приведен в табл. 5.
Работа микросхемы в режиме 1 или 2 характеризуется наличием управляющих сигналов, которые могут вызывать прерывание работы процессора КР580ВМ80.
Команда установки или сброса соответствующего бита канала C позволяет запретить или разрешить выдачу требуемого прерывания.
Таблица 5. Оперирование битами
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Флаг управления 0 = оперирование битами |
Произвольное состояние | Выбор бита: 0 0 0 = 0 бит0 0 1 = 1 бит0 1 0 = 2 бит0 1 1 = 3 бит1 0 0 = 4 бит1 0 1 = 5 бит1 1 0 = 6 бит1 1 1 = 7 бит |
1 = установить бит 0 = снять бит |
Текст разработанной программы:
Передача
массива информации
из ведущей в
ведомую микро
ЭВМ.
Адрес |
Машинный |
Ассемблер |
Пояснение |
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 | Останов программы |
Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.),
обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.
Подробнее
Поможем написать работу на аналогичную тему
Реферат
Любая тема
От 850 руб.
Контольная работа
Любая тема
От 850 руб.
Курсовая
Любая тема
От 1500 руб.
Получить выполненную работу или консультацию специалиста по вашему учебному
проекту
Узнать стоимость
Нужна помощь в написании работы?
Мы — биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus.
Помогаем в публикации. Правки вносим бесплатно.
Узнать цену