Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСУ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
11.26 Mб
Скачать

1.11. Подсистемы ввода/вывода

1.11.1. Ввод данных в микроЭвм

Подсистемы ввода/вывода осуществляют передачу данных между микроЭВМ и внешними (периферийными) устройствами. Для построения подсистем ввода/вывода используют различные интерфейсы. Рассмотрим пример реализации подсистемы ввода/вывода с помощью микросхемы параллельного программируемого интерфейса КР580ВВ55.

Внешнее устройство, передающее данные в микроЭВМ, представим в виде регистра тумблеров рис. 11.1. Замкнутое положение тумблера соответствует подаче логического нуля на соответствующий вход, разомкнутое - логической единицы. Для организации передачи выставленных внешним устройством данных в микроЭВМ порт B микросхемы необходимо запрограммировать на чтение. Для приведения микросхемы в исходное состояние необходимо на вход RESET подать высокий уровень сигнала - произойдет установка режима 0 и все порты установятся в режим ввода. Далее в микросхему необходимо загрузить слово управления. Для этого в соответствии с форматом слова управления микросхемы (рис. 10.4) на шину данных необходимо выставить код 1XXXX01X, в соответствии с таблицей истинности (табл. 10.1) на входы ^1, ^0, RD подать логическую единицу, а на входы CS и WR - логический нуль. Теперь если подать команду чтения из порта B (RD = = 0, WR = ^0 = 1), то выставленные на входе порта B данные будут переданы на шину данных микроЭВМ.

1.11.2. Вывод данных из микроЭвм

В качестве устройства, принимающего данные от микроЭВМ, возьмем алфавитно-цифровой индикатор, состоящий из двух семисегментных индикаторов и двух микросхем ПЗУ. Каждый семисегментный индикатор предназначен для вывода шестнадцатеричных цифр от 0 до F. В микросхемах ПЗУ запрограммированы коды, необходимые для отображения шестнадцатерич- ных цифр. Выход микросхем ПЗУ построен по схеме с открытым коллектором, поэтому, если выходной транзистор открыт, на выходе соответствующего разряда ПЗУ будет низкий уровень сигнала. При этом через светодиод (сегмент) индикатора будет проходить ток, и он будет светиться. Для программирования порта A на вывод информации в микросхему необходимо загрузить слово управления 1000XXXX (A1 = A0 = RD = 1, CS и WR = 0). Теперь если выдать команду записи в порт A (WR = A1 = A0 = 0, RD = 1), то данные с шины данных микроЭВМ будут переданы через порт A и в шестнадцатеричном формате высвечены на алфавитно-цифровом индикаторе.

Для организации ввода данных в микроЭВМ с клавиатуры также можно использовать параллельный интерфейс. Допустим, клавиатура состоит из 16 клавиш, организованных в матрицу из 4 строк и 4 столбцов, и позволяет вводить только шестнадцатеричные цифры (рис. 11.3). Строки подсоединяют к старшей части порта С, столбцы - к младшей. Для распознавания нажатой клавиши используется процедура сканирования клавиатуры. Младшую половину порта C настраивают на вывод, а старшую - на ввод. Для чего в микросхему загружают слово управления 1XXX10X0 (A1 = A0 = RD = 1, CS и WR = 0). Далее через младшую половину с определенной частотой поочередно выводятся 4-разрядные двоичные слова, такие, что только один разряд равен логической единице, а остальные - логическому нулю. Причем в каждом следующем слове логическая единица смещается в следующий разряд. После каждого вывода кода через младшую половину порта С осуществляется считывание данных со старшей половины (опрос) порта C. Так как строки через резисторы присоединены к общему проводу, то, если в момент опроса не будет нажата ни одна клавиша, считывание данных даст код 0000. В связи с тем что период опроса в несколько десятков раз меньше времени нажатия на клавишу, при нажатии на клавишу опрос приведет к появлению логической единицы в соответствующем нажатой клавише разряде кода. Например, нажатие клавиши 3 приведет к считыванию старшей половиной порта С кода 0001. Зная этот код и текущий код младшей половиной порта C, программно нетрудно определить нажатую клавишу и выполнить соответствующее действие.

Если необходимо запрограммировать сразу все три порта микросхемы, нужно использовать одно слово управления, объединяющее три вышеперечисленных (10001010). В этом случае порт B и младшая половина порта C будут настроены на ввод, порт A и старшая половина порта C - на вывод.

МикроЭВМ может содержать несколько микросхем программируемого параллельного интерфейса. В этом случае выбор необходимой микросхемы осуществляется с помощью логической функции, подающей на вход CS соответствующей микросхемы логический нуль при определенном коде на шине адреса микроЭВМ.

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