Имеется большое количество материала по управлению разнообразными устройствами по LPT. Хочется осуществить аналогичное по простоте схеме, изображённой на приложенном рисунке, только с обратным эффектом - при нажатии на кнопку, например, на определённую ножку LPT-порта поступить логическая "1".
Какой должен использоваться принцип и какова может быть его простейшая техническая реализация в "железе"?
Аппаратная реализация это кнопка на выводе LPT порта.
Нажимайте, а дальше програмно в компьютере это обрабатывайте.
Само собой опять же програмно скофигурируйте ваш порт в соответствии с вашими задачами.Он же после загрузки скофигурирован у вас как порт печати. Пойдет такая конфигурация, то пользуйтесь просто ей.
То есть фактически изменение состояния осуществляется за счёт замыкания/размыкания данного вывода с землёй? Наподобие http://azbukavb.narod.ru/teorie/LPT.html - 3-я схема. Это ясно, а в чём суть схем, что идут там дальше - с резистором? И на http://cxem.net/comp/comp88.php - просто подача +5 вольт от другого источника что-ли?
Можно для ввода использовать линии статуса по той же схеме, предложенной asteroid7 http://radiokot.ru/forum/download/file.php?id=41841. Или просто замыкать их кнопкой на землю, желательно через защитный резистор.
Для проверки читаем значение из аппаратного порта <Базовый адрес>+1 (только чтение). У порта есть один инвертированный статусный вход, который возвращает нуль, когда кнопка отпущена и на входе логическая 1 (точно как Вы просили). Это - /Busy (ножка 11 на разъеме DB25F на компьютере) Соответствует биту 7. Есть еще 4 неинвертированных входа, возвращающих биты 3-6, соответственно, Fault(ножка 15), Select(13), PaperEnd(12), Ack(10). Возвращают 1 когда на линии единица (кнопка отпущена). Биты 0-2 не используются (по идее 0, но могут быть и 1). Почему-то в одной статье нашел, что линия 10 тоже инвертирована, но у меня на машине это не так. Проверьте...
Преимущество использования статусных линий для ввода: все восемь линий данных к Вашим услугам и их можно использовать для управления устройствами.
Недостаток - драйвер ОС может перехватить изменение состояния статусных линий и начать переключать значения линий управления (1, 14, 16, 17), а также, линии данных. В таком случае, если нет LPT-принтеров, стоит отключить драйвер (в Windows, например, через диспетчер устройств) и проверить реакцию.
Какие часы лучше, идущие или стоящие? Конечно стоящие!
Стоящие часы показывают абсолютно точное время аж 2 раза в сутки, а идущие - никогда.
asteroid7 писал(а):Подключать можно на любой порт D0...D7. При чтении "1" не нажата и "0" кнопка нажата.
Только это будет работать в Bi-directional портах, которые есть не на всех мамках, в остальных D0..D7-только выходы. Ввод гарантировано, на всех мамах, можно получить только по линиям статуса. Их всего 5 - ack, busy, paper out, error, select.