Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Другая жизнь LPT порта. Часть 1. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Компьютеры

Комментарии к статье Комментарии к статье

Не ожидал, что моя первая статья (azbukavb.narod.ru/teorie/LPT.htm) вызовет такой интерес среди программистов и электронщиков, т.к. я получил массу писем с вопросами и продолжаю их получать до сих пор, хотя прошло уже почти три года с момента написания статьи. Кроме того в первой статье был допущен ряд неточностей. Это все и побудило меня на написание более подробной статьи на эту тему, в которой я постараюсь ответить на большинство вопросов уважаемых читателей и исправить те неточности, которые были допущены в первой статье. Пусть не обижаются на меня читатели первой статьи, но мы снова рассмотрим подробно каждый контактик и битик нашего LPT порта. В первой части статьи будет рассмотрена теория, во второй и последующих (если они будут) мы будем рассматривать электронные устройства, которые можно "подцепить" к этому порту.

Ø В тексте вы встретитесь с общепринятой аббревиатурой записывания чисел.

Ø Например, 10102 - двойка в нижнем индексе указывает, что число 5 представлено в двоичном исчислении,

Ø 12410 - десятка в нижнем индексе, говорит о том, что число 124 десятичное.

Это так… на всякий случай

Как показала практика, все программы, правильно написанные и дополненные соответствующими библиотеками (vbio32.dll, inpout32.dll, dlportio.dll и т.д.) работают на большинстве компьютеров с операционными системами семейства Windows. Я проверял работу всех своих программ (Visual Basic5.0, 6.0) на Win95, 98, Me, 2000, XP HE, XP Prof и даже в DOS6.22 (QBasic) - все работает прекрасно. В DOS-е вообще никаких библиотек не надо, там все и так работает. Сразу оговорюсь, что vbio32.dll и inpout32.dll НЕ БУДУТ РАБОТАТЬ ПОД Win2000, но совершенно спокойно будут работать под Win95, 98, Me.

Кстати, взять любую из этих библиотек вы можете на sano2000.narod.ru/index.html. Мне захотелось попробовать dlportio.dll и в данный момент я работаю с этой библиотекой. Ну и последнее, перед написанием программ необходимо правильно объявить библиотеку, которую вы используете.

Ø Для inpout32.dll

Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Ø Для dlportio.dll

Private Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte

Private Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte)

Чем отличается Private от Public я писать не буду.

Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3). В данной статье мы будем рассматривать только LPT1. Адресное пространство данного порта занимает диапазон &H378-&H37F.

· Адрес &H378 называется базовым и служит для записи (чтения, но об этом попозже) данных в порт, на линии D0-D7.

· Адрес &H379 (базовый+1) предназначен для чтения битов состояния с устройства, подключенного к LPT-порту (принтер, сканер и т.д)

· Адрес &H37A (базовый+2) служит для записи битов управления устройства, подключенного к LPT-порту (принтер, сканер и т.д.).

На приведенных ниже таблицах "расшифрованы" контакты и сигналы каждого из адресов

Другая жизнь LPT порта

Другая жизнь LPT порта

Другая жизнь LPT порта

Контакты 18-25 - "земля" (общий, GND, GROUND и т.д.)

Рассмотрим программирование каждого из адресов.

· Базовый адрес &H378 (LPT1) позволяет записывать данные в порт на линии D0-D7 в диапазоне от 0 до 255.

· Записываем в порт число 69
Код следующий. Для тех, кто использует
inpout32.dll dlportio.dll DOS
Out &H378, 69 DlPortWritePortUchar &H378, 69 OUT &H378, 69

*********************************************************************************************************

· Адрес &H379 служит для чтения битов состояния.

· Читаем состояние порта по адресу &H379

Ø  При чтении адреса &H379 необходимо помнить, что первые три бита - не используются и всегда имеют значение лог. "1", а 7-й бит - инверсный. В результате если все контакты 15, 13, 12, 10, 11 посадить на "землю", то при чтении информации вы получите на первых трех битах (которые не используются) 1+2+4 и на 7-м бите (контакт 11-инверсный, значит, при замыкании на землю будет лог. "1") +128 итого 135. Об этом не надо забывать. Во второй части статьи мы остановимся на этом более подробно.
Код следующий. Для тех, кто использует
inpout32.dll dlportio.dll DOS
Dim A as Integer A = Inp(&H379) Dim A as Integer DlPortReadPortUchar(&H379) DEFINT A-ZA=INP(&H379)

*********************************************************************************************************

· Адрес &H37A служит для записи битов управления.

· Записываем сигнал -STROBE (бит управления 0)
Код следующий. Для тех, кто использует
inpout32.dll dlportio.dll DOS
Out &H37A, 10 DlPortWritePortUchar &H37A, 10 OUT &H37A, 10

