Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Technische Informatik

Ähnliche Präsentationen


Präsentation zum Thema: "Technische Informatik"—  Präsentation transkript:

1 Technische Informatik
Thomas Cassebaum Manuelle Eingabegeräte Technische Informatik

2 Eigenschaften manueller Eingabegeräte
Bestandteile der Computerperipherie Geräte, die ausschließlich der Eingabe dienen und vom Menschen per Hand bedient werden Heute wichtigste Form des „human interface“ Eigenschaften manueller Eingabegeräte

3 Wichtigste Gerätetypen zur manuellen Eingabe
Tastatur: Eingabe alphanumerischer Zeichen, Funktionsauslösung Maus: Kennzeichnung von Punktpositionen auf dem Monitor, Funktionsauslösung Wichtigste Gerätetypen zur manuellen Eingabe

4 Tastaturen Windows-Tastatur 105 Tasten
MFII-Tastatur 102 Tasten (für AT) Spezialtastaturen für Notebooks für PDA‘s für Embedded PC‘s für Taschenrechner für ... Tastaturen

5 Qualitätsmerkmale von Tastaturen
- technisches Tastenprinzip - Güte der Entprellung - Lebensdauer - Ergonomie - Leichtgängigkeit - Druckpunkterkennung - Tastenanzahl - Zusatzfunktionen Qualitätsmerkmale von Tastaturen

6 Technische Tasten-prinzipien
Kontakt Verbinden zweier Kontakte Leitgummi Gummi wird leitend durch Pressung Piezo Piezokeramik wird leitend durch Biegen Elektrit Plastik wird leitend durch Biegen Hallsensor Kontakte besitzen magnetische Kerne Technische Tasten-prinzipien

7 Tastaturblöcke Funktionstasten (F1, F2, ..., F12) Zifferntasten
Umschalttasten (Groß/Shift, Strg/Ctrl, Alt, AltGr) alphanumerische Tasten ( abcde...) Pfeiltasten (, Bild,Bild, Pos1,Ende,Tabulator) Eingabetaste ( „Entertaste“) Sondertasten (Esc, Einfg, Entf, Lösch, ShiftLock, NumLock, PrintScreen, ScrollLock, Pause/Break) Üblicherweise ist ein System mit Tastatur auch mit einem Bildschirm ausgestattet, auf dem ein definiertes Zeichen, der Cursor, die momentan von der Tastatur bearbeitete Position zeigt. Diese Position kann durch Zeicheneingaben, aber auch durch die Cursorpositioniertasten verändert werden. Ein zusätzlicher Gerätetreiber ist für Tastaturen normalerweise nicht erforderlich, weil er Bestandteil jedes bekannten Betriebssystems ist. Eine Modifikation ist allerdings für nationale Zeichensätze und für Sondertastaturen erforderlich. Die Tastaturen sind meist in bestimmte Blöcke eingeteilt, deren Bezeichnungen man kennen sollte Tastaturblöcke

8 Tastatur- prozessor Intel 804x
Die Tastatur enthält einen eigenen Prozessor, den Intel 804x. Er prüft alle Tasten zyklisch die Zustand „aktiv“ oder „nicht aktiv“. In zwei Fällen sendet der Prozessor einen „Scancode der Taste“: Die Taste wechselt von „nicht aktiv“ in „aktiv“ (MAKE) Die Taste wechselt von „aktiv“ in „nicht aktiv“ (BREAK) Tastatur- prozessor Intel 804x

9 Der Tastaturprozessor führt bei einem Make oder Break über das IRQ 1 einen Hardwareinterrupt durch.
Durch die IRQ-Nummer erkennt die CPU das Interrupt-auslösende Gerät und ordnet dem Interrupt ein passendes Behandlungsprogramm zu (Startadresse aus „Interruptvektorbereich“). Für jede Taste erzeugt die Elektronik der Tastatur einen eigenen Scancode. Dieser Scancode wird über den Eingabeprozeß in einen 32 Byte großen Bereich im Arbeitsspeicher überführt, dem Tastaturpuffer . Tastaturinterrupt

10 Übertragung der Scancodes
Zur Übertragung des BREAK wird das Bit 7 auf 1 gesetzt (MAKE:0). Es werden Bit0 bis Bit7, d.h. ins-gesamt 8 Datenbits pro Tastenaktivität übertragen. Deshalb kann eine PC-Tastatur nur maximal 128 Tasten umfassen. Nach jedem Tastaturinterrupt fragt das BIOS nach dem Scancode. Die Verbindung zur Tastatur muss darum bidirektional sein. Die (RS232-c) Antwort besitzt immer eine Länge von 11 Bits: Übertragung der Scancodes

