После того как с помощью управляющих регистров установлен режим работы УСАПП, можно передавать и принимать байты данных с помощью циклов ЦП записи и чтения при высоком уровне сигнала D/C
В дополнение к этому по другим битам регистра состояния можно судить о фиксации ошибки четности, потере принимаемых данных и т. д. Часто эти страшные удары судьбы можно игнорировать и смело идти вперед. В программе 11.5 приведены фрагменты пересылки данных при том же, что и раньше, отображении регистров на адресное пространство.
Учтите, что эти примеры, в которых используется программный ввод-вывод с проверкой состояния (см.
Микросхемы параллельного ввода-вывода (PIO).
В состав нашего микропроцессорного прибора была включена многофункциональная микросхема параллельного порта (такого рода схемы часто объединяются с одним или несколькими таймерами). Использованная нами микросхема 8536 принадлежит тому же семейству, что и микросхема последовательного порта 8530 и использует схожие интерфейс с процессором и протокол настройки. Хорошие микросхемы параллельных портов позволяют программировать для каждого бита в отдельности направление передачи и режим (с фиксацией, с открытым стоком, с инверсией). Протокол передачи данных также можно запрограммировать; например, в микросхеме 8536 можно разрешить векторизуемые прерывания по любому сочетанию входных бит. Можно также выбрать один из четырех режимов квитирования (см. ниже).Микросхемы РIO, как и все периферийные БИС, разрабатываются на базе
На рис. 11.27 показан пример реальной схемы, конкретно для управления 6-разрядным дисплеем.
Рис. 11.27.
Конечно, вам придется написать программу для периодического вывода последовательных десятичных чисел, а также и «шагающего бита» через порт А, не забыв запретить прерывания на время вывода, чтобы предотвратить мерцание. Другой, более простой способ управления многоразрядным ЭЛД-дисплеем в микропроцессорной системе заключается в использовании чего-то вроде семейства «интеллектуальных дисплеев» фирмы Siemens-дисплейных секций, отображаемых на память, и выглядящих с точки зрения ЦП просто как участки памяти (см. рис. 9.24); поскольку такие дисплеи запоминают выводимые числа, запись в них требуется выполнять только при смене отображаемого числа.
Квитирование.
Процедура квитирования требует некоторых пояснений. Представьте себя на месте внешнего устройства, посылающего байты данных в процессор через порт РIO. Вы хотите узнать, готов ли РIO принять следующий байт, т. е. извлечен ли процессором предыдущий байт. Для выполнения этой операции следует предусмотреть в РIO специальный выход «готов к приему данных» (На рис. 11.28 показано, как реализуется это «взаимное квитирование», которое является одним из четырех режимов квитирования, предусмотренных в микросхеме 8536.
Рис. 11.28.