Свежие обсуждения
Компьютеры

Управление ~220В посредством LPT порта компьютера

1 5

Замечание по схеме Сигнал с LPT надо подавать на микросхему буфера (например ULN2003), эта микросхема может управлять нагрузкой до 0,5 А в том числе и индуктивной (например реле или шаговые двигатели).

 

Когда я практиковался в ассемблере для ДОС (точнее, для процессора 8086), там всегда между командой записи в порт и командой считывания из порта вставлялась искусственная задержка (уже забыватьстал - вроде как командой перехода на следующую строку - она сама по себе вроде ничего не делает, но приводит к сбросу очереди команд процессора, что и вызывает задержку).

 

Даже вот так

sh_k proc

push dx
mov dx,lpt_dat
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
out dx,al
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
jmp $+2
pop dx
ret

sh_k endp

 

Арс: Вполне возможно доступ открывается всем
Вот более детально поразбирался (экспериментально):
При работе "напрямую" из-под ХР -
1. Регистр данных записывается, выходы отрабатывают.
2. Регистр данных читается. Считанная информация не соответствует действительности.
3. Обращение к регистру управления приводит к зависанию программы.
4. При считывании регистра статуса (только тех битов, которые выведены на разъем) - бит SR5 (Paper End) прыгает самопроизвольно как ему вздумается, остальные 4 реально отражают состояние линий.
Пробовал на 3 разных машинах.
Да - порт должен быть родным, а не на PCI-карте. Возможно и он бы прокатил, если к нему поставить ДОС-дрова (не попробовал). Программа-то у меня ДОСовская...

 

Нашёл аналогичную программу + цветомузыка. Под 7-й виндой х64 работает: http://mavius.narod.ru/projects/msvc/wndlpt/

 
1 5