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

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

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

<< Назад

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

Хорошо управляемые луга могут компенсировать выбросы от скота 15.02.2026

Животноводство, особенно разведение крупного рогатого скота, часто обвиняют в значительном вкладе в глобальное потепление из-за мощного парникового газа - метана, который выделяется при пищеварении у жвачных животных. Это вызывает острые политические споры и призывы к сокращению потребления мяса. Однако ученые напоминают, что полная картина климатического воздействия отрасли не ограничивается только выбросами от животных: огромную роль играет окружающая экосистема - пастбища, почва и растительность, которые способны активно поглощать углекислый газ из атмосферы. Исследователи из Университета Небраски-Линкольна решили глубже изучить этот баланс. Группа под руководством профессора Галена Эриксона сосредоточилась на том, как правильно организованные пастбища накапливают углерод в растениях и грунте благодаря естественным процессам, стимулируемым выпасом скота. Ученые подчеркивают, что при достаточном уровне осадков и грамотном управлении такие луга превращаются в мощные природные погло ...>>

NASA тестирует инновационную технологию крыла 15.02.2026

Коммерческая авиация ежегодно расходует колоссальные объемы керосина, что сказывается не только на бюджете авиакомпаний, но и на состоянии окружающей среды. В 2024 году глобальные затраты на авиационное топливо достигли 291 миллиарда долларов, и эта сумма продолжает расти. Чтобы справиться с этими вызовами, NASA активно работает над технологиями, способными заметно повысить аэродинамическую эффективность самолетов. Одним из самых перспективных направлений стало создание специальной конструкции крыла, которая максимизирует естественный ламинарный поток воздуха и минимизирует сопротивление. В январе 2026 года специалисты NASA Armstrong Flight Research Center успешно провели важный этап наземных испытаний концепции Crossflow Attenuated Natural Laminar Flow (CATNLF). Для эксперимента под фюзеляж исследовательского самолета F-15B закрепили вертикально ориентированную масштабную модель высотой около 0,9 м (3 фута), напоминающую узкий киль. Такая компоновка позволила подвергнуть прототип р ...>>

Забота о внуках очень полезна для здоровья мозга 14.02.2026

Общение между поколениями приносит радость всей семье, но мало кто задумывается, насколько активно бабушки и дедушки, заботящиеся о внуках, поддерживают свою умственную форму. Регулярное взаимодействие с детьми стимулирует мозг пожилых людей, помогая сохранять память, скорость мышления и общую когнитивную активность. Новые научные данные подтверждают, что такая добровольная помощь не только важна для общества, но и может замедлять возрастные изменения в мозге. Исследователи из Тилбургского университета в Нидерландах провели анализ, чтобы понять, приносит ли уход за внуками реальную пользу здоровью пожилых людей. Ведущий автор работы Флавия Черечес отметила, что многие бабушки и дедушки регулярно присматривают за детьми, и оставался открытым вопрос, насколько это положительно сказывается на их собственном благополучии, особенно в плане когнитивных функций. Ученые поставили цель выяснить, способен ли регулярный уход за внуками замедлить снижение памяти и других умственных способ ...>>

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

Бюджетные микроконтроллеры Microchip PIC16F152 11.10.2020

Мировой лидер по производству 8-битных контроллеров - компания Microchip - выпустила новую серию контроллеров, основанных на архитектуре PIC.

PIC16F152 - семейство контроллеров общего назначения, разработанное для снижения цены различных датчиков, счетчиков и устройств управления реального времени. Семейство насчитывает 14 устройств с диапазоном памяти от 3,5 до 28 кбайт в корпусах от 8 до 44 выводов.

Для снижения стоимости устройств набор периферии был упрощен и включает в себя только самые необходимые модули: 10-битный АЦП, один 8-ми битный и два 16-битных таймера, два 10-битных модуля ШИМ, один приемопередатчик USART и один комбинированный модуль SPI/I2C. Для увеличения гибкости применена технология Peripheral Pin Select (PPS), позволяющая переназначать выводы, используемые периферией.

Для оценки возможностей серии Microchip не предусмотрел специализированной отладочной платы и предлагает воспользоваться универсальными отладками для контроллеров PIC в корпусах PDIP - Curiosity Development Board для устройств в корпусе PDIP-20 и Curiosity High Pin Count (HPC) Development Board для устройств в корпусе PDIP-40.

Характеристики микроконтроллеров PIC16F152:

Частота работы до 32 MГц
До 28 КБ Flash-памяти, до 2 КБ SRAM
10-битный АЦП, до 28 каналов
Модуль формирования опорного напряжения
Два 10-битных модуля ШИМ
Возможность переназначить контакты периферии - Peripheral Pin Select (PPS)
Возможность создания разделов Flash-памяти - Memory Access Partition (MAP)
Область хранения идентификатора устройства - Device Information Area (DIA)
Последовательные интерфейсы: 1 x USART, 1 x SPI, 1x I2C
До 36-ти портов ввода/вывода общего назначения
Микроконтроллеры доступны в корпусах:
8 выводов (SOIC и DFN)
14 выводов (SOIС и TSSOP)
16 выводов (VQFN)
20 выводов (PDIP, SOIC, SSOP и VQFN)
28 выводов (SSOP, SOIC и VQFN)
40 выводов (PDIP и VQFN)
44 вывода (TQFP)
Диапазон питающего напряжения от 1,8 до 5,5 В
Температурный диапазон функционирования от -40 до 125°C.

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

▪ Цитрусовые волокна как экологичная альтернатива яйцам и маслу

▪ ИИ-алгоритм победил настоящего пилота

▪ Умный велосипед Dubike от Baidu

▪ Беспроводной микроконтроллер STM32WLE4CC

▪ Зубная паста из крабов

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

 

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

▪ раздел сайта Видеотехника. Подборка статей

▪ статья Микрофоны. Справочник

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

▪ статья Калькулятор (в предприятиях торговли и заведениях питания). Должностная инструкция

▪ статья Усилитель низкой частоты на микросхеме LA4550. Энциклопедия радиоэлектроники и электротехники

▪ статья Микромощный стабилизированный преобразователь напряжения. Энциклопедия радиоэлектроники и электротехники

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

Имя:


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


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





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

www.diagram.com.ua

www.diagram.com.ua
2000-2026