PS2 Maus und Computer BASIC Stamp
Colin Fahey
1. Einleitung
Dieser Artikel beschreibt, wie ein PS/2 Maus kann durch eine emulierte BASIC Stamp Computer.
Diese Exploration ist informell.

Das Innere eines alten Stil (bewegliche Kugel) Computer-Maus: die „Microsoft Intellimouse“ (I ersetzt den optischen Sensoren mit langen Leitungen.)
Eine Maus hat zwei Stoßrichtungen: „X“ und „Y“. Wenn die Maus „horizontal“ bewegt, die „X“ Rad im Inneren der Maus dreht. Wenn die Maus bewegt wird „vertikal“ (auf einer Fläche), die „Y“ Rad im Inneren der Maus dreht. Für willkürliche Bewegungen der Maus, die „X“ und „Y“ Rädern bewegen nach der „horizontalen“ und „vertikalen“ Komponenten der Bewegung der Maus.

Optische interruptor Räder im Inneren der Maus
Beachten Sie die Löcher in die Räder im Inneren der Maus. Wenn das Rad dreht, die Infrarot-(IR) Licht durch eine IR Light Emitting Diode (LED) wird immer wieder unterbrochen, mit einer Rate proportional zum Anteil der Rad-Rotation. Somit ist die Maus weiß, wie viele „Striche“ (auch „Zecken)“ der Maus-Achse hat sich in einem bestimmten Zeitraum.
Bestimmung der Richtung der Bewegung geht es um die Verwendung von 2 Lichtsensoren, liegt sehr nahe beieinander liegen, entlang einer Achse parallel zur Bewegung des Rades. (Beide Sensoren sind in einem einzigen 3-Pin-Komponente unten gezeigt.)

Maus IR Lichtsensor (IR hat zwei Detektoren in einem einzigen Paket)
Das Zentrum PIN des Pakets ist die positive Spannung Sammler;
Die linke und rechte Pins sind die linken und rechten Sensor Strahler.
Lassen Sie uns den Namen des zwei Sensoren in das Paket „A“ und „B“. Nehmen wir das Rad ist zunächst auf einen Drehwinkel, so dass die IR Licht blockiert ist vom Erreichen beide Sensoren.
Da das Rad dreht, die IR Licht aus dem Sender wird schließlich können durch ein Loch in das Rad und erreichen eine der zwei Sensoren, wie zum Beispiel Sensor „A“. Wenn das Rad weiter drehen in die gleiche Richtung, schließlich den zweiten Sensor, „B“ werden können, erhalten IR Licht. Wenn das Rad weiter drehen in die gleiche Richtung, schließlich die IR Licht blockiert wird vom Erreichen Sensor „A“. Wenn das Rad weiter drehen in die gleiche Richtung, schließlich die IR Licht blockiert wird vom Erreichen Sensor „B“.
So ist die Reihenfolge:
(A,B): ..., (0,0), (1,0), (1,1), (0,1), ...
Wenn das Rad dreht sich in die entgegengesetzte Richtung, der 4-Semester-Sequenz oben gezeigt wird rückgängig gemacht werden, ausgehend von den aktuellen Status.
Mit diesen beiden Sensor-Signale können wir bestimmen, von Rotation, und die Richtung.

Die Platine des Microsoft Intellimouse
Um zu verstehen, mehr darüber, wie die Maus-Schaltung interpretiert die Lichtsensoren und kommuniziert mit dem Personal Computer (PC) (via PS/2 Signale), studierte ich die Platine.
Der Chip verfügt über die folgenden Namen gedruckt, die ihm: SPCP05A.
Eine Suche über das Internet für das Wort „SPCP05A“ deutet darauf hin, dass der Chip ist ein Produkt von einer Firma namens „Sunplus Technology Co.“. Informationen zu den „SPCP05A“ Mikrochip kann erworben werden von dieser Gesellschaft.
Hier sind die technischen Spezifikationen des „SPCP05A“ Mikrochip:
Das folgende Bild zeigt die Signale der Pins des „SPCP05A (PS/2 3D mouse)“ Mikrochip.

