Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

работа с LPT портом [WinXP]


Serge KV ©   (2005-05-11 01:39:00) 

Мне нужно подсвечивать 10 лампочек, подключенных к LPT порту. Насколько я понимаю, 8 из них можно без проблем подсвечивать через контакты шины данных с помощью функции WriteFile. Вопрос -  что делать с остальными двумя, к каким контактам их лучше подключить и как проще всего управлять напряжением на этих контактах?

Если можно с примером...
Спасибо


KilkennyCat   (2005-05-13 17:50:00) [1]


> [8] Serge KV   (12.05.05 20:24)


А как Вы устанавливаете сигналы на шине данных? точно также и на управляющих, только адрес со смещением. Если ADDR - регистр данных, то ADDR+1 - регистр состояния, ADDR + 2 - регистр управления, который Вам и нужен.
По битам они (управляющие) в перечисленном порядке.
сигнал     бит
___________________
STROBE     0
AUTO FD    1
INIT          2
SLCT IN     3


Serge KV   (2005-05-13 01:29:00) [2]

?


debuger   (2005-05-12 21:02:00) [3]

:)


Serge KV   (2005-05-12 20:24:00) [4]

Всем спасибо... но остался один вопрос -
как с помощью WinAPI устанавливать 0 или 1 на контакты:
STROBE
AUTO FD
INIT
SLCT IN

?


shein   (2005-05-11 17:02:00) [5]

Tesla  дело говорит. порт нагружать нельзя. В крайнем случае можно использовать маломощные светодиоды, есть такие, что уже при 3мА нормально видны. Ес-но не забыть последовательно включить резисторы.
Доступ к управлению линиями LPT порта через порты ввода вывода $378-$37A или $278-$27A (это для LPT1 и LPT2 по умолчанию. В BIOS они могут быть изменены)
http://www.csu.ru/faculties/phys/maelab/_frames/_lpt_1.htm
Запись байта данных в порт приводит к появлению соответствующей комбинации сигналов на выводах.
Для работы с портами ввода/вывода в Turbo Pascal использовался массив portb[адрес] и portw[адрес] Для Delphi это тоже работает в Вин98, хотя не всегда. Надо искать соответствующие компоненты. Например DLPortIO когда-то лежал на этом сайте


Tesla   (2005-05-11 12:42:00) [6]


> Serge KV   (11.05.05 11:24) [4]
> и что значит "INIT только прямой"?

т.е. программно на INIT ставишь 1 - получаешь на ножке порта INIT логическую еденицу, ставишь 0 - логический нуль. Для инверсных всё наоборот.


Tesla   (2005-05-11 12:38:00) [7]


> Serge KV   (11.05.05 01:39)

Ты лампочки собираешься напрямую на порт навесить? У LPT порта нагрузочная способность 20 мА для старых мамок и порядка 5 мА для новых - у тебя имно или лампочки гореть не будут или порт спалишь. KilkennyCat дело говорит.


Serge KV   (2005-05-11 11:24:00) [8]

и что значит "INIT только прямой"?


Serge KV   (2005-05-11 11:23:00) [9]

STROBE
AUTO FD
INIT
SLCT IN

Тогда как установить на этих контактах логическую единцу? (с помощью WinAPI)

КР1533ИР35 а что это такое?... мне желательно без дополнительных микросхем на порте..


KilkennyCat   (2005-05-11 02:37:00) [10]

КР1533ИР35 - очепятколся.


KilkennyCat   (2005-05-11 02:35:00) [11]

можно еще использовать следующие:
STROBE
AUTO FD
INIT
SLCT IN

причем, только INIT прямой.


> и как проще всего управлять напряжением на этих контактах?


Это очень неверно! Забудьте слово "напряжение" применительно к портам ввода-вывода (за исключением питания, как в USB). Есть логическая 1 и логический 0. Управлять лучше всего через регистры, например, КР1533ИР53. Без проблем сможете использовать 32 лампочки.


Наверх

Титульная страница Поиск, карта сайта Написать письмо