| 5.2 Praktische Übungen MC6840 | Lösungsvorschläge zu den Praktischen Übungen |
| Praktische Übung P5.3-1: (Komponente: CPU) | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Es soll ein Programm geschrieben werden, das einen vierstelligen Dezimal-/Hexadezimal-Zähler realisiert. Der
Zählmodus, die Schrittweite des Zählers sowie der Anfangswert des Zählzyklus sollen über die Tastatur einzugeben sein.
Im einzelnen soll das Programm
|
| Praktische Übung P5.3-2: (Komponente: CPU) | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Gesucht ist ein Programm, das eine eingegebene Dezimalzahl Z=d2d1d0 (mit 0<Z<127) in die entsprechende
Hexadezimalzahl umwandelt. Die Darstellung soll wahlweise im Zweierkomplement erfolgen.
Im einzelnen soll Ihr Programm
Hinweis: Z = d2d1d0 = d2·100 + d1·10 + d0 = d2·$64 + d1·$A + d0. |
| Praktische Übung P5.3-3: (Komponente: CPU) | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Es soll ein Programm geschrieben werden, das die Eingabe einer vierstelligen Hexadezimalzahl und die wahlweise
Darstellung dieser Zahl in "normaler" oder "invertierter" Form erlaubt. Unter "invertiert" soll dabei verstanden werden, daß die zunächst aktivierten LEDs der 7-Segment-Anzeige ausgeschaltet, die nicht aktivierten eingeschaltet werden.
Im einzelnen soll das Programm,
Hinweise: |
| Praktische Übung P5.3-4: (Komponente: CPU) |
|---|
|
Es soll ein Programm geschrieben werden, das eine
Folge von 4-stelligen Hexadezimalzahlen einliest, in der Anzeige darstellt und in einem Benutzer-Stack ablegt. Gleichzeitig soll die Nummer des jeweiligen Stack-Eintrags dargestellt werden. Die Übernahme der Zahl in den Stack wird durch die Taste '+'
ausgelöst. Durch die Taste '-' kann der aktuelle Stack-Inhalt in umgekehrter Reihenfolge abgerufen werden. Dabei soll eine Überprüfung auf "Stack Underflow" stattfinden und das Programm ggfs. von vorne beginnen.
Im einzelnen soll das Programm,
|
| Praktische Übung P5.3-5: (Komponente: CPU) |
|---|
|
Es soll ein Programm geschrieben werden, das eine
verschlüsselte Ausgabe des Speicherinhalts ermöglicht. Dazu soll zunächst als Code eine Permutation der Ziffern {0,..,9,A,..F} eingegeben werden und danach jedes auszugebende
Datum mit diesem Code umgesetzt werden.
Im einzelnen soll das Programm,
Die korrekte Eingabe des Codes unter 2. als Permutation der Hex-Ziffern obliegt dem Benutzer und muß nicht durch das Programm überprüft werden. |
| Praktische Übung P5.3-6: (Komponente: CPU) |
|---|
|
Es soll ein Programm geschrieben werden, das eine
eingegebene zweistellige Hex-Zahl verschlüsselt wieder ausgibt. Dazu soll zunächst als Code eine Permutation der Ziffern {0,..,9,A,..F} eingegeben werden und danach jedes eingelesene Datum mit diesem Code umgesetzt werden.
Im einzelnen soll das Programm,
Hinweise: |
| Praktische Übung P5.3-7: (Komponente: Anzeige) |
|---|
|
Es soll ein Programm geschrieben werden, das eine
Folge von Hexadezimal-Ziffern einliest und in einem Benutzer-Stack ablegt. Dabei soll jedes eingegebene Zeichen in der Anzeige in einer Art Balkendarstellung ausgegeben werden. Außerdem soll der Stackinhalt in beiden Richtungen fortlaufend in der Anzeige dargestellt werden können.
Im einzelnen soll das Programm,
Hinweise:
|
| Praktische Übung P5.3-8: (Komponente: Anzeige) | |||||||||
|---|---|---|---|---|---|---|---|---|---|
|
Es ist ein Programm zu schreiben, daß eine
waagerechte "Balkenanzeige" (in Form einer Segmentreihe) in der Anzeige nachbildet.
Dabei sollen wahlweise das oberste oder das mittlere Segment jeder Anzeigestelle benutzt
werden können. Ausgehend von der "gelöschten" Anzeige, soll der
"Balken" solange nach rechts länger bzw. nach links kürzer werden, wie
bestimmte Tasten gedrückt werden. In jedem Zustand soll ein Rücksprung in den
Anfangszustand zur Auswahl einer Segmentreihe möglich sein.
Skizze: Im einzelnen soll das Programm:
(Alle Datentasten und nicht erwähnten Funktionstasten sind ohne Funktion)
Hinweis: |
| Praktische Übung P5.3-9: (Komponente: Anzeige) | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
Es ist ein Programm zu schreiben, daß ein
"Lauflicht" (in Form eines einzelnen Leuchtpunktes) zyklisch nach rechts durch die Anzeige rotiert (, so daß der rechts "herausfallende" Leuchtpunkt links wieder
erscheint). Bei dieser Rotation sollen die Randsegmente (a,b,c,d,e,f; s. Skizze) der Anzeigestellen im Uhrzeigersinn durchlaufen werden.
Die Rotation soll wahlweise segmentweise auf Anforderung oder aber kontinuierlich geschehen. In jedem Zustand soll ein Rücksetzen in den Anfangszustand möglich sein.
Skizze:
Im einzelnen soll das Programm:
(Alle Datentasten und nicht erwähnten Funktionstasten sind ohne Funktion)
Hinweis: |
| Praktische Übung P5.3-10: (Komponente: Tastatur) | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Es soll ein Programm geschrieben werden, das bei
jedem Tastendruck die Zeile bzw. Spalte der Tastatur anzeigt, in der die gedrückte Taste liegt. Außerdem sollen der gewählte Modus "Zeile/Spalte" sowie der gedrückte
Tastenwert dargestellt werden.
Im einzelnen soll das Programm,
Alle anderen Funktionstasten (außer "L", "S") sollen keine Funktion haben.
Beispiel:
|
| Praktische Übung P5.3-11: (Komponente: Tastatur) | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Es soll ein Programm geschrieben werden, das bei
jedem Druck einer Datentaste die Position der betätigten Taste anzeigt. Die Darstellung soll wahlweise in zwei verschiedenen Modi möglich sein: durch Angabe der Zeilen- und Spaltennummer
oder des "Quadranten", in dem die gedrückte Taste liegt. Außerdem sollen der gewählte Modus "Zeile&Spalte"
bzw. "Quadrant" sowie der gedrückte Tastenwert dargestellt werden.
Im einzelnen soll das Programm,
Alle anderen Funktionstasten (außer "A", "D") sollen keine Funktion haben. Die Numerierung der Zeilen und Spalten sei so gewählt, daß die Datentaste "0" in der 0. Zeile und 0. Spalte, die Datentaste "F" in der 3. Zeile und 3. Spalte liegt. Beispiel:
|
| Praktische Übung P5.3-12: (Komponente: Tastatur) |
|---|
|
Es soll ein Programm geschrieben werden, das eine
Folge von Tasteneingaben entgegen nimmt und die Gruppenzugehörigkeit (Datentaste oder Funktionstaste) jeder betätigten Taste in
bestimmter Form in der Anzeige ausgibt. Sobald eine vorgegebene Obergrenze für eine der Tastengruppen erreicht ist, sollen die Anzahlen der betätigten Tasten jeder Gruppe ausgegeben
werden und das Programm von vorne beginnen.
Im einzelnen soll das Programm,
|
| Praktische Übung P5.3-13: (Komponente: Anzeige) | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Es ist ein Programm zu schreiben, daß eine
8stellige Dezimalzahl zyklisch nach rechts durch die Anzeige rotiert (, so daß die rechts "herausfallende" Ziffer links wieder erscheint). Die Rotation soll wahlweise stellenweise
auf Anforderung oder aber kontinuierlich geschehen. In jedem Zustand soll ein Rücksetzen in die Ausgangslage möglich sein.
Im einzelnen soll das Programm:
Beispiel:
Hinweis: |
| Praktische Übung P5.3-14: (Monitorroutine) |
|---|
|
Gesucht ist ein Programm, das den Offset eines
Branch-Befehls in hexadezimaler Form berechnet. Dazu muß als Startadresse die Adresse des ersten OpCodes hinter dem Branch-Befehl und als Endadresse die Adresse des OpCodes angegeben werden, zu dem das Programm verzweigen soll. Bei ückwärtssprüngen muß das Offset im Zweierkomplement angegeben werden.
Im einzelnen soll das Programm,
|
| Praktische Übung P5.3-15: (Monitorroutine) |
|---|
|
In dieser Aufgabe soll ein kleiner Speicherbereich
nach dem Auftreten zweier einzugebener Zahlen untersucht und alle Speicherzellen "zwischen" den Fundorten angezeigt werden.
Wird eine Zahl nicht gefunden, soll sie nach dem Durchsuchen dargestellt werden.
Schreiben Sie ein Programm, daß
|
| Praktische Übung P5.3-16: (Monitorroutine) |
|---|
|
In dieser Aufgabe sollen Sie einen kleinen Speicherbereich nach dem Auftreten zweier einzugebener Zahlen untersuchen und jeden "Fundort" einer der Zahlen kennzeichnen.
Schreiben Sie ein Programm, das
|
| Praktische Übung P5.3-17: (Komponente: Parallel-Port PB) |
|---|
|
Schließen Sie zunächst die Schnittstellen-Erweiterungskarte am Praktikumsrechner an. Schreiben Sie nun ein Programm, das
Die Abfrage der Tasten '+', '-' und der Schalter SW0, SW1 braucht nur zu den Zeitpunkten der Zustandsänderungen des Taktes geschehen, so daß Sie zur Erzeugung der Taktzeiten die Routine DLY1MS benutzen können. |
| Praktische Übung P5.3-18: (Komponente: Parallel-Port PB) | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
In dieser Aufgabe soll jede über die Tastatur
eingegebene Hexadezimal-Ziffer in den ASCII-Code übersetzt und auf "Anforderung" auf dem Port PB ausgegeben werden. Die Ausgabe soll über CB2 angezeigt werden.
Schließen Sie zunächst die Schnittstellen-Erweiterungskarte am Praktikumsrechner an.
|
| Praktische Übung P5.3-19: (Komponente: Parallel-Port PB) |
|---|
|
In dieser Aufgabe sollen Sie die am Port PB anliegenden Binär-Informationen genau dann einlesen und in der Anzeige hexadezimal darstellen, wenn das Programm im "Einlesemodus"
ist. Die Umschaltung zwischen den Modi quot;Einlesen/nicht Einlesen" soll durch die Tastatur geschehen.
Schließen Sie zunächst die Schnittstellen-Erweiterungskarte am Praktikumsrechner an. Schreiben Sie nun ein Programm, das
|
| Praktische Übung P5.3-20: (Komponente: Zeitgeber/Zähler) |
|---|
|
In dieser Aufgabe sollen Sie mit Hilfe des Zeitgeber-/Zählerbausteins einen sog. Watch-Dog Timer (WDT) realisieren. Dieser soll während
der Ausführung eines Programms überwachen, ob jeweils vor Ablauf eines Zeitintervalls eine gewünschte Reaktion der Rechnerperipherie stattfindet. Ist dies nicht der Fall, soll der WDT eine Fehlermeldung zum Anwender und zur Peripherie ausgeben.
Im einzelnen soll das Hauptprogramm,
In der Interruptroutine zum Zähler #3 soll immer dann, wenn der Zähler #3 auf den Wert '0000' heruntergezählt wurde, also nicht rechtzeitig die Taste 'R' betätigt wurde:
Hinweise:
|
| Praktische Übung P5.3-21: (Komponente: Zeitgeber/Zähler) |
|---|
|
In dieser Aufgabe soll ein vom Zeitgeber-/Zählerbaustein ausgegebenes Rechtecksignal durch den Prozessor überwacht werden. Sobald dieses Signal durch den Steuereingang des Zählers #3 zu lange unterbrochen wird, wird die Ausgabe gestoppt, bis sie eventuell vom Benutzer erneut gestartet wird.
Im einzelnen soll das Hauptprogramm,
In der Interruptroutine des Zählers #3 soll
Hinweise:
|
| 5.2 Praktische Übungen zum Zeitgeber-/Zähler-Baustein | Lösungsvorschläge zu den Praktischen Übungen |