#6
Post
napisał: Zink » 15 lut 2006, 13:55
Niestety nie wszystkie nowe płyty to mają. Ja kiedyś zrobiłem urządzenie, które komunikowało się z PC-tem właśnie za pomocą dwukierunkowego portu danych. W trakcie projektowania padła mi płyta główna, musiałem kupić nową, i ta nowa już nie miała tej opcji.
Tak na marginesie: gdyby ktoś potrzebował prostego monitora portu LPT, to napisałem takie coś (w załączniku). Podaje on także nazwy sygnałów, bity w rejestrach oraz numery nóżek, któe odpowiadają sygnałom. Program jest mojego autorstwa, używam w nim nie mojej biblioteki Inpout32.dll, która też jest dostępna za darmo.
A jeśli chodzi odczytywanie stanów z wielu czujników, to można użyć rejestrów przesuwających (np. 74HC165), zamieniających dane równoległe na szeregowe. Można je łączyć szeregowo usykując w ten sposób praktycznie dowolną liczbę wejść, a z portu będą użyte tylko jedno wyjście (zegar) i jedno wejście (dane), ewentualnie jeszcze jedno wyjście do sterowania. Przy zwiększaniu liczby wejść będzie się tylko zwiększał czas potrzebny na odczytanie wszystkich.
Innym sposobem jest zastosowanie multipleksera (na przykład 4051), który ma 8 wejść i jedno wyjście. Dzięki niemu można programowo przełączać z którego wejścia chcemy aktualnie coś odczytywać. Wadą jest to, że oprócz wejścia danych z portu musimy wyprowadzić sygnały ustawiające numer odczytywanego wejścia w kodzie binarnym, dla multipleksera 8-wejściowego będą to 3 sygnały (2^3 = 8), dla 16-wejściowego - 4. W związku z tym, że potrzebujesz więcej niż 8 wejść, to trzebaby było łączyć dwa multipleksery 8-wejściowe (16-wejściowe istnieją, ale bardzo trudno je dostać), co wymagałoby dodatkowej bramki NOT i dodatkowego 4-tego wyjścia z portu. Dlatego chyba w Twoim przypadku najlepszym wyjściem będzie rejestr presuwający.
-
Załączniki
-
- PortMon.zip
- (239.19 KiB) Pobrany 296 razy