![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с 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 лампочки.