Signale der Pins des „SPCP05A (PS/2 3D mouse)“ Mikrochip
Die „SPCP05A“ ist eigentlich ein winziges Computer! Es verfügt über einen Befehlssatz, und RAM und ROM, und der internen Timer, usw. In der Tat, die Beschreibung der „SPCP05A“ Mikrochip in den Angaben Sunplus Co. kaum bezieht sich auf den spezifischen Einsatz des Mikrochips für „Computer-Maus“ Schaltungen. Dieser Chip ist eine vielseitige Mikrocontroller.
Ich studierte die Leiterbahnen auf der Platine des Microsoft Intellimouse bilden die folgenden ungefähren Schema:

Voraussichtliche Schematische Darstellung der Microsoft Intellimouse (Ich vermisse ein paar Kondensatoren, aber das schematische ist fast perfekt.)
Bui Van Chu in Australien, in meinem Artikel lesen und mir ein vollständigeres Schema, das in dem folgenden Bild.

Die Maus PS/2 schematische, an mich per Bui Van Chu aus Australien
Die Schaltung ist sehr einfach.
Die Maustasten (links, Mitte, rechts) direkt auf Eingänge auf dem Mikrochip.
Die drei Paare von Lichtsensoren, ((„X“, „Y“, „Z“), (für horizontale Bewegung, vertikale Bewegung, und Mitte Mausrad)) senden Signale direkt an andere Eingänge auf dem Chip.
Die PS/2 Signale DATA und CLK (Uhr) korrespondieren auch mit I/O Signale auf dem Chip.
Ich verstand die schematische, sobald ich es fertig Zeichnung (durch folgende Spuren auf der Leiterplatte).
Eine Sache habe ich nicht verstehen, wurde zunächst die Art und Weise der IR LEDs wurden mit dem Mikrochip (Pin 16: „PB1“), anstatt ihre negativen Terminals (Kathode) wird einfach direkt an Boden. Dies ist wichtig!
2. Mein erster Versuch zur Kontrolle der Maus-Bewegung
Die folgenden Antworten beziehen sich auf die Bewegung entlang einer einzigen Achse (wie zum Beispiel die „X“ oder horizontal, Achse).
Das erste, was ich versuchte war bewegte ein Objekt zwischen den IR LED und der Sensor-pair - zur Simulation der Wirkung des rotierenden Rad innerhalb der Maus. Dies funktionierte. Ich könnte dazu führen, dass der Maus-Cursor zu bewegen rund um den Bildschirm bewegen, indem Sie einfach ein Hindernis durch die IR Lichtstrahl immer wieder, in die gleiche Richtung.
Weiter habe ich entfernt die 3-poligen Sensor Teil von der Maus Platine, und alle dazugehörigen Kabeln bei Circuit Board anstelle des Sensors. Ich manuell ein Kabel angeschlossen an die positive Spannung zu simulieren Sensor. Ich verband die beiden Signale an die Macht nach folgendem Muster (wie das „0“ repräsentiert „aus,“ und stellt „in“ „1“):
(0,0), (1,0), (1,1), (0,1), ...
Dies funktionierte. Ich könnte bewegen Sie den Mauszeiger auf dem Bildschirm durch diese mühsame Anschließen und Trennen der Drähte in der Figur oben. Rückfahrscheinwerfer dem Muster, dass durch den aktuellen Status in der Reihenfolge würde sich der Cursor in die entgegengesetzte Richtung.
Weil die Dinge nun so gut, habe ich beschlossen, um eine Verbindung zu den Drähten Relais (kontrolliert von RS-232). Dies würde im Wesentlichen Gestatten Sie mir zu tun genau das, was ich tat mit losen Drähten: Schließen Sie die Sensor-Signale an die Macht Terminal in der entsprechenden Reihenfolge. Der einzige Unterschied wäre die Tatsache, dass die Menschen (mich) nicht zu tun haben, die mühsame Anschließen und Trennen.
Aber ... es hat nicht funktioniert!
Nach einer Partie der Anpassung der Widerstände und Kondensatoren, etc., machte ich eine merkwürdige Entdeckung: Wenn ich war berührend bestimmten Terminals in der Schaltung, es funktionierte perfekt! Die Lösung dieses Rätsels wird im nächsten Abschnitt.
3. Die Infrarot-Licht (IR) muss moduliert
Nach einigen frustrierenden Versuchen hatte ich einen neuen Gedanken: Die IR Licht könnte pulsierenden auf einem hohen Frequenz, und der Chip wäre zu erwarten, dass diese Frequenz erhalten. Konstantes Licht (oder meine simulierten Sensor konstanten Output) kann abgelehnt werden. Ich war etwas perplex durch die Tatsache, dass das Umgebungslicht einer Halogen-Stehlampe war akzeptabel, aber ich wusste, dass auch Glühlampen haben nachweisbare Modulation.
Ich habe versucht ein pulsierendes IR LED bei hoher Frequenz und die Blockierung der Sensoren nach dem erwarteten Muster. Es funktionierte!
Das war es! Die IR LEDs in der Maus Platine muß blinken bei hoher Geschwindigkeit, und der Mikrochip ist davon auszugehen, dass diese blinkt neben der relativ niedrige Licht Unterbrechung durch die rotierenden Rad (mit Löchern).
Mit der pulsierenden IR LEDs, und erwarten dies in einer pulsierenden die Blockierung von Sensor Ausgangssignal, der Chip kann lehnen jegliche ambient IR Signale von störenden Betrieb mit der Maus. Zum Beispiel, Streulicht aus anderen (konstant) IR Quellen werden nicht interefere mit der Maus.
Ich verbunden eine Audio-Verstärker auf den Sensor-Ausgang, und dann möchte ich den Sensor treffen in der Umgebungslicht Besetzung von meinem Halogen-Stehlampe. Ich hörte einen deutlichen Ton (60 Hz). Wenn ich die Lampe gedimmt, den Ton schwach wuchs, und schließlich gestoppt, wenn das Licht ausgeschaltet wurde. Also, dieser Sensor leicht holt die 60 Hz Modulation in der Glühbirnen meiner Halogen-Stehlampe!
Suchen Sie jetzt in den Schaltplan des PS/2 Maus Platine, die Bedeutung des IR LEDs wird mit einer Nadel auf dem Mikrochip (anstatt auf die Gleichstrom) liegt auf der Hand. Der Chip steuert die blinkende der IR LEDs durch die I/O polig, und die Mikrochip korrelieren kann seine Absicht, Flash, der ID LEDs mit der empfangenen Sensoreingänge, und damit lehnen jede streunende Signale (wegen Nicht-Blinken IR Licht). (Allerdings Korrelation ist nicht erforderlich. Aufdeckung einfach eine Mindestanzahl von blinkenden zählt, könnte ein Schwellenwert für die Annahme Sensoreingang.)
4. IR Sensoren mit Bandpass-Filter
Hier finden Sie spezielle IR Sensoren, verpackt in Transistor-ähnliche Form mit drei führt, das sind „so abgestimmt,“ dass spezifische IR moduliertes Licht Frequenzen (zB 38 kHz).