Почему 10? Давайте посмотрим в табличку.
(-StrOBE) 20 (-AUTO) 21 (INIT) 22 (-SELECT IN) 23 (Сигналы) биты
Контакт 1 Контакт 14 Контакт 16 Контакт 17  
0 1 0 1 01012
0 2 0 8 0+2+0+8=10

Сигналы STROBE, AUTO, SELECT IN - инверсные, значит, чтобы на выходе контактов разъема 1, 14, 17 получить логическую "1" надо подать на эти биты логический "0", т.е. подали одно - получили противоположное. Сигнал INIT прямой (не инверсный), поэтому логическая "1" на контакте 16 появится тогда, когда мы подадим на этот бит логическую "1", т.е. что подали, то и получили.

Попытаемся получить на контактах 1,17 - низкий уровень сигнала "0", а на контактах 14 и 16 высокий уровень сигнала "1", т.е. на выходе контактов 1,14,16,17 будет присутствовать 0 1 1 0 (610).

На нулевой бит (-STROBE) подаем "1" (на контакте 1 будет "0"), на первый бит (-AUTO) подаем "0" (на контакте 14 будет "1"), на второй бит (INIT) подаем "1" (на контакте 1 будет "1") и, наконец, на третий бит (-SELECT IN) подаем "1" (на контакте 17 будет "0"), т.е. мы записали по адресу &H37A число 10112,-это 1310. Значит, чтобы на выходе получить 6 надо подать 13.

Для удобства привожу таблицу со всеми возможными комбинациями чисел от 0 до 15

Подаваемый сигнал Получаемый сигнал
Десятичное число (-StrOBE) 20 (-AUTO) 21 (INIT) 22 (-SELECT IN) 23 контакт 1 контакт 14 контакт 16 контакт 17 Десятичное число
  1 2 4 8 1 2 4 8  
0 0 0 0 0 1 1 0 1 11
1 1 0 0 0 0 1 0 1 10
2 0 1 0 0 1 0 0 1 9
3 1 1 0 0 0 0 0 1 8
4 0 0 1 0 1 1 1 1 15
5 1 0 1 0 0 1 1 1 14
6 0 1 1 0 1 0 1 1 13
7 1 1 1 0 0 0 1 1 12
8 0 0 0 1 1 1 0 0 3
9 1 0 0 1 0 1 0 0 2
10 0 1 0 1 1 0 0 0 1
11 1 1 0 1 0 0 0 0 0
12 0 0 1 1 1 1 1 0 7
13 1 0 1 1 0 1 1 0 6
14 0 1 1 1 1 0 1 0 5
15 1 1 1 1 0 0 1 0 4

Ну и, наконец, последнее в этой части статьи. Если ваш компьютер поддерживает стандарт EPP, то четвертым битом по адресу &H37A вы сможете разрешить прерывание (для LPT1 это IRQ7) от принтера, только не спрашивайте меня что это такое, я все равно ничего не знаю про прерывания. А вот пятым битом 1101012, например, подав число 4310, вы устанавливаете шину D0-D7 в режим ПРИЕМА данных. При этом все разряды (контакты 2-9) принимают значение логической "1". Чтобы подать на нужный контакт логический "0" надо замкнуть его через сопротивление 240 - 360 Ом на "землю". Таким образом, через LPT порт компьютера мы получаем в стандартном виде устройство с 12-ю выходными сигналами и 5-ю входными, а при переводе порта в режим EPP мы получаем 4 выходных сигнала и 13 входных сигналов.

Режим SPP (12 выходов и 5 входов)   Режим EPP (4 входа и 13 выходов)
Сигнал Направление   Сигнал Направление
D0 Выход   D0 Вход
D1 Выход   D1 Вход
D2 Выход   D2 Вход
D3 Выход   D3 Вход
D4 Выход   D4 Вход
D5 Выход   D5 Вход
D6 Выход   D6 Вход
D7 Выход   D7 Вход
ERROR Вход   ERROR Вход
SELECT Вход   SELECT Вход
PAPER END Вход   PAPER END Вход
ACK Вход   ACK Вход
-BUSY Вход   -BUSY Вход
-StrOBE Выход   -StrOBE Выход
-AUTO Выход   -AUTO Выход
INIT Выход   INIT Выход
-SELECT IN Выход   -SELECT IN Выход

Автор: Клюшников Алексей, г. Иваново; Публикация: cxem.net

Смотрите другие статьи раздела Компьютеры.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Происхождение изображений ИИ становится все труднее установить 06.09.2026

