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

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

  1. maxtor

    maxtor New Member

    Публикаций:
    0
    Задача такая:

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

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

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

    S_Alex Alex

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

    maxtor New Member

    Публикаций:
    0
    Понятно.

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

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

    Все.

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

    Спасибо
     
  4. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    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
    Можно обойтись и без InpOut - открывая порт через CreateFile и записывая по одному байту, описывающему состояние порта.
     
  6. maxtor

    maxtor New Member

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

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

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

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

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

    maxtor New Member

    Публикаций:
    0
    Установил АСМ for windows 2.2d

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

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