Tuned IR Lichtsensor (maximale Empfindlichkeit gegenüber 38 kHz Licht Modulation)
Bandpass-Schaltung ist in das Gerät, zusammen mit dem IR Foto-Transistoren.
Also, die IR LED können in der Regel gepulst mit einer Frequenz von 38 kHz so dass der Sensor erhalten das Licht und lassen Sie das elektrische Signal gehen an den Sensor-Ausgänge.
Informationen zu vermitteln, das Licht von der IR LED unterbrochen werden kann, auf einen relativ geringen Anteil (etwa 1 zu 100 mal pro Sekunde). Das niederfrequente pulsierende ist in Verbindung mit dem stetigen Hochfrequenz-pulsierende, dh, die niederfrequente pulsierende kann als Modulation der Hochfrequenz-pulsierende. Die Hochfrequenz-pulsierenden ist wie eine „Trägerwelle,“ auf denen die Informationen Signal (die relativ niedrige Frequenz-Modulation) durchgeführt.
Aber ich stellte fest, dass das IR Sensoren in der Microsoft Intellimouse nicht über solche Filter-Modulation. Allerdings ist die Schaltung funktioniert auch verlangen, dass die IR Licht moduliert werden in einigen Art und Weise, zusätzlich zu den Low-Frequenz Unterbrechungen des Lichts durch das Rad mit Löchern.
Die folgende Skizze zeigt den Unterschied in der Sensor-Signale für konstante IR LED Licht und blinkt IR LED Licht für die verschiedenen Phasen der Mausrad drehen.

