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

Discussion in 'WASM.ELECTRONICS' started by maxtor, Jun 9, 2009.

  1. maxtor

    maxtor New Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2009
    Messages:
    4
    Задача такая:

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

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

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

    S_Alex Alex

    Blog Posts:
    0
    Joined:
    Aug 27, 2004
    Messages:
    561
    Location:
    Ukraine
    Тема уже поднималась. Поищи по форуму.
    Там ток макс. 20 мА на линию. Может и не хватить.
     
  3. maxtor

    maxtor New Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2009
    Messages:
    4
    Понятно.

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

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

    Все.

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

    Спасибо
     
  4. RamMerLabs

    RamMerLabs Well-Known Member

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    1,426
    maxtor
    Code (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

    Blog Posts:
    0
    Joined:
    Sep 11, 2006
    Messages:
    1,426
    Можно обойтись и без InpOut - открывая порт через CreateFile и записывая по одному байту, описывающему состояние порта.
     
  6. maxtor

    maxtor New Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2009
    Messages:
    4
    Признаться я не про программист, имею общие понятия, а учиться уже поздно.

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

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

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

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

    maxtor New Member

    Blog Posts:
    0
    Joined:
    Jun 9, 2009
    Messages:
    4
    Установил АСМ for windows 2.2d

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

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