Pozostałe urządzenia wejścia


Pozostałe urządzenia wejścia 629
Rozdział 14. Pozostałe urządzenia wejścia
Na zakończenie omówione zostaną jeszcze dwa urządzenia wejściowe, które -
chociaż niezdolne zastąpić klawiaturę - są wykorzystywane przez użytkowników.
Mowa tu o myszce i manipulatorze, zwanym popularnie joystickiem. UrzÄ…dzenia te
dołączane są na ogół do gniazd wielofunkcyjnej karty Multi I/O, zawierającej
porty szeregowe (wy­korzystywane przez myszkÄ™) i tzw. gamÄ™ port, bÄ™dÄ…cy w
istocie prostym przetwor­nikiem analogowo-cyfrowym.
Myszka i jej obsługa
Chociaż klawiatura w dalszym ciągu jest podstawowym narzędziem do wprowadzania
danych tekstowych i liczbowych, pojawienie siÄ™ na rynku nowej klasy
oprogramowania - programów sterowanych z poziomu menu (ang. memi-driven
software) dało szansę innemu urządzeniu wejścia myszce. Pozwala ona na
sterowanie komputerem prak­tycznie bez użycia klawiatury, a w wielu
środowiskach programowych (np. Windows) jest wręcz warunkiem koniecznym. Myszka
przekazuje ruch ręki do komputera, służąc zwykle do sterowania widocznym na
ekranie kursorem i uruchamiania wskazywanych przezeń funkcji. Filozofia ta
wykorzystywana jest obecnie w każdym "szanującym się" programie i radykalnie
upraszcza obsługę komputera.
Myszka komunikuje siÄ™ z komputerem za pomocÄ… portu szeregowego. Znane sÄ… co
prawda myszki współpracujące z kartą dedykowaną do ich obsługi (jest to raczej
roz­wiÄ…zanie archaiczne), ewentualnie z kartami sterowników graficznych
(rozwiązanie firmy ATI), jednak przeważająca większość "zwierzątek" używa portu
szeregowego.