Sensor-Ausgangssignale für die ständige IR leichten Fall und die blinkende Licht IR Fall.
5. Simulation Maus-Eingang mit einem Computer BASIC Stamp
Die „BASIC Stamp 2“ Computer verfügt über ein ausreichendes Programmierbarkeit zur Umsetzung der PS/2 Protokoll. Daher ist die „BASIC Stamp 2“ Computer kann direkt an die PS/2-Port eines PCs (PC) und emulieren kann ein PS/2 Maus oder Tastatur.
5.1 Die PS/2 Protokoll
In den Jahren 1998 durch 2003, die Mehrheit von Personal Computern hatte PS/2 Anschlüsse für Maus und Tastatur.
Die PS/2 Hafen hat 4 Signale: (1) CLOCK; (2) DATA; (3) +5V; (4) GROUND.
Die PS/2-Port-Geräte erlaubt, Daten zu senden an den Host, und der Host kann Daten zu den Geräten. Alle Parteien auf PS/2 Port (in der Regel nur ein Gerät und dem Host) müssen die Signale und müssen erkennen, wenn eine andere Partei ist derzeit mit der Signale.
Wie kann Signale geteilt werden? Ein Signal (z. B. CLOCK oder DATA) ist in der Regel „schwimmende“ hoch, was bedeutet, dass das Signal an eine positive Spannung durch einen Widerstand mit hoher Resistenz (zB 4 kilo-Ohms). So wird das Signal interpretiert als logische „hohe“ Hören von allen Parteien. Jede Partei kann die Linie ziehen niedrig (via TTL Logik), wenn die Partei die Absicht, Daten zu senden. Wenn eine Partei beendet das Senden eines Pakets, so können Sie die Signale auf unbestimmte Zeit, so dass sie float High Again.
So senden Sie Daten von einem Gerät (zB Maus oder Tastatur) an den Personal Computer (PC), müssen Sie senden Daten in 11-Bit-Pakete, bestehend aus den folgenden Bits: (1) Startbit („0“); (2) 8 Datenbits (LSB zuerst); (3) Parity-Bit „(ungerade“ Parität); (4) Stopbit „(1).“ Beachten Sie, dass „die Parität ungerade“ ist, wenn die Gesamtzahl der „1“ Bits in der Daten-Bits und Parity-Bit kombiniert ist eine ungerade Anzahl.
Die folgende Abbildung zeigt die Übertragung von einer einzigen Daten-Paket:

