28.02.2014 Aufrufe

Laboraufgabenblatt 1 - Beuth Hochschule für Technik Berlin

Laboraufgabenblatt 1 - Beuth Hochschule für Technik Berlin

Laboraufgabenblatt 1 - Beuth Hochschule für Technik Berlin

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

FB VI, Labor <strong>für</strong> Digitaltechnik<br />

MOP: Laborübung 1<br />

Abnahme (bitte vom Betreuer per Unterschrift bestätigen lassen)<br />

Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 4 Aufgabe 5<br />

Einführung ins Labor<br />

Jede Gruppe besteht aus maximal zwei Teilnehmern und ist <strong>für</strong> das gesamte<br />

Semester einem festen Arbeitsplatz im Labor zugeordnet. Die Einteilung findet am<br />

ersten Labortermin statt. Tragen Sie sich dazu bitte in die ausgelegte Belegtabelle<br />

ein. Wählen Sie einen Gruppennamen und notieren Sie sich das Passwort.<br />

Von jeder Gruppe ist pro Laborübung ein Laborbericht anzufertigen und pünktlich<br />

zu Beginn des nächsten Labortermins abzugeben. Die Laborberichte müssen alle<br />

im jeweiligen Übungsblatt aufgeführten Fragen behandeln. Erfassen und<br />

kommentieren Sie zudem alle Beobachtungen und Ergebnisse. Achten Sie bei<br />

Rechenaufgaben darauf, den Lösungweg kenntlich zu machen.<br />

Zusätzlich zur Abgabe des Berichts findet nach Fertigstellung der Aufgabe eine<br />

persönliche Rücksprache zur durchgeführten Übung mit beiden<br />

Gruppenmitgliedern statt. Lassen Sie sich dazu Ihre Anwesenheit, sowie die<br />

erfolgreiche praktische Abnahme auf dem jeweils aktuellen Aufgabenblatt<br />

quittieren. Drucken Sie dieses dazu aus und heften Sie es als Deckblatt zu Ihrem<br />

Laborbericht.<br />

Kennenlernen des Laborarbeitsplatzes und der Simulationsumgebung<br />

Obwohl heute Microcontroller häufig in der Hochsprache C programmiert werden,<br />

beschäftigen wir uns im Rahmen dieser Veranstaltung bewusst mit<br />

Assemblerprogrammierung. Erst zum Ende der Veranstaltung wird es einen kurzen<br />

Ausflug zum Thema C-Programmierung geben. Dies hat vor allem folgende Gründe:<br />

• bei der Assemblerprogrammierung muss direkt hardwarebezogen gearbeitet<br />

werden<br />

• dadurch wird die Architektur des Systems besser kennengelernt<br />

• Hardwarezugriffe lassen sich mit Assemblercode direkter programmieren<br />

• guter Assemblercode erzeugt zudem effizientere (schnellere) Programme<br />

Richten Sie sich Ihren Laborarbeitsplatz ein und machen Sie sich mit diesem<br />

vertraut. Bevor wir mit der praktischen Arbeit auf realer Mikrocontroller-Hardware<br />

anfangen (STC 8051 Professional Kit), steht <strong>für</strong> die ersten Labortermine die<br />

MOP_Laboruebung_1.doc Seite 1 von 6 <strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

16.10.2013 Prof. Dr. Sven-Hendrik Voß


Verwendung eines Simulators im Vordergrund, der die Original Intel 8051 Plattform<br />

nachbildet.<br />

Der in dieser Veranstaltung verwendete Simulator ist EdSim51. Dies ist ein<br />

kostenloser auf Java basierender Simulator, der unter http://www.edsim51.com zu<br />

beziehen ist. Sie finden im Internet umfangreiches Material, sowohl zum Simulator,<br />

wie auch zum 8051. EdSim51 bietet zunächst <strong>für</strong> das Labor alle Möglichkeiten, um<br />

eigene Programme in Assembler zu schreiben und testen zu können.<br />

Zudem umfasst er eine Anzahl virtueller Peripheriekomponenten, wie 8 LEDs, 8<br />

Schalter, 4x3 Keypad, 4 gemultiplexte 7-Segment Anzeigen, eine UART, etc., die<br />

interaktiv genutzt werden können, um mit dem 8051 zu kommunizieren. Somit ist es<br />

möglich, das Verhalten und den Zustand einzelner Register, des Speichers und der<br />

Port-Pins anhand ihrer virtuellen grafischen Darstellung während des Code-<br />

Debuggens zu beobachten und nachzuvollziehen.<br />