630 Anatomia PC
Starsze wersje korzystały dodatkowo z przewodu klawiatury, ale wyłącznie dla
zasilania swoich układów elektronicznych. Obecnie technologia CMOS pozwala na
zastosowanie układów pobierających tak małą moc, że możliwe jest zasilanie
myszki z wyjść portu szeregowego (napięciami ą12 V). Konstrukcja znakomitej
większości myszek oparta jest o kulkę wprawianą w ruch poprzez przesuwanie
całej myszki po stole (a właściwie po specjalnym "wybiegu" - równej, lekko
chropowatej podkładce, tzw. mouse pad). Kulka z kolei wprawia w ruch dwie
tarcze z otworami, które wraz z układami diod świecących i fotoelementów tworzą
optomechaniczny przetwornik ruchu na impulsy elektryczne. Każda z tarcz
odpowiada za jeden z kierunków: lewo-prawo i góra-dół. Dzięki zastosowaniu
dwóch zespołów: dioda świecąca-fotoelement dla każdej tarczy, poza wykryciem
ruchu tarczy można również określić kierunek jej obrotów. Tarcza, jak już wyżej
wspomniano, ma szereg otworów na obwodzie, które podczas obrotu zasłaniają i
odsłaniają światło z diody świecącej padające na fotoelement. Powoduje to
generowanie ciągu impulsów elektrycznych o długości zależnej od przesunięcia
myszki.
Za dekodowanie impulsów z czterech fotoelementów odpowiedzialny jest
mikrokontro-ler, którym zwykle jest układ Intel 80C48. Przetwarza on uprzednio
wzmocnione sygna­Å‚y z fotoelementów na postać cyfrowÄ…, którÄ… nastÄ™pnie przesyÅ‚a
do komputera poprzez port szeregowy. Wykorzystywana jest wyłącznie linia danych
tego portu, a pozostałe połączenia służąjedynie do zasilania układów myszki.
Poza układem przeniesienia ruchu ręki myszka posiada jeszcze dwa lub trzy
przyciski, którym zwykle przyporządkowana jest funkcja "klawiaturowa" (lewy
przycisk odpo­wiada najczęściej klawiszowi Enter, zaÅ› prawy klawiszowi Esc).
Obsługa programowa większości myszek jest podobna. Możliwe jest wykorzystanie
standardowego sterownika - programu obsługi (ang. driver) myszki, dostarczanego
razem z systemem operacyjnym. Rozróżnia się zasadniczo dwa podstawowe standardy
myszek: pierwszy nosi nazwę Mouse Systems Mouse (myszka trójklawiszowa), zaś
drugi Microsoft Mouse (myszka dwuklawiszowa); jest on zgodny, jak sama nazwa
wskazuje, z założeniami firmy Microsoft. Istnieją jeszcze rozwiązania niezgodne
z po­wyższymi standardami, ale sÄ… one coraz rzadziej stosowane. Należy tu
jeszcze oddać honor szwajcarskiej firmie Logitech, która jest jednym z
wiÄ™kszych producentów my­szy. SÄ… one w zasadzie zgodne ze standardem Microsoft
Mouse, aczkolwiek zgodność ta nie jest pełna. Do obsługi myszki należy raczej
stosować programy dostarczane razem z nią, ewentualnie zgodne z jej standardem.
Niemniej jednak, niezależnie od samego sprzętu i sposobu porozumiewania się
myszki z "pracujÄ…cym dla niej" sterow­nikiem, sposób jej obsÅ‚ugi programowej
jest identyczny (sterownik myszki pełni rolę taką jak BIOS pośredniczy
pomiÄ™dzy różnymi rozwiÄ…zaniami sprzÄ™towymi a progra­mami). Ponieważ wiÄ™kszość
myszek komunikuje siÄ™ ze sterownikiem w taki sam spo­sób, może być obsÅ‚ugiwana
przez taki sam sterownik. Większość z nich może również pracować w obu
standardach. Przykładowo, MS-Windows 3.lx podczas instalacji pyta o typ
zainstalowanej myszki, umożliwiając wybór rodzaju myszki: rzadko spotykanych
Hewlett Packard i Olivetti oraz Microsoft, Logitech, Mouse Systems i Genius
Mouse. Ten ostatni typ jest zasadniczo zgodny z Mouse Systems Mouse, ale
pÅ‚ynność i dyna­mika ruchu jest lepiej dopasowana dla myszy danego producenta.
Możliwe jest oczy­wiÅ›cie zainstalowanie innego (dostarczanego wraz z myszkÄ…)
sterownika, a także, co jednak nie jest zalecane, pominięcie instalacji
myszki.

Pozostałe urządzenia wejścia
631

Programowa obsługa myszki odbywa się poprzez przerwanie 33h (Mouse Support).
Warunkiem działania tego przerwania jest oczywiście załadowanie sterownika
myszki. Oto lista funkcji przerwania 33h.

Funkcja
Opis

OOh
inicjalizacja myszki i sprawdzenie obecności jej sterownika

Olh
wyświetlenie kursora myszki

02h
ukrycie kursora myszki

03h
określenie pozycji i stanu przycisków myszki

04h
przesunięcie kursora

05h
określenie liczby naciśnięć przycisków

06h
określenie liczby zwolnień przycisków

07h
ustawienie zasięgu poziomego

08h
ustawienie zasięgu pionowego

09h
zdefiniowanie kształtu kursora graficznego myszki

OAh
zdefiniowanie maski kursora tekstowego myszki

OBh
określenie odległości ostatniego przesunięcia

OCh
instalacja filtru zdarzeń (ang. event handler) generowanych przez myszkę

ODh
włączenie emulacji pióra świetlnego

OEh
wyłączenie emulacji pióra świetlnego

OFh
ustawienie prędkości ruchu kursora

lOh
ustawienie granic obszaru ukrycia myszki

13h
ustawienie maksymalnej prędkości ruchu kursora

14h
zamiana filtru zdarzeń

15h
określenie rozmiaru bufora statusu myszki

16h
zapamiętanie statusu myszki

17h
odtworzenie statusu myszki

18h
instalacja dodatkowego filtru zdarzeń (zob. funkcja OCh)

19h
określenie adresu dodatkowego filtru zdarzeń

lAh
ustawienie czułości myszki

IBh
pobranie czułości myszki

