Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
10.06. Программируемый ввод-вывод: вывод данныхПростейший метод обмена данными по магистрали компьютера известен как программируемый ввод-вывод, это обозначает, что данные передаются с помошью операторов программы IN или OUT (направления передачи для IN и OUT входят в состав тех немногих правил, которых придерживаются все изготовители компьютеров: IN всегда означает направление к ЦП, a OUT всегда означает направление из ЦП). В целом процесс вывода данных (и записи в ОЗУ) предельно прост и логичен (рис. 10.6). Адрес приемника и данные, которые необходимо передать, выставляются на соответствующие линии магистрали центральным процессором.
Рис. 10.6. Цикл ввода-вывода при записи (все измерения в нс).
Рис. 10.7. Растровый дисплей. Строб-сигнал записи (IOW или MEMW) устанавливается в низкое состояние цетральным процессором для того, чтобы сигнализировать приемнику о том, что данные установлены и их можно считывать. На магистрали PC адрес гарантированно установлен, начиная с момента времени приблизительно за 100 не до IOW, а данные гарантированно установлены по крайней мере за 500 не до окончания IOW (и в течение следующих 185 не после окончания этого сигнала). Для того чтобы принимать участие в подобных играх, периферийное устройство (пусть в нашем случае это - графический дисплей) наблюдает за шинами адреса и данных. Когда устройство обнаруживает свой собственный адрес, оно считывает информацию с шины данных по спаду сигнала IOW. Вот и все. Рассмотрим пример, приведенный на рис. 10.7. Здесь мы спроектировали растровый графический дисплей; вы последовательно передаете ему пары чисел X, Y и на его экране отображается каждая точка в декартовой прямоугольной системе координат, причем первое число соответствует абсциссе, а второе - ординате отображаемой точки. Сначала мы должны выбрать адрес устройства ввода-вывода. На рис. 10.8 приведены зарезервированные и доступные адреса устройства ввода-вывода для IBM PC; мы выбираем
Рис. 10.8. Адреса ввода-вывода Трехвходовые логические схемы Несколько полезных замечаний: а) Отметим, что мы подобрали полярность сигналов таким образом, что б) Вы можете сэкономить несколько логических элементов, использовав в цепи дешифрации адреса стробируемый дешифратор так, как показано на рисунке. Дешифраторы типа в) Отметим также, что мы могли бы объединить г) На самом деле мы можем полностью игнорировать разряд д) Сопряжение с магистралью, подобное обсуждаемому, будет более гибким, если адрес устанавливать е) Для пояснения существа дела в этом примере мы использовали отдельные микросхемы Упражнение 10.1. Нарисуйте функциональную схему адресного компаратора с настройкой адреса. Упражнение 10.2. Нарисуйте схему сопряжения растрового дисплея с магистралью, используя Программирование графического дисплея.Программирование такого устройства не представляет сложностей. Как это делается показывает программа 10.3, которой надо указать адреса ячеек, где хранятся X- и -координаты первой точки и количество точек, которое надо отобразить. Программа обслуживания дисплея возможно, будет оформлена как подпрограмма с этими параметрами, передаваемыми при ее вызове. Программа заносит адреса массивов X- и -координат (т. е. адрес первой пары -координат) в индексные регистры SI и DI, а байт количества точек в регистр СХ. Этот регистр потом используется в цикле, в котором пары -координат последовательно передаются в порты ввода-вывода по адресам . В каждом цикле перемещаются указатели массивов X и Y; а содержимое счетчика декрементируется и сравнивается с нулем, который характеризует отображение последней точки; затем указатели и счетчик устанавливаются в исходное состояние и процесс вывода начинается снова.
Пара важных моментов: однажды запустившись, программа постоянно отображает массив точек. В действительности программа должна проверять состояние клавиатуры, чтобы заметить, если оператор захочет прекратить вывод на дисплей. Можно также прекратить вывод спустя заданное время или с помощью прерывания, о чем речь будет идти ниже.
Обычно при регенерации изображения на дисплее, организованной подобным образом, для дополнительных продолжительных вычислений во время вывода изображения времени нет. Гораздо лучшим методом является обновление изображения на экране из собственной памяти дисплея, что разгружает компьютер. Как бы то ни было, если ваша цель - построить изображение с высоким разрешением для получения фотографической копии, эта программа и схема сопряжения, спроектированная по условиям упражнения 10.2, будет работать замечательно.
Рис. 10.9. Цикл ввода-вывода при чтении.
Рис. 10.10. Параллельный входной порт.
|
1 |
Оглавление
|