Генеративный искусственный интеллект способен создавать изображения, в которых угадываются особенности определенных художественных стилей, однако установить источник конкретного визуального элемента оказывается значительно сложнее. Исследование специалистов лаборатории MIT CSAIL показывает, что по мере увеличения обучающего набора данных надежно определить, какое именно изображение повлияло на результат работы модели, становится практически невозможно. Чтобы изучить эту проблему, исследователи создали около двух десятков собственных диффузионных моделей и обучили их на наборах, содержащих от нескольких сотен до сотен тысяч изображений. В экспериментах использовались фотографии лиц, а также произведения различных художников. Независимо от размера и состава наборов данных ученые наблюдали одну закономерность: чем больше изображений использовалось для обучения, тем труднее становилось определить вклад отдельной работы в последующий результат. Это явление авторы назвали "утратой атрибуц ...>>

Часы Casio G-Shock GBX-H5600KI-5 06.09.2026

Casio представила новую модель часов G-Shock GBX-H5600KI-5, которая сочетает характерную для серии механическую прочность с возможностями, свойственными современным спортивным часам. Новинка создана на базе G-LIDE GBX-H5600 в сотрудничестве с профессиональным серфером Каноа Игараси. Часы оснащены оптическим датчиком сердечного ритма и акселерометром, а обработку собранных данных обеспечивают алгоритмы Polar. Благодаря этому устройство способно оценивать тренировочную нагрузку, восстановление во время сна и другие спортивные показатели. Кроме того, часы определяют уровень насыщения крови кислородом, хотя Casio отдельно подчеркивает, что данная функция не предназначена для медицинской диагностики. Важной особенностью GBX-H5600KI-5 остается продолжительное время автономной работы. При активном использовании пульсометра и спортивных функций часы способны работать около 35 часов, тогда как в обычном режиме без постоянного измерения пульса этот показатель достигает примерно одного меся ...>>

Краски из природных кристаллов дают яркий цвет без токсичных пигментов 05.09.2026

Яркие цвета окружают человека повсюду - от лакокрасочных покрытий и тканей до косметики и декоративных материалов. Однако многие привычные красители постепенно разрушаются под воздействием солнечного света, из-за чего поверхность теряет первоначальную насыщенность. Кроме того, некоторые синтетические пигменты содержат токсичные соединения и тяжелые металлы. Исследователи Северо-Восточного университета предложили альтернативный подход, вдохновленный природой, где насыщенные и устойчивые цвета формируются не за счет химических красителей, а благодаря микроскопической структуре материала. Именно такой механизм отвечает за характерное сияние опалов, переливы павлиньих перьев и яркие оттенки крыльев некоторых бабочек. В данном случае цвет возникает не потому, что вещество поглощает определенные длины волн света, а благодаря взаимодействию света с особым расположением мельчайших кристаллов. Они преломляют и отражают свет, вызывая интерференционные эффекты, в результате чего формируются на ...>>

Случайная новость из Архива

Умная ткань MXene 18.12.2020

Специалисты по материальному инжинирингу из Университета Дрекселя представили ткань с крайне высоким уровнем отражения электромагнитных волн, которая, в числе прочего, также позволяет отражать определенные длины радиационных волн.

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

Новая ткань представляет собой нечто вроде проводящей электричество ткани для одежды, однако электричество в ней не проходит "навылет", а сохраняется в качестве активного компонента и элемента дальнейшего отражения электромагнитных волн.

С учетом того, что многие подобные разработки так или иначе ранее были представлены со стороны многих других компаний, становится понятно, что MXene обладает весьма интересным характером - просто потому, что она предлагает значительно более широкий функционал и ареал возможностей в сравнении с альтернативными вариантами проводящих тканей. Как заявил руководитель научного проекта, Юрий Гогоци, данная умная ткань MXene обладает действительно многообещающим характером отражения не только большей части электромагнитных волн, но также некоторой части радиации, что автоматически делает ее полезной и для военных нужд.

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

Другие интересные новости:

▪ Игровой монитор Viewsonic VX2759-4K-PRO

▪ Солнечные панели LG NeON R и NeON R Prime

▪ Планшеты Dell Venue 7 и Venue 8 на базе Android

▪ Датчик изображения ON Semiconductor AR0221

▪ Хранение газа внутри угля

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта История техники, технологии, предметов вокруг нас. Подборка статей

▪ статья Критика - легка, искусство - трудно. Крылатое выражение

▪ статья Чем закончилась дуэль между двумя англичанами, один из которых явился на нее голым? Подробный ответ

▪ статья Водитель специального автомобиля для перевозки СУГ. Типовая инструкция по охране труда

▪ статья Оптические шины и разъемы для автомобилей. Энциклопедия радиоэлектроники и электротехники

▪ статья УКВ блок (144, 430 МГц). Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026