In den folgenden Laborterminen werden wir uns dann der realen Mikrocontroller-<br />

Hardware zuwenden. Dabei arbeiten wir mit dem 90C516RD+ von STC<br />

Semiconductor, einem modernen 8051 Derivat.<br />

So wird es möglich sein, die entstandenen Programme auch real in Betrieb zu<br />

nehmen, zu testen und auszuführen. Dabei ist zu beachten, dass die Programme<br />

gemäß der Auslegung und des Aufbaus der Entwicklungssysteme nicht 1:1 aus der<br />

Edsim-Umgebung übernommen, sondern mitunter noch modifiziert werden müssen<br />

(z.B. hinsichtlich der Belegung der I/O Ports). Dies verstärkt zusätzlich den<br />

Lerneffekt.<br />

Abbildung 1: Edsim51 Oberfläche<br />

MOP_Laboruebung_1.doc Seite 2 von 6 <strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

16.10.2013 Prof. Dr. Sven-Hendrik Voß


Abbildung 2: Peripherie-Anschlußbelegung des EdSim51<br />

Aufgaben<br />

1. Machen Sie sich mit der Simulationsumgebung Edsim51 vertraut. Eine<br />

umfassende Funktionsbeschreibung ist den Dokumentationen unter<br />

http://www.edsim51.com/simInstructions.html zu entnehmen. Machen Sie sich<br />

insbesondere mit der Adressierung der Peripheriebausteine, sowie mit der<br />

Ansteuerung der I/Os vertraut (siehe dazu auch Abbildung 2).<br />

Da wir die genaue Assembler-Syntax noch nicht kennengelernt haben, seien hier<br />

zunächst als Vorgriff auf Späteres drei wesentliche Bitmanipulations-Befehle<br />

(siehe auch MOP_Labor_8051Befehlsliste.pdf) gegeben:<br />

CLR: Löschen eines Pins<br />

SETB: Setzen eines Pins<br />

CPL: Komplementieren eines Pins<br />

Einzelne Pins (Bits) werden im Befehl als Parameter hinzugefügt, z.B. SETB P1.7<br />

(setzt Pin 7 von Port 1 auf '1'). Experimentieren Sie mit diesen Befehlen und den<br />

Anschlüssen in der Simulationsumgebung Edsim51. Nach dieser Aufgabe sollten<br />

Sie in der Lage sein, einzelne Pins des simulierten 8051 Bausteins einzulesen<br />

(z.B. Switchbank), auszugeben (z.B. LEDs), sowie einen Überblick über den<br />

Gesamtaufbau gewonnen haben. Hinweis: Beachten Sie insbesondere die aktiven<br />

Pegel (high / low-Pegel)<br />

MOP_Laboruebung_1.doc Seite 3 von 6 <strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

16.10.2013 Prof. Dr. Sven-Hendrik Voß


2. In der Grundeinstellung wird EdSim51 mit einem Systemtakt von 12 MHz versorgt.<br />

a. Wie lange dauert eine Periode des Taktes in Nanosekunden (ns)?<br />

______________________________________________________________<br />

b. Die Pulsweite (Duty Cycle) ist definiert als Quotient der High-Pegel-Dauer /<br />

Periodendauer in Prozent. Diese sei zunächst angenommen als 40%. Wie<br />

lange dauert der High-Pegel des Taktes? Nehmen wir nun jeweils Werte von<br />

35% und 55% an. Wie lange dauert der High-Pegel des Taktes dann?<br />

______________________________________________________________<br />

______________________________________________________________<br />

c. Angenommen der 8051 Mikroprozessor benötige 6 Takte zur Abarbeitung eines<br />

Maschinenzyklus. Wie lange dauert ein Maschinenzyklus? Beachte: ein<br />

Maschinenzyklus ist häufig ungleich der Zeitspanne zur Ausführung eines<br />

Befehls. Ein Befehl benötigt typischerweise zwischen 1 und 3 Maschinenzyklen.<br />

______________________________________________________________<br />

______________________________________________________________<br />

d. Welche Frequenz besitzt ein Signal mit einer High-Pegel-Dauer von 2ms und<br />

einer Low-Pegel-Dauer von 400µs?<br />

______________________________________________________________<br />

3. Frischen Sie Ihre Kenntnisse in Binörcodierung, Zahlen- und Zeichendarstellung<br />

(siehe GDS) auf.<br />

a. Stellen Sie die Zahl (51234) 10 im Binärformat und im Hexadezimalformat dar.<br />

______________________________________________________________<br />

______________________________________________________________<br />