11 Der Tastaturpuffer (32 Byte) kann 16 Zeichen aufnehmen
Der Tastaturpuffer (32 Byte) kann 16 Zeichen aufnehmen. Der SCAN- und der ASCII-Code benötigen je ein Byte. Im Tastaturpuffer werden zwei Pointer, („Head“ und „Tail“) zum Füllen und Abrufen genutzt. Bei leerem Puffer zeigen Head (für Abruf) und Tail (für Füllen) auf eine der 16 Puf-ferpositionen. Erreicht einer der beiden Pointer das Pufferende, wird bei der nächsten Positionierung dieser Puffer erneut auf den Pufferanfang eingestellt („Round-Robin“). a Tail L e h r m t Tastaturpuffer Head

12 Nach der Übernahme des Scancodes wird der ASCII-Code unter Auswertung des Tastaturstatus (Stellung der Steuertasten wie Shift, Strg, Alt, ...) aus einer internen Tabelle gewählt und in das zweite Tastenbyte im Tastaturpuffer eingetragen. Die Tabelle heißt Codepage und existiert in vielen unterschiedlichen länderspezifischen Varianten. Codepages

13 Tastaturprogrammierung
Moderne Programmiersprachen verfügen über Funktionen zur Schaffung von Programmteilen, die auf die im Tastaturpuffer gespeicherten Codes zugreifen können. z.B.: Pascal: Read, C: getch( ) C++: cin, ... Der Zugriff auf die Scancodes kann mit BIOS-Funktionen bewältigt werden. Sprachen wie C++ oder Pascal ermöglichen Hybridlösungen mit Assembler. Tastaturprogrammierung

14 Ermittlung des ASCII-Codes in C++ (Borland)
#include <iostream.h> #include <conio.h> void main(void) { cout << „Taste drücken! "; while(true) { char z=getch(); if(z)cout <<"\nASCII-Code: "<< int(z)<<" '"<<z<<"'"; else { z=getch(); cout <<"\nFkt.-Taste: "<< int(z); } } Ermittlung des ASCII-Codes in C++ (Borland)

15 BIOS-Funktionen zur Tastaturprogrammierung (Auswahl)
Interrupt AH Funktion Rückgabe 16h Zeichen aus Puffer auslesen, Funktion wartet bis Zeichen eingegeben wurde AL=0; dann erweiterter Tastaturcode in AH AL=ASCII <>0; dann AH=Scancode 1 Feststellen, ob ein Zeichen vorhanden ist, das noch nicht abgeholt wurde wie Fkt.0 Zflag zeigt an, ob Zeichen in Puffer Wenn ZF=1  kein Zeichen im Puffer, sonst ZF=0. Zeichen wird nicht aus Puffer entfernt, kann also erneut abgerufen werden. 2 Tastaturstatus abfragen AL-Tastaturstatusbyte Bit 0: rechte SHIFT-Taste betätigt Bit 1: linke SHIFT-Taste betätigt Bit 2: Strg-Taste betätigt Bit 3: Alt-Taste betätigt Bit 4: Rollen eingeschaltet Bit 5: Num Lock eingeschaltet Bit 6: Caps Lock eingeschaltet Bit 7: Einfg eingeschaltet BIOS-Funktionen zur Tastaturprogrammierung (Auswahl)

16 Assemblerprogramm zur Ermittlung des Scancodes
MOV AH,2 ; Fkt.Nr. 2 INT 16h ; Tastaturstatus lesen AND AL, b ; Bit 3 abfragen je start ; Bit 3 = 0, zurück MOV AH,4Ch INT 21h end start .model small .stack 100h .code start: MOV AH,0 ; Fkt.Nr. 0 INT 16h ; Zeichen vom Puffer lesen CMP AH,45 ; SCAN-Code der x-Taste? jne start ; Nein, zurück Im Beispiel wird eine Tastatureingabe überprüft. Dabei wird der SCAN-Code und der Tastaturstatus abgefragt. Das Programm wird bei Erkennung von ALT/X beendet. Assemblerprogramm zur Ermittlung des Scancodes

17 Tastaturereignisse in Windows abfangen
Delphi: Ereignis OnKeyDown zur Erkennung des Tasten-Codes und des -Status zum MAKE-Zeitpunkt: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Caption KeyCode.Caption:=IntToStr(Key); State. :=''; if ssShift in Shift then State.Caption:='S'; if ssAlt in Shift then State.Caption:=State.Caption+'A'; if ssCtrl in Shift then State.Caption:=State.Caption+'C'; end; Ereignisse sind: OnKeyDown OnKeyUp OnKeyPress Tastaturereignisse in Windows abfangen

