Устройство от COM порта

Тема в разделе "WASM.ELECTRONICS", создана пользователем maxtor, 9 июн 2009.

  1. maxtor

    maxtor New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    4
    Задача такая:

    необходимо запитать от сом порта реле, оптопару и т.п. и включать/выключать командой mode из коммандной строки дос.

    Возможно такое?

    С LPT проще, изучено.
     
  2. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Тема уже поднималась. Поищи по форуму.
    Там ток макс. 20 мА на линию. Может и не хватить.
     
  3. maxtor

    maxtor New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    4
    Понятно.

    Помогите вот с каким вопросом:
    нужна простая программа из нескольких строчек,
    на С++ или делфи.

    запускаем - включает 1 контакт LPT порта - пауза пара сек - выключает - выход.

    Все.

    Если кому не трудно...

    Спасибо
     
  4. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    maxtor
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap :none
    4.  
    5. include windows.inc
    6. include InpOut32.inc
    7. include kernel32.inc
    8. includelib InpOut32.lib
    9. includelib kernel32.lib
    10.  
    11. dPause  equ 110
    12. dLen    equ 32
    13.  
    14. .data
    15. szProg  db 1,  3,  7, 15, 31, 63,127,255,255,127, 63, 31, 15,  7,  3,  1,  1,  2,  4,  8, 16, 32, 64,128,128, 64, 32, 16,  8,  4,  2,  1
    16.  
    17. .code
    18. start:
    19. cycle:
    20.  xor edi,edi
    21.  .while edi != dLen ;перебираем в цикле до конца строки. в строке лежат коды, которые будут выводится на LPT. значение кода - нужный уровень (например 3 (11b) - будут включены первые 2 "контакта"
    22.   mov bl,byte ptr [szProg+edi]
    23.   invoke Out32,888,ebx ;выводим
    24.   invoke Sleep,dPause ;ждём
    25.   inc edi
    26.  .endw
    27.  jmp cycle ;зацикливаем по кругу
    28. end start
    вот когда-то делал эдакий "переключатель светодиодов", правда на асме и с применением сторонней библиотеки InpOut, но её легко найти вместе с сорцами.
     
  5. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Можно обойтись и без InpOut - открывая порт через CreateFile и записывая по одному байту, описывающему состояние порта.
     
  6. maxtor

    maxtor New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    4
    Признаться я не про программист, имею общие понятия, а учиться уже поздно.

    асме - я не в курсе что это...

    И программных сред имею Borland C++ и библ. InpOut

    Мне бы окончательный код: включили 1 контакт- пауза -выключили-выход.

    Заранее благодарю
     
  7. maxtor

    maxtor New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    4
    Установил АСМ for windows 2.2d

    Использую код выше.

    Что то при компиляции ничего не происходит и
    запуск проги (кгт program) не происходит