b. Die 8-Bit Variable x besitzt den dezimalen Wert x=158. Wie ist die Belegung der<br />

einzlenen Bits dieser Variable x?<br />

Bit 7 0<br />

c. Wie ist die Belegung einer 16-Bit Variablen y mit dezimalem Wert y=157?<br />

Bit 16 0<br />

MOP_Laboruebung_1.doc Seite 4 von 6 <strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

16.10.2013 Prof. Dr. Sven-Hendrik Voß


d. Stellen Sie die Variable x=158/2 als Binärzahl dar. Was beobachten Sie bei<br />

einer Division durch 2?<br />

Bit 7 0<br />

______________________________________________________________<br />

______________________________________________________________<br />

e. Stellen Sie die Variable x=158/4 als Binärzahl dar, sowie die Variable z=158%4<br />

(%: Modulo-Operation).<br />

Bit 7 0<br />

Bit 7 0<br />

f. Welchem Buchstaben entspricht die Bitkombination 0x53 bei der Interpretation<br />

als ASCII-Zeichen?<br />

______________________________________________________________<br />

4. Im seminaristischen Unterricht wurden die Grundlagen zur Rechnerarchitektur<br />

vermittelt. Beantworten Sie folgende Fragen:<br />

a. Worin besteht der grundlegende Unterschied zwischen der von-Neumann- und<br />

der Harvard-Architektur? Welche grundlegende Gemeinsamkeit besteht<br />

zwischen beiden?<br />

______________________________________________________________<br />

______________________________________________________________<br />

b. In welche typischen Arbeitsschritte ist die Befehlsabarbeitung beim von-<br />

Neumann-Rechner üblicherweise gegliedert?<br />

______________________________________________________________<br />

______________________________________________________________<br />

5. Erstellen Sie Ihr erstes Programm in Pseudocode. Das Programm soll die Summe<br />

von zwei Dreiecksflächen berechnen. Die Grundseite und die darauf senkrecht<br />

stehende Höhe der beiden Dreiecke seien jeweils bekannt. Stellen Sie die<br />

mathematische Formel <strong>für</strong> die Berechnung auf und bilden Sie diese daraufhin in<br />

Pseudocode nach.<br />

MOP_Laboruebung_1.doc Seite 5 von 6 <strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

16.10.2013 Prof. Dr. Sven-Hendrik Voß


Denken Sie inbesondere auch an das Allozieren von Speicherplätzen. Im Speicher<br />

muss Platz reserviert werden <strong>für</strong> alle Daten, mit denen gerechnet wird. Machen<br />

Sie sich vorab Gedanken wo<strong>für</strong> und wieviel Speicherplatz <strong>für</strong> wieviel Eingabewerte<br />

und Ergebniswerte Sie benötigen.<br />

Die Rechenaufgaben in Pseudocode einem hypothetischen Rechner<br />

(Akkumulatormaschine) übertragen zu können, setzt Kenntnis über den<br />

Befehlsvorrat voraus. Im Folgenden finden Sie eine Auflistung aller relevanten<br />

Befehle.<br />

ADD<br />

addiert den in der Eingabe der ALU<br />

enthaltenen Wert zum Wert des Akkumulators.<br />

Das Ergebnis steht im Akkumulator<br />

CLEAR<br />

setzt den Wert der ALU, insbesondere des<br />

Akkumulators, auf 0 (Null)<br />

LADE Speicheradresse<br />

MULT<br />

MULT*K Wert<br />

holt den in der angegebenen Speicheradresse<br />

gespeicherten Wert in die (in das<br />

Eingaberegister der) ALU<br />

multipliziert den in der Eingabe der ALU<br />

enthaltenen Wert mit dem Wert des<br />

Akkumulators. Das Ergebnis steht im<br />

Akkumulator<br />

multipliziert den im Akkumulator enthaltenen<br />

Wert mit dem im Befehl angegebenen Wert.<br />

Das Ergebnis wird anschließend wieder in den<br />

Akkumulator geschrieben<br />

S[Index]<br />

reserviert Speicher an Adresse [Index]<br />

SPEICHERE Speicheradresse<br />

speichert den von der ALU berechneten im<br />

Akkumulator abgelegten Wert in die<br />

angegebene Speicheradresse<br />

STOP<br />

beendet das Programm<br />

MOP_Laboruebung_1.doc Seite 6 von 6 <strong>Beuth</strong> <strong>Hochschule</strong> <strong>Berlin</strong><br />

16.10.2013 Prof. Dr. Sven-Hendrik Voß

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!