Часто в конференциях от радиолюбителей можно услышать вопрос:"Я сделал (хочу сделать) какое-то внешнее устройство и имею желание подключить его к компьютеру по СОМ порту, чтобы им как-то управлять, но не знаю как". СОМ порт более предпочтителен для таких экспериментов, так как у него выше, чем у LPT нагрузочная способность, и поэтому меньше шансов спалить порт.
Если у вас установлен Visual Basic и есть какие-то навыки программирования на нём, то наиболее простой, по-моему, путь- использовать компонент управления (контрол) MSComm Control, который вызывается Project->Components->и поставить галочку на MSComm Control. Далее необходимо поместить этот контрол на форме и написать код программы для него.
Сложность заключается в том, что приём-передача через СОМ порт требуют строгого соблюдения протокола RS-232, и не всем радиолюбителям под силу разработка контроллера, который бы этот протокол поддерживал. Между тем этот контрол MSComm позволяет считывать и управлять отдельными выводами СОМ порта и тем самым напрямую управлять какими-то внешними устройствами без формирования временных последовательностей RS-232 протокола.
В качестве примера такого внешнего устройства можно привести популярный программатор PonyProg (правда он написан не на VB, но принцип одинаковый). Если внимательно посмотреть на его схему, то видно, что в некоторых случаях (например, при программировании микросхем 24хх), главные информационные сигналы СОМ порта Rx (2) и Tx (3) не используются вообще. Весь обмен идет через вспомогательные выводы CTS(8), DSR (6), DTR (4), RTS (7) (хотя кое-где используется 3-й вывод Tx, об этом мы тоже поговорим).
Для того чтобы считать состояние вывода, достаточно на вход порта компьютера подать однополярные положительные сигналы и обойтись без преобразователей уровня TTL-RS232. Вообще-то это не соответствует стандарту RS-232, однако большинство портов с такими уровнями замечательно работают.
Итак, три вывода СОМ порта - CD, CTS, DSR можно опросить. Команда, которая позволяет считать состояние например вывода CTS (8), выглядит примерно так:
If MSComm1.CTSHolding = False Then (1)
или
If MSComm1.CTSHolding = True Then (2).
То есть этой командой мы опрашиваем 0 или 1 присутствует на выводе CTS.
На два вывода СОМ порта - DTR и RTS можно вывести (+12В) или (-12В), и тем самым зажечь светодиод, включить реле или какой-то другой исполнительный механизм. Например, для вывода RTS, это команды:
MSComm1.RTSEnable = False (3) выводит на 7 ножку +12Вольт.
MSComm1.RTSEnable = True (4) выводит на 7 ножку -12Вольт.
http://www.schemz.narod.ru/COMdevice.htmДаже программа для дрыганья есть
http://www.schemz.narod.ru/images/shift.rar