18 Schreiben Sie ein Assemblerprogramm, das die Eingabe einer Taste mit gegebener Shift-Taste erkennt und in der Darstellung ohne Shifttaste ausgibt. Umgekehrt soll bei nicht gesetzter Shifttaste das Zeichen mit Shift ausgegeben werden. Gibt der Bediener beispielsweise ‘G’ ein, so wird ‘g’ auf dem Bildschirm ausgegeben. Gibt er ‘g’ ein, so erscheint ‘G’. Schreiben Sie eine C++- oder Delphi-Routine, die nach dem Start eine Zeicheneingabe abfordert. Wurde eine Funktionstaste gedrückt, so antwortet das Programm: ‘Sie haben soeben die Funktionstaste Nr. x gedrückt!’. Für x ist die Nummer der F-Taste zu setzen (z.B. für F7 die Nr. 7)! Schreiben Sie ein Assemblerprogramm, das für eine gegebene Taste jeweils den SCAN-Code, den ASCII-Code und das Tastaturstatusbyte kommentiert aufgeschlüsselt ausgibt! Beispiel einer Ausgabe: ASCII-Code für “X“: 88 dezimal SCAN-Code: 45 dezimal rechte SHIFT-Taste nicht betätigt Rollen aus linke SHIFT-Taste nicht betätigt NumLock an Strg-Taste nicht betätigt CapsLock aus Alt-Taste betätigt Insert aus Aufgaben zur Tastatur

