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 (wykorzystywane przez myszkę) i tzw. gamę port, będący w
istocie prostym przetwornikiem 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 praktycznie 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
rozwią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 odpowiada 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 powyż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 myszy. 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" sterownikiem, 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 programami). Ponieważ większość
myszek komunikuje się ze sterownikiem w taki sam sposó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 dynamika ruchu jest lepiej dopasowana dla myszy danego producenta.
Możliwe jest oczywiś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 należy traktować jako liczby całkowite ze znakiem. Wartości
dodatnie odpowiadają przesunię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 obsługi myszki na znacznie wyższym poziomie.
GamÄ™ port
Manipulator (joystick), podobnie jak myszka, przekazuje ruch dłoni (drążka) do
komputera. 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
A°
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 przekazanie 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 programu 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 powodował 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
przewidziano 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
procesora, 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 programowego 15h (tzw. ATExtended Services). Funkcja ta pozwala na
określenie położenia 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 wartość cyfrową. Może to być np. rezystancja termometru
oporowego itp.
Wyszukiwarka
Podobne podstrony:
Rozdział 15 Pozostałe urządzenia wejściaurzadz104 Prace przy urzadzeniach i instalacjach energetycznych v1 1ow wejsciemonter sieci i urzadzen telekomunikacyjnychr5[02] z2 01 nUrzadzenie techniczneglajcar opracowane pytania z wejściówekLORIEN SODEXHO VOLVO ZESTAWIENIE URZADZEN 2008 01 29KRISPOL DRZWI WEJSCIOWE 11 2012Pytania na wejsciówkę z radiotelefonu F3ENew folder wejściówka 4Stosowanie maszyn i urządzeń w produkcji mięsa i jego przetworow407 E5ABFCP0 Prezentacja Zestaw do diagnostyki urzadzen wykonawczych pompy H 1613 2 Nieznanyinstrukcja bhp przy obsludze urzadzen elektrycznych w gospodarstwie rolnymwięcej podobnych podstron