Reaktionstest

Eine Projektarbeit von Timo Eberl & Levin Müller, TGI-J1, Schuljahr 2018-19.

 

Motivation

Es ist interessant seine Reaktionszeit zu kennen und vor allem zu wissen, wie man im Vergleich mit anderen abschneidet. Das Projekt dient hauptsächlich der Unterhaltung durch Wettstreit um die bessere Reaktionszeit. Darum haben wir uns für den Aufbau eines Reaktionstests mithilfe des Mikrocontroller 8051 entschieden. Dadurch können wir die Reaktionszeit sehr genau ermitteln.

Auftrag

Ziel ist der Aufbau eines Reaktionstests, welcher auf dem Mikrocontroller 8051 und dem Entwicklungsboard UNI-DS6 läuft. Am Anfang soll man aufgefordert werden den Taster (Buzzer, Notausschalter, Knopf) zu drücken und zu halten, um den Reaktionstest zu starten. Beim Starten läuft eine zufällige Zeit - die nicht zu lang sein darf - ab. Sobald diese Zeit abgelaufen ist wird ein Ton ausgegeben und die Zeitmessung in Millisekunden beginnt. Zudem wird man aufgefordert den Taster nun loszulassen. Sobald losgelassen wird, stoppt der Ton und die erzielte Reaktionszeit wird angezeigt. Man kann durch erneutes Betätigen des Tasters eine neue Messung beginnen.

Stoffsammlung

Stoffsammlung

Systemaufbau

Der verwendete Taster (Notausschalter) dient als Benutzer-Eingabe und ist an VCC und dem Port p2.2 angeschlossen. Durch den das Flackern der unteren Ports am 12Bit-A/D-Wandler ist das Auslesen eines echten Zufallswerts möglich. Mithilfe des Treibers für den A/D-Wandler wird ein Zufallswert an Channel0 ausgelesen. Ein Ton wird über den Summer des Boards erzeugt, indem der Port p2.1 in der richtigen Frequenz gesetzt wird. Das Display wird mithilfe der Unterprogramme zum Ausgeben von Text und Zahlenwerten des GLCD-Treibers benutzt.
Für den Zähler der verwendeten Timer wird das Register r6 benutzt. Das Register r7 wird als Zähler für Sekunden verwendet.
Die Register r0 und r1 werden zum Einlesen der Zufallszahl benutzt. Zudem wird r0 als Zwischenspeicher für Rechenoperationen und zur Ausgabe von Zahlenwerten verwendet.
Die Register r2 und r3 werden genutzt, um die Spalten und Zeilen einer Bildschirmausgabe festzulegen. Die Register r4 und r5 dienen als Zähler für Überbrückungen von kurzen Zeiten, die zum Beispiel für den erzeugten Ton benötigt werden.
Die Ports p2.3 bis p2.6 werden zu Abfragen von bestimmten Ereignissen im Programmablauf verwendet. Die Ports mit denen das Display in nachfolgender Abbildung verbunden ist werden vom GLCD-Treiber verwendet.

 

Systemaufbau

  

Tags