7) Программное управление вводом-выводом данных.
Ввод и вывод информации выполняется с помощью портов ввода/вывода, которые представляют собой 8- или 16-разрядные регистры со схемами выборки и управления чтением/записью. В качестве портов могут быть использованы буферные регистры. Использование регистра КР580ИР82 для соединения с устройством ввода и устройством вывода показано на рис.3.1, а и б соответственно.
Рис.3.1. Использование регистра КР580ИР82 для сопряжения:
а — с устройством ввода; б — с устройством вывода
Если регистр используется как порт ввода (рис.3.1, а), то данные от устройства ввода поступают в регистр по линиям DI7—DI0 и записываются по стробу STB. Выходные данные DO7—DO0 порта поступают в МПС систему по шине данных. МП формирует также сигнал управления чтением и выборкой порта, который поступает на вход . Если регистр используется как порт вывода (рис.3.1, б), то данные от МП поступают по шине данных на входы DI7-DI0 порта и сопровождаются сигналами управления записью и выборки БИС. Выходные данные DO7-DO0 порта поступают в устройство вывода.
Ввод или вывод данных можно осуществлять двумя способами:
- с использованием отдельного адресного пространства УВВ;
- с использованием общего с памятью адресного пространства, т.е. с отображением на память.
В первом случае ввод и вывод данных выполняются по командам IN и OUT.
Во втором случае адреса портов располагаются в общем с памятью адресном пространстве, и обращение к портам не отличается от обращения к ячейке памяти.
Сигналы выборки БИС (рис.3.1) конкретных портов формируются с помощью дешифраторов. Адрес 16-разрядного порта Р16 должен быть четным, чтобы обращение к нему происходило за один цикл шины. Адреса 8-разрядных портов ввода/вывода Р8 могут быть любыми (четными, нечетными), но при четном адресе 8-разрядные порты нужно соединить с младшей половиной шины данных D7—D0, а при нечетном — со старшей половиной D15—D8.