19 Die Computermaus (engl
Die Computermaus (engl.: mouse) ist eine Zusatz-einrichtung zu einem Monitor, deren Bewegung auf einer Fläche von einer Positionsmarke („Maus-cursor“) auf dem Monitor nachvollzogen wird. Sie besitzt Tasten, mit denen z.B. die vom Maus-cursor angezeigten Felder aktiviert werden können. Computer-maus

20 Qualitätsmerkmale der Maus
- technisches Impulsprinzip - Kompatibilität - Lebensdauer - Ergonomie - Leichtgängigkeit - Auflösung - Tastenzahl Qualitätsmerkmale der Maus

21 Auflösung, Geschwindigkeit und Doppelklick
Die Auflösung einer Maus hängt von Impulsanzahl über einen Bewegungsweg ab. Je mehr Impulse erzeugt werden, um so höher die Auflösung. Durch unterschiedliche Auflösungen entstehen verschiedene Mausgeschwindigkeiten. Sie ist hoch, wenn die Maus nur kurz bewegt wird, um einen weiten Cursorweg zu realisieren. Ein Druck auf die Maustaste wird Klick genannt. Die zeitliche Dauer zwischen zwei Mausklicks, die gerade noch als Doppelklick erfaßt werden soll, wird „Doppelklickgeschwindigkeit“ genannt. Auflösung, Geschwindigkeit und Doppelklick

22 Das Bild des Mauscursors ist vom Bildschirmmo-dus, vom Maustreiber und vom steuernden Pro-gramm abhängig. Als Standard kommen inverse Vollzeichen im Zei-chen- und Pfeile im Grafikmodus zum Einsatz. Die Größe und das Aussehen der Cursorgrafik ist meist wählbar. Dies wird vor allem bei hoher Bild-auflösung wichtig, weil der Mauscursor in Standard-größe zu klein erscheint. Mauscursor

23 Mausinneres Fotostrecken y-Rad Arretierungsrad Kabelanschluss Tasten
    x-Rad Mauscontroller Mausinneres

24 Funktionsbestandteile der Maus
Die x- und y-Fotostrecken der Maus beinhalten je ein Schlitzrad, je eine Leuchtdiode und je zwei Fotozellen. Sie zählen die Mausimpulse in vertikaler (y), bzw. horizontaler (x) Richtung. Mit Hilfe der zweiten Fotozelle läßt sich die positive Richtungsveränderung von der negativen unterscheiden. Funktionsbestandteile der Maus

25 Übertragung des Mausstatus
Der Mausstatus ist eine Datensammlung zur Maus, die die Änderung der Maus seit ihrer letzten Abfrage beschreibt. Die Maushersteller nutzen verschiedene Techniken (z.B. Funk, Infrarot, Kabel,...). Die Protokolle und Programme (Treiber) sind somit ebenfalls verschiedenartig. Die MS-Maus benutzt das RS232c Protokoll mit 7 Datenbits, 1 Stoppbit, 1200 Bd ohne Parität. Der Status wird mit drei Zeichensendungen von je 7 Datenbits übertragen: y-Mickeys x-Mickeys L-Taste R-Taste 1 Die Tastenbits L(links) und R(rechts) sind im gedrückten Zustand 1, sonst 0. Übertragung des Mausstatus

26 Die Übertragung des Mausstatus erfolgt unabhängig vom jeweiligen Verfahren der Erfassung dieser Information (mechanisch, optisch, per Induktionsschleife, ...) Kabellose Mäuse übertragen den Mausstatus mit Funk- (RF) oder mit Infrarotanschluss (IRDA) Mit Batteriestrom versorgte Maus Kabellose Maus Sende-/ Empfangs- teil mit Interfaces

27 Abfrage der Maus im Programm
Das Polling -Verfahren arbeitet mit einer sich laufend wiederholenden Abfrage der Maus, die dann beendet wird, wenn ein Mausereignis eingetreten ist. Die Ausführung dieser Schleife nimmt die CPU stark in Anspruch. Das Interrupt-Verfahren nutzt eine Interruptlei-tung, die die CPU ruft, wenn ein Mausereignis eingetreten ist. Die IRQ-Routine holt danach die Mausdaten ab und puffert sie zur Verarbeitung. Diese Arbeitsweise erspart die aufwändige Frage-schleife und ist damit effektiver. Abfrage der Maus im Programm

28 Interruptfunktionen des Maustreibers
C++ / Assembler-Hybridlösung zur Pollingabfrage. Die unsigned int-Variablen Hc und Vc werden mit den vertikalen und horizontalen Cursorpositionswerten. Die Variable Li wird 1, wenn die linke Maustaste gedrückt ist, sonst 0. Funktionen des INT 33h (Auswahl) 00h Reset des Maustreibers 01h Maus-Cursor auf dem Bildschirm anzeigen 02h Maus-Cursor ausblenden 03h Mausposition und Status lesen BX: Bit0 linke Taste, Bit 1 rechte Taste, Bit 2 mittlere Taste CX: Vertikalpos. DX: Horizontalpos. 04h Bewege den Maus-Cursor unsigned int Li,Hc,Vc ; void MausFrag( ) ; { asm { mov ax,3 // Status lesen int 33h // Mausinterrupt mov Hc,cx mov Vc,dx and bx, // Bit 0 abfiltern mov Li,bx } Interruptfunktionen des Maustreibers

29 Mausereignisse in Windows abfangen
Delphi: Ereignis OnMouseDown zur Erkennung der X-/ Y-Mauspositionen zum Zeitpunkt des einfachen/ doppelten Klicks der linken/ mittleren/ rechten Maustaste benutzt: procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Begin linker Doppelklick an 119/ 24 State.Caption:=''; if ssDouble in Shift then State.Caption:='D'; if ssLeft in Shift then State.Caption:=State.Caption+'L'; if ssMiddle in Shift then State.Caption:=State.Caption+'M'; if ssRight in Shift then State.Caption:=State.Caption+'R'; XPos.Caption:=IntToStr(X);YPos.Caption:=IntToStr(Y); end; Ereignisse sind: OnMouseDown OnMouseUp OnMouseMove Mausereignisse in Windows abfangen

30 Geräte, die eine Maus ersetzen
Der Trackball funktioniert wie eine auf dem Rücken liegende mechanische Maus. Ein Touchpad ist eine tastempfindliche Fläche, die durch die Finger des Bedieners berührend gesteuert wird. Ein Grafiktablett besitzt Leitungsgitter zum Aufbau von Induktionsschleifen, die durch einen speziellen Stift, Lupe oder Maus eine Zuordnung der x-y-Position ermöglicht. Eine optische Maus erkennt die Unterlagenfläche vi-suell an ihrem optischen Rastermuster. Sie benötigt keine Kugel und besitzt gegenüber der mechani-schen Maus verbesserte Gebrauchseigenschaften. Geräte, die eine Maus ersetzen

31 Grafiktablett mit Maus

32 1. Verfassen Sie ein Delphi-Programm für Windows, das eines von vier grafischen, quadratische Bildschirmkästchen rot (bei einem Maus-klick in das Kästchen mit der linken Taste), gelb (bei einem Mausklick in das Kästchen mit der rechten Maustaste) und blau (bei einem Mausklick mit rechter und linker Taste gleichzeitig) einfärbt.   2. Erfassen Sie ein Assemblerprogramm das die numerische x- und y-Position der Maus auf dem Textbildschirm anzeigt! Außerdem soll sichtbar werden, welche Maustaste gedrückt bzw. Nicht gedrückt ist! x-Position rechts gedrückt y-Position 21 links nicht gedrückt 3. Schreiben Sie ein Delphiprogramm, das die olympischen Ringe (Canvas) zeichnet. Wenn ein Mausklick in einen der Ringe trifft, wird dies angezeigt. Aufgaben zur Maus


Herunterladen ppt "Technische Informatik"

Ähnliche Präsentationen


Google-Anzeigen