Параллельный порт для связи с
принтером (или другим устройством) имеет базовый адрес &H378.
Адресное пространство порта занимает диапазон &H378-&H37F.
Адрес &H378 служит для передачи или чтения данных.
Имеется возможность записать в этот порт какой-либо байт
(значение от 0 до 255 или от &H00 до &HFF), включив или
выключив соответствующие биты порта, которые выведены на
разъем LPT-порта через контакты 2-9. Записанное в порт значение
сохраняется до тех пор, пока в порт не будет записано любое
другое значение. Считать с этого порта можно только последний
выведенный через него байт. То есть байт выведенный из PC, а не
состояние линий, подключенных к нему в данный момент.
Адрес &H379 предназначен для приема сигналов с
устройства, подключенного к этому порту именно в данный момент,
то есть, опрашивая порт &H379, можно узнать его состояние в
режиме реального времени.
Адрес &H37A служит для передачи сигналов к
устройству, подключенного к этому порту. Все сказанное для порта
с адресом &H378 справедливо и для этого порта.
Если в порту с адресом &H378 пользователь может
использовать все 8 бит, то в порту с адресом &H379 ему
предоставлены только 5 старших бит, а в порту с адресом &H37A
только 4 младших бита.
Суммируя все сказанное, получаем, что
пользователь имеет в своём распоряжении двенадцать выходов и
пять входов. При использовании различных внешних шифраторов и
дешифраторов эти числа можно увеличить многократно. Но так
как за все приходится платить, уменьшатся функциональные
возможности управления. Однако все зависит от конкретной задачи
и в некоторых случаях это не так важно.
Вот распайка разъема порта принтера и таблица
с описанием сигналов.
Последняя колонка таблицы требует некоторого пояснения.
"Да" означает, что сигнал инверсный (обратный). Что это такое?
Когда мы передаём данные, мы отправляем (программно) логическую единицу в тот
или иной бит порта. Для того, чтобы установить в единицу контакт 1 разъема,
(D0 порта 37A) мы должны записать в порт логический ноль. Контроллер
проинвертирует этот сигнал, т.е. изменит на противоположный (на лог.1)
и установит единицу на контакте 1 разъёма. Подали 0 получили 1,
подали 1 получили 0.
Аналогично для бита D7 входного порта 379.Если на этом входе присутствует
логический ноль, то при считывании данных из порта мы получим 1 в
бите D7 и наоборот.
Нога | Сигнал | Бит | Порт | Инверсия |
1 | Out | D0 | 37A | Да |
2 | Out | D0 | 378 | Нет |
3 | Out | D1 | 378 | Нет |
4 | Out | D2 | 378 | Нет |
5 | Out | D3 | 378 | Нет |
6 | Out | D4 | 378 | Нет |
7 | Out | D5 | 378 | Нет |
8 | Out | D6 | 378 | Нет |
9 | Out | D7 | 378 | Нет |
10 | In | D6 | 379 | Нет |
11 | In | D7 | 379 | Да |
12 | In | D5 | 379 | Нет |
13 | In | D4 | 379 | Нет |
14 | Out | D1 | 37A | Да |
15 | In | D3 | 379 | Нет |
16 | Out | D2 | 37A | Нет |
17 | Out | D3 | 37A | Да |
18-25 | GND | - | - | - |
Главная
Оглавление
Вперед