PS/2 Protokoll: Host-Gerät an (PC) Päckchen
Die DATA Linie sollte auf den richtigen Wert, bevor sie die CLOCK Linie gering. Die DATA Wert eingestellt bleiben sollte, bis die CLOCK Zeile ist wieder zurück zu hoch. Wenn die CLOCK Linie bestätigt zu hoch, die DATA Wert kann geändert werden, um die nächste Bit-Wert.
Die typische Taktfrequenz ist relativ langsam, über 10 kHz zu 17 kHz. Das ist 100 Mikrosekunden bis 70 Mikrosekunden für jede Uhr.
Das Szenario des Gastlandes (PC) Senden von Daten an ein Gerät ähnelt dem Gerät Senden von Daten an den Host, sondern in allen Fällen das Gerät steuert die CLOCK Signal während der Datenübertragung. Auch ein Bit an Daten aus dem Gastland (auf Geräteeinstellung CLOCK niedrig) sollten verriegelt, wenn das Gerät lässt die CLOCK Signal einen Übergang zu hoch.
Ein Internet-Suche wird zeigen, viele Beschreibungen von PS/2 Signale und Details über das Protokoll.
5.2 PS/2 Maus Datenpakete
Wenn der Computer bootet, das Betriebssystem gestartet wird und schließlich kommuniziert mit der Maus bestimmen die Art der Maus. Standardmäßig ist die Maus Mai verhalten sich wie eine generische PS/2 Maus. Allerdings, wenn das Betriebssystem feststellt, dass die Maus ist eigentlich ein „3D PS/2“ Maus (z. B. eine Maus mit einem Rad), kann er sagen, die Maus zu ändern, dass die 3D PS/2 Maus-Protokoll.
Wenn Sie die Maus bewegen, oder drücken Sie oder Release-Tasten-Maus, die Maus-Schaltung sendet Daten an den Host-(PC) Angabe, welche staatlichen Veränderungen stattgefunden haben, da die vorherigen Zustand Indikation.
Der generische PS/2 Maus sendet die folgenden drei Pakete an den Host:
------------------------
D7 D6 D5 D4 D3 D2 D1 D0 (The D0 bit (LSB) is sent first)
------------------------
(1) YV XV YS XS 1 0 R L (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0 (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 (Y movement; -128 to +127)
L = Left Button State (1 = pressed down)
R = Right Button State (1 = pressed down)
XS = Direction of X movement (1 = LEFT)
YS = Direction of Y movement (1 = UP)
XV = Overflow of X movement value (1 = X overflow occured)
YV = Overflow of Y movement value (1 = Y overflow occured)
X7,...,X0 : X movement; 8-bit 2's-complement signed byte (-128 to +127)
Y7,...,Y0 : Y movement; 8-bit 2's-complement signed byte (-128 to +127)
Here are examples of data sent to the host (PC):
------------------------------------------------
(The least-significant bit of each data byte is sent first.)
Move Left 1 unit : 0x18, 0xFF, 0x00
Move Right 1 unit : 0x08, 0x01, 0x00
Move Down 1 unit : 0x28, 0x00, 0xFF
Move Up 1 unit : 0x08, 0x00, 0x01
Press Left Button : 0x09, 0x00, 0x00
Release Left Button : 0x08, 0x00, 0x00
Press Right Button : 0x0C, 0x00, 0x00
Release Right Button : 0x08, 0x00, 0x00
Es ist sehr verbreitet zu haben „3D PS/2“ Maus (zB mit einem Mausrad, die auch als mittlere Taste). Eine solche Maus sendet vier Datenpakete an den Host (PC).
------------------------
D7 D6 D5 D4 D3 D2 D1 D0 (The D0 bit (LSB) is sent first)
------------------------
(1) YV XV YS XS 1 M R L (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0 (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 (Y movement; -128 to +127)
(4) Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0 (Z movement; -128 to +127)
This is very similar to the generic PS/2 mouse,
with a few additions:
M = Middle Button State (1 = pressed down)
Z7,...,Z0 : Mouse wheel movement; 8-bit 2's-complement signed byte
(The Z value is forced to a range of -8 to +7)
5.3 Meine erste Schaltkreis zu simulieren ein PS/2 Maus
Die folgende schematische war mein erster Arbeitstag Technik, um meine „BASIC Stamp 2“ Computer zu senden PS/2 Maus Daten an den Host-(PC).

Schematische Darstellung Schaltung, damit die BASIC Stamp Computer zu senden PS/2 Pakete an den Host (PC).
Beachten Sie, dass diese Schaltung elektrisch isoliert BASIC Stamp mein Computer von der Host-Computer (PC). Beachten Sie bitte auch, dass dieser Schaltung ist nur zur Erfüllung der Anforderungen der Elektro-PS/2 Datenübertragung (von Gerät zu Host). So kann ich schicken PS/2 Tastatur Nachrichten über dieselbe Strecke, wenn ich Stecker in die PS/2 Tastatur-Port auf dem Host (PC)!
Da empfängt Signale ist in der Regel nicht-invasiv (dh, Hören nicht zu einer Beeinträchtigung der elektrischen Signale), das einzige, was erforderlich ist, damit der „BASIC Stamp“ Computer zu empfangen die PS/2 CLOCK und DATA Signale ist eine direkte Verbindung aus diesen Signalen zu anderen BASIC Stamp I/O Pins (konfiguriert werden Eingänge). Ich würde versuchen, irgendeine Art von Buffering - aber ich kann definitiv nicht mit einer opto-Isolator direkt, da dies würde eine Last auf dem „schwimmenden“ Signale (und somit der „Untergang!).“ Ich könnte die Verwendung +5V an die Macht einen Puffer, dann verwenden Sie dann den Puffer-Ausgang zum Führen von Opto-Isolatoren, die letztlich senden Signale an die BASIC Stamp I/O Pins (konfiguriert als Eingänge).
Das folgende Bild zeigt meine BASIC Stamp 2 Computer an einen Stromkreis mit der schematischen oben.

BASIC Stamp 2 Computer an ein PS/2 Maus-Port über ein Opto-Isolator Stromkreis.
Die folgenden BASIC Stamp 2 Programm, geschrieben in der PBASIC Programmiersprache, war meine erste erfolgreiche Versuch zur Kontrolle der PS/2 Maus über die BASIC Stamp 2 Computer.
Das Programm macht einfach den Mauszeiger bewegen entlang einer kleinen diagonalen Linie.
'====================================================================
'{$STAMP BS2} 'STAMP directive (specifies a BS2)
DIR0 = %1 'Set pin 0 to OUTPUT
DIR1 = %1 'Set pin 1 to OUTPUT
OUT0 = %0 'Set DATA line high (pin low)
OUT1 = %0 'Set CLOCK line high (pin low)
tempData VAR BYTE
tempParity VAR BYTE
'--------------------------------------------------------------------
MainLoop:
tempCounter VAR WORD
FOR tempCounter = 0 TO 10
tempData = $28
GOSUB TransmitPacket
tempData = $01
GOSUB TransmitPacket
tempData = $ff
GOSUB TransmitPacket
tempData = $00
GOSUB TransmitPacket
PAUSE 100
NEXT
FOR tempCounter = 0 TO 10
tempData = $18
GOSUB TransmitPacket
tempData = $ff
GOSUB TransmitPacket
tempData = $01
GOSUB TransmitPacket
tempData = $00
GOSUB TransmitPacket
PAUSE 100
NEXT
GOTO MainLoop
STOP
'--------------------------------------------------------------------
TransmitPacket:
GOSUB ComputeParity 'First, compute parity
tempData = ~tempData 'Invert data bits
tempParity = ~tempParity 'Invert parity bit
'==== Start Bit ====
OUT0 = %1 'Set data line low (output high)
PULSOUT 1, 25 ' Pulse line 1 for (25*2) = 50 usec
'==== Data Bits ====
OUT0 = tempData.BIT0
PULSOUT 1, 25
OUT0 = tempData.BIT1
PULSOUT 1, 25
OUT0 = tempData.BIT2
PULSOUT 1, 25
OUT0 = tempData.BIT3
PULSOUT 1, 25
OUT0 = tempData.BIT4
PULSOUT 1, 25
OUT0 = tempData.BIT5
PULSOUT 1, 25
OUT0 = tempData.BIT6
PULSOUT 1, 25
OUT0 = tempData.BIT7
PULSOUT 1, 25
'==== Parity Bit ====
OUT0 = tempParity.BIT0
PULSOUT 1, 25
'==== Stop Bit (high) ====
OUT0 = %0 ' pin low is DATA high
PULSOUT 1, 25
PAUSE 1 ' Necessary? Provides 1 msec gap between packets...
RETURN
'--------------------------------------------------------------------
ComputeParity:
tempParity = $01
tempParity = tempParity + tempData.BIT0
tempParity = tempParity + tempData.BIT1
tempParity = tempParity + tempData.BIT2
tempParity = tempParity + tempData.BIT3
tempParity = tempParity + tempData.BIT4
tempParity = tempParity + tempData.BIT5
tempParity = tempParity + tempData.BIT6
tempParity = tempParity + tempData.BIT7
tempParity = tempParity & $01
RETURN
'====================================================================
Dieses Programm funktioniert perfekt. Ich lasse es laufen stundenlang, und sie fehlerfrei aus den Mauszeiger bewegen sich zwischen zwei genauen Standorte auf dem Bildschirm. Dies ist, was ich suchte: präzise Steuerung der Maus, so kann ich mit der Software interagieren.
Nach dem Durchsuchen Sie das Internet entdeckte ich, dass jemand anders verwendet ein BASIC Stamp Computer-Schnittstelle PS/2 (Simulation einer Tastatur). Diese Person verwendet die PBASIC Anweisung SHIFTOUT zu handhaben die CLOCK und DATA Signale, die ist wirklich großartig. Damit würde meine „TransmitPacket“ Subroutine viel kürzer, vielleicht 5 Zeilen Code insgesamt!
Ich sah auch, dass andere Menschen verwendet TTL Puffer, mit Eingänge direkt aus PS/2 Signale (CLOCK und DATA), und Ausgänge direkt an Pins auf der Mikrocontroller-Chip. Im gleichen Stromkreis, Output-Linien aus dem Mikrocontroller ging direkt an den Pins auf Basis der Transistoren hatten ihre Sammler direkt an der PS/2 Signale. All dies direkte Kopplung von verschiedenen Schaltungen scheint wie eine schlechte Idee zu mir, damit ein Stromkreis braten der anderen Seite. Ich weiß nicht, was ich tun, wenn ich die frittierten PS/2 Port auf meinem PC. Kaufen Sie ein neues Motherboard, I guess! Eine Entschuldigung für ein Upgrade. Ich glaube nicht, dass ein Hafen PS/2 Motherboard Kernschmelze ist wahrscheinlich, aber ich habe sofort meinen Computer heruntergefahren, wenn ich versehentlich kurzgeschlossen der +5V und GROUND Signale an die PS/2 Maus. Vielleicht ist es ein Feature! Ich könnte hinzufügen, eine neue Schaltfläche, um die Maus nur, dass Kurzschlüsse die Maus Macht für sofortige Abschaltung des PC. ;-)
Hier ist der Link zu der Informationen über die Verwendung von SHIFTOUT für die PS/2 Protokoll:
Achten Sie auf den folgenden Link:
KEYBTST.ZIP gives a very basic program for the parallax
-----------
BASIC stamp II, to send key-codes to the PC's keyboard port.
It also gives a write-up of the XT and AT keyboard interfaces
(although IMO some details could be wrong / different to the
keyboards I've looked at).
Lokal-Cache-Kopie der Datei:
keybtst.zip
10655 Bytes
MD5: c5667557f96db53fb878bd11bfbe4f74
Der folgende Link bietet weitere Informationen zu PS/2 Maus Schnittstellen: