Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterowanie kilkoma urządzeniami za pomocą portu LPT - PASCAL

30 Paź 2008 11:29 4734 9
  • Poziom 27  
    Odwiedziłem strony:

    http://www.freefm.kni.pl/mike/lpt.html

    http://www.geocities.com/micgm/circuit/circuit.html

    na pierwszej jest interesujący mnie wers dot. wysyłania bajtu na port lpt
    zrealizowany w języku Pascal - jets to język który znam najlepiej.

    Z drugiej strony wykorzystam sterownik z przekaźnikami.

    Więc pewnie używając polecenia

    port[$378]:=bajt; mogę włączyć te przekaźniki

    pytanie moje jest takie:

    jaką wartośc muszę wpisać w miejsce "bajt" ażeby włączyć przekaźnik czy też zaświecić diodę na kolejnych pinach ?? jaka wartość odpowiada włączeniu konkretnego leda podłączonego pod konkretny pin ??

    No i oczywiście jak później wyłączyć ten led czy przekaźnik ??
  • Poziom 29  
    LPT posiada 25 pinów. Dla adresu $378 są to piny: 2..9.
    W "bajt" ustawiasz odpowiednie bity, które są odpowiednikami tych pinów.

    Przykład:
    "bajt"=$01 [00000001b] załączy pin.2
    "bajt"=$80 [10000000b] załączy pin.9
  • Poziom 27  
    Przykład:
    "bajt"=$01 [00000001b] załączy pin.2
    "bajt"=$80 [10000000b] załączy pin.9



    Mógłbyś mi to nieco prosciej wytłumaczyć ??

    a jak z wyłączeniem diód/przekaźników ??


    Jako bajt wpisać samo 01 czy $01 :?:

    Ja w pascalu programowałem typowo użytkowe rzeczy czyli jakieś tam proste programy typu bazy danych z eksportem importem do pliku itd..
    ale nigdy nie bawiłem się w peryferia - stad moja niewiedza jeśli chodzi o elektronikę to znacznie lepiej idzie mi typowo analogowa :D

    Prosił bym więc o dalsze obajśnienie
  • Poziom 42  
    telemah napisał:
    Jako bajt wpisać samo 01 czy $01 :?:
    Dla 1 jest to obojętne natomiast dla $80 trzeba by wpisać 128. Sugeruję zapoznać się z podstawami matematyki dotyczącymi konwersji systemów liczbowych.
  • Pomocny post
    Poziom 29  
    Bajt=0 można zapisać binarnie jako 00000000, ponieważ 1 bait = 8 bitów.
    Jeśli bajt=128, to binarnie będzie tak 10000000, czyli bit 8 będzie zapalony.
    W heksadecymalnym zapisie 128 będzie zapisane jako $80.
    Zresztą jeśli masz problemy z konwersją to przeliczaj to w kalkulatorze (Windowsowy też to potrafi).

    Wracając do tematu. Zapisuj do portu bajty w postaci binarnej, ułatwi to zrozumienie działania.
    Jeśli chodzi o diody/przekaźniki to podłącz do portu 8 diod do każdego pinu 2..9 oddzielnie (szeregowo z diodą wstaw opornik ok. 200 om).
    Diodę ustaw katodą w kierunku masy, anodą przez opornik do pinu.

    port[$378]:=10000000b - zaświeci LED pinu 2
    port[$378]:=01000000b - zaświeci LED pinu 3
    port[$378]:=11000000b - zaświeci LED pinu 2 i 3
    ...
  • Poziom 27  
    Dzięki chłopaki za pomoc rozjaśniliście mi nieco w głowie.

    Pozdrawiam
  • Poziom 17  
    W Windowsie XP adresowanie bezpośrednie portu ($378) chyba ci się nie uda. Trzeba odwoływać się przez nazwę: LPT
    Chodzi o to, że windowsy typu NT (powyżej 98 ) mają pewien rodzaj zabezpieczeń i przeadresowują adresy peryferii ustawione w bios-ie. Było już o tym pisane na elektrodzie.
    https://www.elektroda.pl/rtvforum/topic1073420.html
  • Poziom 27  
    Wiem o tym :D ale ja będę ekspereymentował i ew. wdrażał dalsze prace nad sterownikiem w środowisku free-dos więc o blokady portów się nie martwię :D
  • Poziom 20  
    Korzystałem w turbo pascalu z sterownika userport (odblokowuje dostęp do portów w Win 2000/XP) do programowania portu LPT i działał. Napisałem tylko procedurki w asemblerze odczytu i zapisu portów.
  • Poziom 20  
    Strony dotyczące m.in. portu LPT:
    Sterownik urządzeń elektrycznych przez port LPT komputera:
    https://www.elektroda.pl/rtvforum/topic29620-0-asc-60.html
    Schematy i opisy portów (LPT, COM, Gameport):
    http://www.rafal.waw.pl/wynalazki/porty/
    Parallel Port:
    http://logix4u.net/Legacy_Ports/Parallel_Port.html
    Port I/O Driver:
    http://www.driverlinx.com/DownLoad/DlPortIO.htm
    WinIO:
    http://www.digitalmars.com/rtl/winio.html
    Programowanie w WinAPI:
    http://www.winapi.org/
    NTPort Library
    http://www.zealsoftstudio.com/ntport/