ICh
ustawienie częstotliwości przerwań pochodzących od myszki stosuje się jedynie
do myszek standardu Inport)
(funkcja ta
IDh
ustawienie wyświetlanej strony pamięci obrazu (zawierającej
kursor myszki)
lEh
pobranie numeru strony pamięci obrazu zawierającej kursor myszki

IFh
zablokowanie sterownika myszki

20h
włączenie sterownika myszki

21h
inicjalizacja sterownika myszki

22h
określenie numeru wersji sterownika myszki i numeru przerwania (IRQ)


632 Anatomia PC
Poniżej zostaną omówione ważniejsze funkcje przerwania 33h, umożliwiające
realizację elementarnej obsługi myszki.
Funkcja OOh
Działanie:
Funkcja ta zwraca informacjÄ™ o zainstalowaniu sterownika myszki i jej typie.
Parametry wejściowe:
AX OOOOh.
Wartości zwracane:
AX obecność sterownika myszki:
OOOOh = nieobecny, FFFFh = zainstalowany;
BX rodzaj myszki:
FFFFh = dwuprzyciskowa, 0003h = trójprzyciskowa, OOOOh = inna.
Funkcja 01 h
Działanie:
Funkcja wyświetla kursor myszki.
Parametry wejściowe:
AX OOOlh.
Wartości zwracane:
- brak
Funkcja 02h
Działanie:
Funkcja ukrywa kursor myszki.
Parametry wejściowe:
AX 0002h.
Wartości zwracane:
brak
Funkcja 03h
Działanie:
Funkcja ta zwraca informację o współrzędnych kursora myszki i stanie jej
przycisków.

Pozostałe urządzenia wejścia 633
Parametry wejściowe:
AX 0003h.
Wartości zwracane:
BL stan przycisków myszki:

X
< x
x
x
bit 2
bitl
bitO
3ity 7-3
nie wykorzystane,





3it2
1 = naciśnięty środkowy przycisk,





3it 1
1 = naciśnięty prawy przycisk,





jitO
1 = naciśnięty

ewy przycisk;



CX współrzędna X kursora myszki (0..639);
DX współrzędna Y kursora myszki (0.. 199).
Funkcja 04h
Działanie:
Funkcja ustala położenie kursora myszki.
Parametry wejściowe:
AX 0004h;
CX współrzędna X kursora myszki (0-639);
DX współrzędna Y kursora myszki (0-199).
Wartości zwracane:
brak
Uwaga:
Wartości współrzędnych zaokrąglane są do rozdzielczości znakowej.
Funkcja 05h
Działanie:
Funkcja ta zwraca informację o naciśnięciu przycisków myszki.
Parametry wejściowe:
AX OOOSh;
BX kod przycisku:
OOOOh-lewy, 0001 h-prąwy, 0002h - środkowy.
Wartości zwracane:
AL bieżący stan przycisków:

634
Anatomia PC



bit 2 bit 2 bit 2
bity 7-3 nie wykorzystane,
bit 2 l = naciśnięty środkowy przycisk,
bit l l = naciśnięty prawy przycisk,
bit O l = naciśnięty lewy przycisk;
BX liczba naciśnięć danego przycisku od ostatniego wywołania
funkcji 05h;
CX współrzędna X kursora myszki w chwili naciśnięcia danego
przycisku;
DX współrzędna Y kursora myszki w chwili naciśnięcia danego
przycisku.
Funkcja 06h
Działanie:
Funkcja ta zwraca informację o zwolnieniu przycisków myszki,
Parametry wejściowe:
AX OOOÓh;
BX kod przycisku:
OOOOh - lewy, 0001 h- prawy, 0002h - środkowy.
Wartości zwracane:
AL bieżący stan przycisków:

x
bit2 bit l bitO



BX CX DX
bity 73 niewykorzystane,
bit 2 l = naciśnięty środkowy przycisk,
bit l l = naciśnięty prawy przycisk,
bit O l = naciśnięty lewy przycisk;
liczba zwolnień danego przycisku od ostatniego wywołania funkcji 05h;
współrzędna X kursora myszki w chwili zwolnienia danego
przycisku;
współrzędna Y kursora myszki w chwili zwolnienia danego
przycisku.

Funkcja OBh
Działanie:
Funkcja ta zwraca stan liczników położenia myszki.

Pozostałe urządzenia wejścia
635

Parametry wejściowe:
AX OOOBh;
Wartości zwracane:
CX liczba jednostek, o które przesunięto myszkę w poziomie od
ostatniego wywołania funkcji OBh;
DX liczba jednostek, o które przesunięto myszkę w pionie od
ostatniego wywołania funkcji OBh.
Uwaga:
Jednostką (ang. mickey) jest najmniejsza odległość, na określenie której
pozwala czu­Å‚ość myszki (zwykle 1/200 do 1/400 cala). WartoÅ›ci zwracane w
rejestrach CX i DX na­leży traktować jako liczby caÅ‚kowite ze znakiem. WartoÅ›ci
dodatnie odpowiadajÄ… prze­suniÄ™ciu myszki w dół i w prawo.
Jest to zaledwie skrótowy opis dostępnych funkcji obsługujących myszkę.
Większość języków programowania dysponuje bibliotekami zawierającymi gotowe
procedury ob­sÅ‚ugi myszki na znacznie wyższym poziomie.
GamÄ™ port
Manipulator (joystick), podobnie jak myszka, przekazuje ruch dłoni (drążka) do
kompu­tera. Wykorzystywany jest przede wszystkim w grach i na tym w zasadzie
kończy się jego zastosowanie praktyczne.
Połączenie joysticka z komputerem odbywa się poprzez tzw. gamę port. Zwykle
jest on umieszczony na jednej karcie z portami szeregowymi i portem równoległym
(karta Multi l/O). Gamę port obsługuje dwa niezależne joysticki analogowe (A i
B), dołączane doń przez tzw. "żeńskie" 15-stykowe gniazdo DB-15. Rozkład
końcówek gniazda portu joysticka przedstawia rysunek 14. l.


ffysunełr 14.1.
Rozmieszczenie
sygnałów
w 15-końcówkowym
gnieździe portu
joysticka


A1
V
AY



GND

AY



NC


x"

636 Anatomia PC
Końcówki 2-7 złącza odpowiadają za pierwszy joystick (A), zaś końcówki 10-14 -
za drugi (B). Linie Al, A2, B l, B2 przekazują stan przycisków l i 2 joysticków
A i B, natomiast liniami AX, AY, BX i BY przekazywane są sygnały określające
położenie drążka.
Mechaniczne rozwiązania poszczególnych typów joysticków są bardzo różne,
natomiast elektrycznie składają się one z czterech potencjometrów (dwa główne i
dwa kalibrujące) oraz dwóch niezależnych przycisków. Każda para potencjometrów
odpowiada za prze­kazanie poÅ‚ożenia drążka w kierunku lewo-prawo (X) i góra-dół
(Y). Potencjometry kalibracyjne służą do usytuowania kursora (ewentualnie
ustawienia innej funkcji pro­gramu sterowanego przez joystick) w poÅ‚ożeniu
neutralnym dla środkowego położenia drążka. Oczywiście konstrukcja mechaniczna
joysticka jest taka, by ruch drążka powo­dowaÅ‚ zmianÄ™ rezystancji odpowiedniego
potencjometru.
Zespół potencjometr główny-potencjometr kalibracyjny jest włączony w obwód
umieszczonego na karcie generatora monostabilnego (uniwibratora), zbudowanego w
oparciu o popularny układ czasowy NE555. Dokładnie rzecz biorąc, karta zawiera
zwykle jeden układ scalony NE556 (lub jego odpowiednik), zawierający cztery
identyczne uniwibratory odpowiadające układowi 555. Do obsługi joysticka
przewi­dziano port o adresie 201 h.
Znaczenie bitów tego portu jest następujące:
bit? | bito | bit 5 [ bit 4 [ bit 3 | bit 2 [ bit l | bit O |
bit 7 stan drugiego wyłącznika joysticka B (B2);
bit 6 stan pierwszego wyłącznika joysticka B (Bl);
bit 5 stan drugiego wyłącznika joysticka A (A2);
bit 4 stan pierwszego wyłącznika joysticka A (Al);
bit 3 stan wyjścia Y (BY) joysticka B (góra-dół);
bit 2 stan wyjścia X (BX) joysticka B (lewo-prawo);
bit l stan wyjścia Y (AY) joysticka A (góra-dół);
bit O stan wyjścia X (AX) joysticka A (lewo-prawo).
Wartość l na jednym z bitów 7-4 oznacza rozwarcie (zwolnienie) przycisku.
Jedynka na bicie 3-0 sygnalizuje pracÄ™ uniwibratora (tj. fazÄ™ trwania
impulsu).
Port 201h służy zarówno do zapisu, jak i odczytu. Określenie położenia drążka
odbywa siÄ™ poprzez programowy pomiar czasu trwania impulsu generatora
monostabilnego. Zapis do portu 0201 h dowolnej wartości powoduje wyzwolenie
generatorów. Następnie mierzony jest czas utrzymywania się jedynki logicznej na
wyjściach generatorów.
Pomiar taki można wykonać przykładową pętlą programową:
mov dx,0201h ; adres portu joysticka out dx,al ; uruchom uniwibratory xor ex,ex
; inicjalizuj licznik

Pozostałe urządzenia wejścia 637
pętla:
in al,dx ; odczytaj stan portu joysticka
test al,01h ; sprawdź czy uniwibrator AX w fazie spoczynku
loopnz pętla ; nie - zliczaj dalej
Stan rejestru CX po wyjściu z programu jest oczywiście zależny od szybkości
proce­sora, trybu jego pracy, obsÅ‚ugiwanych w miÄ™dzyczasie przerwaÅ„,
odświeżania pamięci itp. Aby uniezależnić się od typu komputera i wyżej
wymienionych "zakłóceÅ„", nale­Å¼aÅ‚oby do odmierzania czasu użyć sprzÄ™towego
zegara czasu rzeczywistego. Określenie stanu wyłączników odbywa się poprzez
odczytanie czterech bardziej znaczących bitów portu 0201h.
W BlOS-ie komputera AT pojawiła się funkcja przeznaczona specjalnie do obsługi
joysticka, upraszczajÄ…ca znacznie odczyt jego stanu. Jest to funkcja 84h
przerwania pro­gramowego 15h (tzw. ATExtended Services). Funkcja ta pozwala na
okreÅ›lenie poÅ‚oże­nia drążków i stanu wyÅ‚Ä…czników. Funkcja 84h posiada dwie
podfunkcje, przekazywane przez rejestr DX.
Funkcja 84h
Działanie:
Funkcja ta odczytuje stan joysticka.
Parametry wejściowe:
DX kod podfunkcji:
= odczyt stanu wyłączników,
= odczyt położeń X i Y drążka.
Wartości zwracane:
dla podfunkcji 0:
AL stan przycisków joysticków, jeśli DX = 0:

bit7
bito
bit 5
bit 4
x
x
X
X
bit 7 stan drugiego przycisku joysticka B (B2),
bit 6 stan pierwszego przycisku joysticka B (Bl),
bit 5 stan drugiego przycisku joysticka A (A2),
bit 4 stan pierwszego przycisku joysticka A (Al),
bity 3-0 nie wykorzystane;
dla podfunkcji l:
AX współrzędna X drążka joysticka A,
BX współrzędna Y drążka joysticka A,
CX współrzędna X drążka joysticka B,
DX współrzędna Y drążka joysticka B.

638 Anatomia PC
Opisywany układ wejścia może znaleźć zastosowanie nie tylko jako port
joysticka, ale również jako prosty, 8-bitowy przetwornik wartości analogowej
(rezystancja) na war­tość cyfrowÄ…. Może to być np. rezystancja termometru
oporowego itp.


Wyszukiwarka

Podobne podstrony:
Rozdział 15 Pozostałe urządzenia wejścia
urzadz1
04 Prace przy urzadzeniach i instalacjach energetycznych v1 1
ow wejscie
monter sieci i urzadzen telekomunikacyjnychr5[02] z2 01 n
Urzadzenie techniczne
glajcar opracowane pytania z wejściówek
LORIEN SODEXHO VOLVO ZESTAWIENIE URZADZEN 2008 01 29
KRISPOL DRZWI WEJSCIOWE 11 2012
Pytania na wejsciówkę z radiotelefonu F3E
New folder wejściówka 4
Stosowanie maszyn i urządzeń w produkcji mięsa i jego przetworow
407 E5ABFCP0 Prezentacja Zestaw do diagnostyki urzadzen wykonawczych pompy H 1613 2 Nieznany
instrukcja bhp przy obsludze urzadzen elektrycznych w gospodarstwie rolnym

więcej podobnych podstron