Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с LPT портом 
:(
    Опции темы
Pilgrim
  Дата 2.4.2004, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.4.2004

Репутация: нет
Всего: нет



Люди, помогите!!!
Спаял железяку, требуется управлять ею через LPT. Есть два входа, два выхода. Т.е. включить - выключить и проверить состояние. Весь инет перерыл (а может и нет smile.gif ), не могу найти описание кода (рабочего). С COM портом проблем нет. Вроде работает. Сам, к сожалению не могу написать, так как в программировании ну очень недавно bored.gif .
PM MAIL ICQ   Вверх
December
Дата 3.4.2004, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Какая операционка?


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
dm9
Дата 3.4.2004, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 1
Всего: 137



Вам, как я понял, нужны простейшие манипуляции, то есть нулевого режима (установлен по умолчанию) вполне хватит. Здесь всё просто: LPT-порту выделено 4 байта с адресами, начинающимися, например, с 278h или 378h. Четвёртый управляющий - он Вам не понадобится. Первый - третий байты в нулевом режиме работают так: что туда напишете, то появится на конкатах (единичка - +5В), что будет подаваться на контакты, то и считаете (тут надо учитывать, что запрограмировать отдельные биты на ввод/вывод не удастся - побайтно или по 4 бита только - см. статью по ссылке ниже).

Распиновка (http://www.pda.com.ua/card/c2.gif):
user posted image

Битам байта 278h или 378h соответсвуют 2-9 контакты. Туда и присоединяйтесь для записи. А для чтения можно, например, к BUSY или ACK и читайте 7 и 6 биты соотвественно байта (адрес_порта + 1).

Простейшая программа на Borland Pascal для работы с Вашим устройством будет выглядеть так:

Код

var x : Byte;
begin
...
Port[$378] := $FF; {Включили}
...
x := Port[$379] shr 7; {0 - включено, 1 - выключено}
...
Port[$378] := $00; {Выключили}
...
end.


Статьи
"Как узнать адрес LPT-порта?"
"Работа с последовательными портами"
есть в нашем FAQ:
http://forum.vingrad.ru/index.php?showtopic=15409

Как писать в порт / читать из него есть там же.

Рекомендую просмотреть следующие статьи, чтобы лучше понять, о чём я говорю.
http://www.pda.com.ua/card/4.html
http://electronics.org.ua/techinfo/lpt/p1_5.htm
http://compmus9.valuehost.ru/technlgy/i8255.htm

Не забудьте, что кое-какие биты инвертируются. То есть 0 - это +5В, а 1 - нет потенциала.

И ещё. Я это на практике, признаться, не применял (то есть устройства никакие сам не делал), хотя в теории кое-что приходилось читать/слушать и даже писать простенькие программки для работы с внешним оборудованием. Так что если что напутаю - не обижайтесь smile.gif

Кстати, с COM-портом работать гораздо сложнее, чем с LPT... Если, конечно, всё писать самому.

Это сообщение отредактировал(а) dm9 - 3.4.2004, 02:03
PM MAIL ICQ   Вверх
December
Дата 3.4.2004, 04:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Цитата
(единичка - +5В)
Слишком хорошо, чтобы быть правдой smile.gif От силы 4,7 вольт, чаще 4.
Цитата
учитывать, что запрограмировать отдельные биты на ввод/вывод не удастся - побайтно или по 4 бита только - см. статью по ссылке ниже).

Совсем неправда. Побитно - сколько угодно.
Смотреть также сюда:
http://forum.vingrad.ru/index.php?showtopic=18210

Напоследок - напрямую с портом работать можно только под W9X/Me. Ну и ДОС, ессно.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Pilgrim
Дата 3.4.2004, 06:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.4.2004

Репутация: нет
Всего: нет



Прошу прощения, забыл уточнить:
Операционка XP, но может быть и 98, среда - Delphi6, порт двунаправленный EPP.
Два выхода и два входа, оба сидят на контактах данных LPT.
PM MAIL ICQ   Вверх
dm9
Дата 5.4.2004, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 1
Всего: 137



December, знаю, что можно побитно, но это немного сложнее...

Pilgrim, что значит, что "оба сидят на контактах данных LPT"? На D0-D7, в смысле? Не понимаю...
PM MAIL ICQ   Вверх
Pilgrim
Дата 5.4.2004, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.4.2004

Репутация: нет
Всего: нет



dm9 , да, конечно.

PM MAIL ICQ   Вверх
Darksquall
Дата 5.4.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 22.1.2004
Где: Москва

Репутация: нет
Всего: 4



Когда то писал прогу для работы с COM и LPT правда она представляет все в 10й системе.Но может пригодиться.Можешь читать и писать в порты.

Качать здесь:

www.darklibr.narod.ru/ports.rar

Это сообщение отредактировал(а) Darksquall - 5.4.2004, 11:21


--------------------
PM WWW ICQ   Вверх
Pilgrim
Дата 5.4.2004, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.4.2004

Репутация: нет
Всего: нет



Darksquall спасибо, но этот вариант на XP не работаетsad.gif

PM MAIL ICQ   Вверх
p0s0l
Дата 5.4.2004, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 14
Всего: 112



Pilgrim, вполне могут тебе помочь под XP:
CreateFile('LPT1', ...);
Смотри статью в FAQе:
http://forum.vingrad.ru/index.php?showtopi...hl=%EF%EE%F0%F2


--------------------
С уважением, г-н Посол.
PM   Вверх
Pilgrim
Дата 5.4.2004, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.4.2004

Репутация: нет
Всего: нет



p0s0l спасибо. Буду пробовать.

PM MAIL ICQ   Вверх
PILOT
Дата 16.1.2006, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Цитата(December @ 3.4.2004, 01:36)
Цитата
(единичка - +5В)
Слишком хорошо, чтобы быть правдой smile От силы 4,7 вольт, чаще 4.

Если порт неработающий или работающий под нагрузкой, то да. Иначе +5Вольт.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Bog d`An
Дата 17.1.2006, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.3.2005
Где: Украина:Днепропет ровск

Репутация: нет
Всего: 3



Я нашел информацию по вопросу и исходники вот здесь
также есть скомпилированная тестовая программа(скрин прилагается).

зы: девайс отлично работает...
зыы: Да, действительно 4.7в... ставь что-нить буферное... хотя смотря что тебе надо...
зыыы: Питание девайса взял с компа - отрезал от кулера 4-х пиновый разъем, переставил провод с +12 на +5 и кинул на неиспользуемые провода в кабеле (соеденил в вилке лпт), через дырку протащил внутрь корпуса - вуаля!

Это сообщение отредактировал(а) Bog d`An - 17.1.2006, 06:13

Присоединённый файл ( Кол-во скачиваний: 50 )
Присоединённый файл  LPT.JPG 36,24 Kb
--------------------
Удача откроет двери даже там, где их нет.Генри Морган--------------------[Furry team][Agent`s team][СРУКер]   
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1325 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.