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

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

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

<< Назад

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

Расставание действительно может причинять физическую боль 16.09.2026

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

Научно доказана невозможность создания нейтринного лазера 16.09.2026

Лазер давно перестал быть исключительно лабораторной технологией: сегодня он используется в связи, медицине, промышленности и научных исследованиях. Поэтому физики периодически предлагают необычные варианты устройств, способных работать по аналогичным принципам, но с другими типами частиц. В 2025 году появилась идея создать лазер, формирующий направленный поток нейтрино. Однако последующий теоретический анализ показал, что привлекательная на первый взгляд концепция сталкивается не просто с техническими трудностями, а с фундаментальными законами квантовой физики. Первоначальную концепцию предложили профессор Массачусетского технологического института (MIT) Джо Формаджио (Joe Formaggio) и Бен Джонс (Ben Jones) из Техасского университета в Арлингтоне. Согласно их замыслу, облако радиоактивных атомов следовало охладить до сверхнизких температур порядка нанокельвинов - миллиардных долей кельвина. В таких условиях атомы могли бы сформировать Бозе - Эйнштейновский конденсат, особое квантов ...>>

Индекс нижнего белья раскрыл состояние швейцарских почв 15.09.2026

Почва кажется обычной частью окружающего нас ландшафта, однако под ее поверхностью существует сложная экосистема, от состояния которой напрямую зависит жизнь человека. Миллиарды микроорганизмов, черви, грибы и другие обитатели почвы перерабатывают органические вещества и участвуют в круговороте питательных элементов. Чтобы привлечь внимание общества к этой мало заметной проблеме, исследователи из Цюрихского университета придумали весьма необычный эксперимент: они закопали более 2000 пар хлопкового нижнего белья в садах, на лугах, полях и газонах по всей Швейцарии. Проект получил название "Доказательство в виде нижнего белья" и представлял собой не массовую шутку, а научный эксперимент, позволяющий наглядно оценить биологическую активность почвы. Исследователи помещали хлопковые изделия в землю, а примерно через два месяца извлекали их и сравнивали степень разрушения ткани. Некоторые образцы за это время практически исчезали, оставляя лишь отдельные фрагменты швов, тогда как на други ...>>

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

Новая геотермальная технология Fervo Energy 19.07.2023

Компания Fervo Energy завершила успешные испытания своей геотермальной скважины в Неваде, производя 3,5 МВт электроэнергии в течение 30 дней.

Геотермальная энергетика основана на использовании тепла из горячих источников, таких как термальные подземные воды. Однако для достижения устойчивой геотермальной системы требуется сочетание тепла, жидкости и проницаемости горных пород. Fervo Energy разработала инновационный подход, создавая искусственные скважины и наполняя их водой, которая нагревается землей. Затем специальная турбина преобразует полученное тепло в электричество.

В ходе испытаний компания достигла скорости потока воды в 62 литра в секунду, обеспечивая производство 3,5 МВт электроэнергии (что может питать примерно 750 домов на одновременной основе). Полученные данные о потоке и выходной мощности будут использоваться для дальнейшего совершенствования геотермальных систем.

В текущем году Fervo планирует подключить свою скважину Project Red к электросети, чтобы обеспечивать энергией центры обработки данных Google и другую инфраструктуру в рамках соглашения, заключенного в 2021 году.

Это первое коммерческое применение геотермальной технологии, которое демонстрирует потенциал этой энергетической системы, к чему ученые стремились с 1970-х годов.

Fervo успешно пробурила несколько горизонтальных скважин для коммерческого производства геотермальной энергии, достигнув почти километровой горизонтальной длины и температуры 191 °C. Тщательные испытания и мониторинг подтвердили управляемость процесса.

Преимущества геотермальных электростанций включают отсутствие выбросов углерода (Google стремится к использованию только безуглеродной энергии в своих офисах и центрах обработки данных до 2030 года) и возможность работать круглосуточно (в отличие от солнечной и ветровой энергии). Однако сокращение затрат и регулятивные преграды осложняют более широкое внедрение этой технологии, по словам генерального директора Fervo, Тима Латимера.

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

▪ Голосовое управление кондиционерами LG

▪ Есть насекомых полезно для здоровья

▪ Зеленая энергетика вызовет кризис редких металлов

▪ Новые данные об атмосфере Солнца

▪ Новая модель искусственного интеллекта размышляет как доктор наук

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

 

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

▪ раздел сайта Аудио и видеонаблюдение. Подборка статей

▪ статья Вертер и Шарлотта. Крылатое выражение

▪ статья Кто виноват в исчезновении семи миллионов американских детей одним днем 1987 года? Подробный ответ

▪ статья Эксплуатация объектов поддержания пластового давления и повышения нефтеотдачи пластов. Типовая инструкция по охране труда

▪ статья Управление электромагнитным клапаном. Энциклопедия радиоэлектроники и электротехники

▪ статья Чудо-кувшин. Секрет фокуса

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

Имя:


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


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





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

www.diagram.com.ua

www.diagram.com.ua
2000-2026