| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Работа с LPT портом |
| Автор: Pilgrim 2.4.2004, 15:19 |
| Люди, помогите!!! Спаял железяку, требуется управлять ею через LPT. Есть два входа, два выхода. Т.е. включить - выключить и проверить состояние. Весь инет перерыл (а может и нет |
| Автор: December 3.4.2004, 00:08 |
| Какая операционка? |
| Автор: dm9 3.4.2004, 01:57 | ||
| Вам, как я понял, нужны простейшие манипуляции, то есть нулевого режима (установлен по умолчанию) вполне хватит. Здесь всё просто: LPT-порту выделено 4 байта с адресами, начинающимися, например, с 278h или 378h. Четвёртый управляющий - он Вам не понадобится. Первый - третий байты в нулевом режиме работают так: что туда напишете, то появится на конкатах (единичка - +5В), что будет подаваться на контакты, то и считаете (тут надо учитывать, что запрограмировать отдельные биты на ввод/вывод не удастся - побайтно или по 4 бита только - см. статью по ссылке ниже). Распиновка (http://www.pda.com.ua/card/c2.gif): ![]() Битам байта 278h или 378h соответсвуют 2-9 контакты. Туда и присоединяйтесь для записи. А для чтения можно, например, к BUSY или ACK и читайте 7 и 6 биты соотвественно байта (адрес_порта + 1). Простейшая программа на Borland Pascal для работы с Вашим устройством будет выглядеть так:
Статьи "Как узнать адрес 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 - нет потенциала. И ещё. Я это на практике, признаться, не применял (то есть устройства никакие сам не делал), хотя в теории кое-что приходилось читать/слушать и даже писать простенькие программки для работы с внешним оборудованием. Так что если что напутаю - не обижайтесь Кстати, с COM-портом работать гораздо сложнее, чем с LPT... Если, конечно, всё писать самому. |
| Автор: December 3.4.2004, 04:36 | ||||
Совсем неправда. Побитно - сколько угодно. Смотреть также сюда: http://forum.vingrad.ru/index.php?showtopic=18210 Напоследок - напрямую с портом работать можно только под W9X/Me. Ну и ДОС, ессно. |
| Автор: Pilgrim 3.4.2004, 06:06 |
| Прошу прощения, забыл уточнить: Операционка XP, но может быть и 98, среда - Delphi6, порт двунаправленный EPP. Два выхода и два входа, оба сидят на контактах данных LPT. |
| Автор: dm9 5.4.2004, 09:42 |
| December, знаю, что можно побитно, но это немного сложнее... Pilgrim, что значит, что "оба сидят на контактах данных LPT"? На D0-D7, в смысле? Не понимаю... |
| Автор: Pilgrim 5.4.2004, 10:21 |
| dm9 , да, конечно. |
| Автор: Darksquall 5.4.2004, 11:18 |
| Когда то писал прогу для работы с COM и LPT правда она представляет все в 10й системе.Но может пригодиться.Можешь читать и писать в порты. Качать здесь: www.darklibr.narod.ru/ports.rar |
| Автор: Pilgrim 5.4.2004, 12:50 |
| Darksquall спасибо, но этот вариант на XP не работает |
| Автор: p0s0l 5.4.2004, 13:08 |
| Pilgrim, вполне могут тебе помочь под XP: CreateFile('LPT1', ...); Смотри статью в FAQе: http://forum.vingrad.ru/index.php?showtopic=1950&hl=%EF%EE%F0%F2 |
| Автор: Pilgrim 5.4.2004, 13:34 |
| p0s0l спасибо. Буду пробовать. |
| Автор: PILOT 16.1.2006, 23:49 | ||||
Если порт неработающий или работающий под нагрузкой, то да. Иначе +5Вольт. СУВ. |
| Автор: Bog d`An 17.1.2006, 06:00 |
| Я нашел информацию по вопросу и исходники http://pccontrol.bib.com.ua/XpCoding/Shablon_XP.html также есть скомпилированная тестовая программа(скрин прилагается). зы: девайс отлично работает... зыы: Да, действительно 4.7в... ставь что-нить буферное... хотя смотря что тебе надо... зыыы: Питание девайса взял с компа - отрезал от кулера 4-х пиновый разъем, переставил провод с +12 на +5 и кинул на неиспользуемые провода в кабеле (соеденил в вилке лпт), через дырку протащил внутрь корпуса - вуаля! |