Читаем Интернет-журнал "Домашняя лаборатория", 2008 №2 полностью

Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам, начиная с базового (Base) адреса. Перечень данных регистров приведен в табл. 6.


Примечание. W-R — доступные операции (W — запись, R — чтение, W/R — запись/чтение).


Регистр данных (DR). Записанные в этот регистр данные выводятся на выходные линии интерфейса D0-D7. Результат чтения этого регистра зависит от схемотехники адаптера, и соответствуют либо записанным ранее данным, либо сигналам на линиях D0-D7, что не всегда одно и тоже. При стандартном включении справедлив первый вариант — читаемые данные равны ранее записанным.

Регистр состояния (SR). Представляет собой 5-ти битный порт ввода, на который заведены сигналы состояния от внешнего устройства. Допускает только чтение. Назначение битов данного регистра приведены в табл. 7.



Регистр управления (CR). Регистр управления представляет собой 4-х битный порт вывода, допускающий чтение и запись. Биты 0, 1, 3 инвертируются, т. е. "1" в данных битах регистра управления соответствует "0" на соответствующих линиях порта. Назначение битов регистра управления приведены в табл. 8. Бит 5 используется только двунаправленными портами.



ПРОГРАММИРОВАНИЕ ИНТЕРФЕЙСА

Для разработки прикладных программ необходимо выбрать язык программирования. Если требуется несложная, быстрая и компактная программа, которая не содержит сложных вычислительных операций, то для ее написания лучше выбирать язык низкого уровня (язык ассемблера). Язык ассемблера относится к группе машинно-ориентированных языков, т. е. каждому семейству микропроцессоров соответствует свой язык.

Язык высокого уровня следует выбирать, если необходимо производить сложные вычисления, или в случае, если высокое быстродействие программы не требуется. Объектные коды, полученные в результате трансляции программ, написанных на языке высокого уровня, обычно занимают в памяти ЭВМ намного больше места и исполняются медленнее в сравнении с программами на ассемблере. Часто применяется подход, когда критичные к быстродействию части программы пишутся на ассемблере, а вычислительные процедуры — на языке высокого уровня, например, на Паскале или Си.

Рассмотрим работу с регистрами интерфейса CENTRONICS на языке PASCAL или ассемблере:

ПАСКАЛЬ:

Port[$378]:=х


АССЕМБЛЕР 8086:

mov a1,х

mov dx,378h

out dx,a1

X — число типа "byte" (0..255). Например, при посылке 170 (dec) = 10101010 (bin) на линии D0-D7 единичный сигнал будет присутствовать на выводах Dl, D3, D5, D7 (обозначение выводов начинается с D0). Число 170 останется на выводах разъёма до тех пор, пока Вы не перешлёте туда же другое число (это может сделать и другая программа) или не выключите компьютер. Заметьте, что адрес порта в команде задан в шестнадцатиричном (hex) виде, а посылка — в десятичном (dec). Если вместо Паскаль-команды

Port[$378]:=170;

Вы примените

d:=Port[$378];

где d — переменная, то переменная примет значение последнего посланного в порт байта или, при переходе в режим приёма, значение байта, поданного на порт внешним устройством.

Пример чтения статус-регистра на языке Pascal:

d:=Port[$379];

В переменной d после выполнения программы будет отображено состояние порта. Допустим, переменная вернула значение 126 (dec). В двоичном (bin) виде оно выглядит как 01111110. Младшие (правые) три бита (нулевой, первый и второй) не используются, и почти равны 1, 1 и 0. Третий бит — 1, значит на ERROR высокий уровень. Та же ситуация на SELECT, PAPER END, ACK и BUSY (не забывайте, что сигнал BUSY является инвертированным).

Приведем пример фрагмента программы, которая считывает байт с линий данных D0-D7:

Port[$37А]:=32; {32 "включает" единицу в пятом}

d:=Port[$378]; {бите, переводя порт в режим ввода}

Как видно из приведенных примеров, программирование LPT-порта является весьма простой задачей, что позволяет в значительной степени облегчить работу разработчика программного обеспечения устройств с обсуждаемым интерфейсом.


СПИСОК КОНТРОЛЬНЫХ ВОПРОСОВ

1. Для чего предназначен параллельный интерфейс Centronics?

2. Что представляет собой адаптер LPT-порта?

3. Перечислите основные параметры интерфейса Centronics?

4. Какие основные сигналы используются обсуждаемым интерфейсом для обеспечения передачи данных от компьютера к периферийному устройству?

5. Опишите стандартный протокол обмена данными через интерфейс Centronics.

6. Перечислите режимы обмена данными через LPT-порт согласно спецификации IEEE 1284.

7. Как осуществляется двунаправленный обмен данными через LPT-порт?

8. Какими электрическими параметрами обладает LPT-порт, выполненный согласно спецификации IEEE 1284?

9. Как осуществляется работа с LPT-портом на низком уровне?

10. Какие функции выполняет регистр данных?

11. Перечислите биты регистра состояния стандартного LPT-порта и укажите их назначение.

12. Перечислите биты регистра управления стандартного LPT-порта и укажите их назначение.

Перейти на страницу:

Похожие книги

Отопление и водоснабжение загородного дома
Отопление и водоснабжение загородного дома

Если вы хотите установить в вашем загородном доме надежное, качественное, высокоэффективное отопительное и водопроводное оборудование, тогда вам просто не обойтись без этой книги. Наше практическое руководство поможет вам избежать лишних затрат времени и денежных средств при выборе видов отопления и водоснабжения, количество которых на современном строительном рынке без преувеличения огромно. Вы узнаете о преимуществах водяного, электрического, печного отопления, о секретах установки отопительных котлов, бытовых печей и каминов. Книга также расскажет о системах холодного и горячего водоснабжения, об улучшении качества питьевой воды, о методах установки газовых водогрейных колонок и многом-многом другом.Прибегнув к этим рекомендациям, вы сможете сделать отопление и водоснабжение вашего дома удобным, экономичным и практически безотказным.

Людмила Николаевна Смирнова

Сделай сам / Дом и досуг