13
Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Lab Mikroprozessoren sind kleine Computer, die mit externen Geräten Daten austauschen können. Sie verfügen über Speicher, um Programme und Daten zu speichern und Eingangs- und Ausgangstore, um mit anderen Geräten zu verkehren. Das Grundsystem wird Mikrocomputer genannt und die über Eingangs/Ausgangstore verbundenen Geräte werden als Peripheriegeräte bezeichnet. Die einzelnen Komponenten werden mittels Adreß-, Daten- und Steuerbusleitungen verbunden. Die Daten (Befehle und numerische Daten) werden in Form von BIT-Folgen verarbeitet. BIT (binary digit): einstellige Ziffer: „Eins“ oder „Null“ (1 od. 0) bzw. „high“ or „low“ BYTE: zu Worten zusammengefaßte Bits. Besonders ältere Mikroprozessoren haben oft noch eine Wortlänge von acht Bits. Der Speicher ist auch heute noch in Bytes zu je 8 BIT organisiert. Die Speicher eines Mikrocomputers können eine bestimmte Anzahl von BIT-Wörtern (Bytes) speichern: z.B: 1 K = 2 10 = 1024. Speicherarten: RAM: (random access memory): frei adressierbarer Lese/ Schreib - Speicher ROM: (read only memory): Festwert- oder Permanentspeicher, der nur gelesen werden kann. Bei der Fertigung des Mikrocomputers wird eine einmalige Programmierung vorge- nommen - vom Hersteller - sodaß die Funktion des Bausteins endgültig festgelegt ist. PROM: (programable ROM): Der Anwender programmiert diese ROMs selbst. Die Programme können dann nicht mehr geändert werden. EPROM: Wiederholt vom Anwender neu programmierbare PROMs. Der 8085 - Mikroprozessor des µLab besitzt einen 2K ROM - Speicher und einen 1 K RAM - Speicher. Mikroprozessor 1

Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Lab

Mikroprozessoren sind kleine Computer, die mit externen Geräten Daten austauschen können. Sie verfügen über Speicher, um Programme und Daten zu speichern und Eingangs- und Ausgangstore, um mit anderen Geräten zu verkehren. Das Grundsystem wird Mikrocomputer genannt und die über Eingangs/Ausgangstore verbundenen Geräte werden als Peripheriegeräte bezeichnet. Die einzelnen Komponenten werden mittels Adreß-, Daten- und Steuerbusleitungen verbunden.

Die Daten (Befehle und numerische Daten) werden in Form von BIT-Folgen verarbeitet.

BIT (binary digit): einstellige Ziffer: „Eins“ oder „Null“ (1 od. 0) bzw. „high“ or „low“

BYTE:zu Worten zusammengefaßte Bits. Besonders ältere Mikroprozessoren haben oftnoch eine Wortlänge von acht Bits. Der Speicher ist auch heute noch in Bytes zu je 8 BIT organisiert.

Die Speicher eines Mikrocomputers können eine bestimmte Anzahl von BIT-Wörtern (Bytes) speichern: z.B: 1 K = 210 = 1024.

Speicherarten:

RAM: (random access memory): frei adressierbarer Lese/ Schreib - Speicher

ROM: (read only memory): Festwert- oder Permanentspeicher, der nur gelesen werden kann. Bei der Fertigung des Mikrocomputers wird eine einmalige Programmierung vorge-nommen - vom Hersteller - sodaß die Funktion des Bausteins endgültig festgelegt ist.

PROM: (programable ROM): Der Anwender programmiert diese ROMs selbst. Die Programme können dann nicht mehr geändert werden.

EPROM: Wiederholt vom Anwender neu programmierbare PROMs.

Der 8085 - Mikroprozessor des µLab besitzt einen 2K ROM - Speicher und einen 1 K RAM - Speicher.

Mikroprozessor1

Page 2: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Die Speicherbelegung des µ-Lab ist wie folgt organisiert:

LED = Leuchtdiode (light emitting diode)

Die einzelnen Komponenten des Mikroprozessors sind durch Bus - Leitungen miteinander verbunden. Ein Bus besteht aus einer Anzahl von Signalleitungen, die die einzelnen Elemente des Systems parallel verbinden. Diese Signalleitungen übertragen je ein BIT durch die Spannung „high“ (etwa 5 Volt) oder „low“ (etwa 0 Volt). Der Adress - Bus mit 16 Bit wird verwendet, um eine Komponente anzusteuern (Einwegübertragung, geht vom Mikroprozessor aus). Wenn der Mikroprozessor eine bestimmte Komponente, angesteuert hat (z.B. eine Speicherstelle - Byte), so überträgt er die Daten über den 8-Bit - Daten - Bus. (Zweiweg-Bus, Übertragung von und zum Mikroprozessor). Der Steuer - Bus ist ein Einweg-Bus, über den die Speicher und die Ein/Ausgabe-Einheit angesteuert werden, damit sie bereit sind, zum richtigen Zeitpunkt entweder Daten aufzunehmen oder abzugeben. Im Speicher wird dann in jene Speicherstelle ein ganzes Wort (8 Bit parallel) geschrieben oder von ihr gelesen, deren Adresse an den Adresseingängen anliegt.

Mikroprozessor2

Page 3: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Der Mikroprozessor tauscht mit allen Komponenten Informationen über die gleichen Datenleitungen des Datenbus aus. Dabei wird jene Komponente, mit der der Mikroprozessor über den Datenbus verkehren will, angesteuert und die übrigen Bauteile ausgeschaltet (Tri - state – Eigenschaft, d.h. jede Komponente „sieht“ zwar im Prinzip die Daten aller anderen, ignoriert diese aber). Ein Oszillator (Quarz) dient als Systemtaktgenerator. Dieser Generator synchronisiert alle Bauteile des Systems und bestimmt die zeitliche Steuerung der Arbeitsweise des Mikroprozessors (2 MHz - Taktgeber: 1 Takt entspricht etwa 0.5 µs). Für die Ausführung eines Befehls sind aber im Allg. mehrere Taktperioden erforderlich.

R E G I S T E R

Jeder Mikroprozessor enthält eine Anzahl von internen Speicherplätzen, die als Register bezeichnet werden . Im Gegensatz zu den Speicherplätzen des RAM, die über die Bus-Leitungen angesteuert werden, steuert der Prozessor die Register direkt über die eingebaute Steuerlogik an. Jedes Register enthält 1 Byte (8 Bit - Information). Die Register moderner Prozessoren haben BIT-Wortbreiten bis zu 64 BIT. Auch der Datenbus ist heut zu Tage aus Geschwindigkeitsgründen bereits mit viel größeren Wortbreiten ausgestattet – d.h. es werden mehrere Bytes parallel übertragen.

Folgende Register stehen im Prozessor des µLab zur Verfügung:

A . . . . . AKKUMUIATOR FL . . . . . FLAG-REGISTER B,C,D,E,H,L . . . . ALGEMEINE RECHENREGISTERWeiters: Stapelregister, Programmzähler PC, Interrupt Status Register

Mikroprozessor3

Page 4: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Komponenten des Mikroprozessors:

ALU: dient zur Bearbeitung der Daten ZWISCHENREGISTER: Hilfsspeicher (kein Zugriff für den Programmierer möglich) FLAG-REGISTER: enthält Flipflops, die auf gewisse Zustände hindeuten (negative Zahl,

Übertrag, Overflow, usw.)

BEFEHLSREGISTER, DEKODER, PC und die Steuer- und Zeitgeber-Logik werden dazuverwendet, Anweisungen aus den Speichern zu holen und ihre Ausführung zu steuern.

Spezielle Register:

AKKUMULATOR: In diesem Register werden fast alle Rechenoperationen zwischengespeichert

FLAG-REGISTER: enthält logische Schalter für verschiedene Kontrollzwecke: Vorzeichenschalter, Übertrag, Parity-bit (Prüfbit) Null-Bit. Die Flag-Register werden nach jedem Befehl neu gesetzt.

PC – REGISTER (program-counter): Dieses Register enthält immer die Adresse des nächsten auszuführenden Programmbefehls. Der Inhalt des PC wird auf den Adreßbus gelegt, wenn eine Anweisung aus dem Speicher gelesen werden soll. Die adressierte Anweisung erscheint dann auf dem Datenbus. Wenn der Prozessor die Anweisung gelesen hat, wird der PC erhöht bzw. bei einer Sprunganweisung wird die Sprungan-weisung in den PC geladen.

Mikroprozessor4

Page 5: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

ASSEMBLER - PROGRAMME

Eine Anweisung im Binärcode z.B. 00111100 lautet hexdezimal "3C". Dieser Maschinen-code wird durch eine Kurzbezeichnung, einen mnemonischen Code (= Abkürzung des Befehlswortlautes zur besseren Lesbarkeit durch den Programmierer) ersetzt.

Beim 8085 Mikroprozessor bedeutet z.B.:

3 C ... Inkrementiere das A-Registerdie Kurzbezeichnung dafür lautet: INR A (increment register A)

Jeder Anweisung wird ein Code zugeordnet und Programme, die in dieser Form geschrieben sind, heißen Assembler-Programme.

Programmbeispiel: ZÄHLEN BIS ZEHN

BASIC - Programm: 1 COUNT = 02 COUNT = COUNT + 13 IF COUNT = 10 THEN GOTO 54 GOTO 25 STOP

ASSEMBLER – gleiches Programm wie oben (für Prozessor 8085):

MVI A,0 A - Register (Akkumulator) Null gesetzt (MVI = move immediate)LOOP INR A Inkrementiere A - RegisterCPI 10 Vergleiche A-Register mit 10 (CPI = compare immediate, hier wird

als Operation einfach eine Subtraktion durchgeführt, die bei Gleichheit „null“ ergibt)

JZ ENDE Gehe zu ENDE, wenn 10 erreicht ist (JZ = jump to ... on zero, wennvorhergehender Vergleich „null“ ergeben hat)

JMP LOOP Wiederhole (JMP = jump to .., springe zur Adresse...) ENDE HLT Halt

Die Marken (= „labels“) wie z.B. das Wort „Loop“ bezeichnen Stellen des Programms, die als Sprungziele oder als Startadressen für Unterprogramme dienen können.

Mikroprozessor5

Page 6: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Dasselbe Programm in MASCHINENSPRACHE:

Speicheradresse Speicherinhalt (memory adress) (memory contents)

hexadezimal binär

0800 3 E 001111100801 000802 3 C0803 F E 0804 0 A 0805 C A0806 0 b 0807 0 8 0808 C 3 0809 0 2 080A 0 8 080b 7 6

3 E ist der Opcode (Operationscode) für die Anweisung MVI A, dies bedeutet, daß das direkt darauf folgende Byte in den Akkumulator zu laden ist. Die nächste Speicherstelle (0801) enthält das zu ladende Byte (null). Die dritte Speicherstelle enthält den Opcode für die Anweisung INR A (3 C), das Inkrementieren des Akkumulators. FE ist der Opcode für die Anweisung CPI, die unmittelbar darauf folgende Speicherstelle enthält das mit A zu vergleichende Byte (dezimal 10 entspricht hexadezimal 0A). Wenn 10 erreicht ist und der Vergleich positiv ausgeht (d.h. Subtraktion ergibt „null“) wird das „Zero-FLAG“ gesetzt. Die Anweisung JZ hat den Opcode CA (Sprung, wenn „Zero-FLAG“ gesetzt ist). Die beiden folgenden Speicherstellen enthalten die zugehörige Sprungadresse - zuerst den niederwertigen und dann den höherwertigen Teil von 080b: zuerst 0b dann 08. Die Anweisung JMP besitzt den Code C 3 und unmittelbar anschließend steht wieder die Sprungadresse, die hier grundsätzlich aus 2 Bytes besteht. Beendet wird das Programm mit dem Byte 76, was der Opcode für HALT ist. Ein Programm kann nur in Maschinensprache direkt ins µ-Lab eingegeben werden. Die Übersetzung von hexadezimal in binär führt das Lab selbst durch. Der mnemonische Code für den 8085 Mikroprozessor ist in weiter unten stehender Tabelle dem einzugebenden Opcode gegenübergestellt.

Mikroprozessor6

Page 7: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

BEFEHLSZYKLUS

Der Befehlszyklus setzt sich aus dem Abrufzyklus und dem Ausführungszyklus zusammen. Beim Abrufzyklus gibt das Befehlsregister die Informationen ,an den Befehlsdekoder weiter. Der Befehlsdekoder erkennt den Opcode und erzeugt Steuersignale für die Zeitgeber- und Steuer- Schaltkreise. Diese verhalten sich wie ein Prozessor innerhalb des Mikroprozessors. Ein ROM innerhalb eines Mikro- Prozessor- IC enthält einen Mikrocode, der den Prozessor genauestens anweist, was er bei der Ausführung jeder Anweisung (in Maschinensprache) zu tun hat.

Im Ausführungszyklus wird die eigentliche Arbeit verrichtet. Es gibt vier Grundarten von Operationen:

a) Daten vom Speicher oder Eingangstor lesen b) Daten in den Speicher oder das Ausgangstor senden c) Operation wird intern im Prozessor ausgeführt (z.B. Register- Operationen) d) Die Kontrolle wird an eine andere Speicherstelle übertragen (Sprungbefehle, Unterprogrammaufruf usw.)

Wenn die entsprechende Operation ausgeführt ist, wird dies durch das Mikro-programm-der Steuerlogik angezeigt. Der PC wird inkrementiert und das nächste Byte des Programmes wird in das Befehlsregister geladen.

MASCHINENZYKLUS

Die Durchführung eines Maschinenbefehls (Befehlszyklus) erfolgt in einem oder mehreren Maschinenzyklen. Der erste Maschinenzyklus jeder Anweisung besteht aus dem Abruf des Opcodes. Ein weiterer Maschinenzyklus wird dann benötigt, wenn es sich um einen Speicherzugriff oder um eine Ein/Ausgabe handelt, damit die Datenübertragung stattfinden kann. Im HARDWARE - EINZELSCHRITT - Modus wird bei jedem Drücken der Taste ein Maschinenzyklus ausgeführt. Jeder Maschinenzyklus besteht aus einem oder mehreren Takten, deren Länge konstant ist und durch die Zeitgeberlogik kontrolliert wird. Im Befehls-Einzelschrittmodus wird bei jedem Drücken der Taste ein Befehlszyklus ausgeführt.

Beispiele. a) Input - Tor : LED - Anzeige im HARDWARE - Mode b) im SINGLE - STEP - Mode

Mikroprozessor7

Page 8: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

BEDEUTUNG DER TASTEN des µ-LAB

RESET: a) Stoppt ein laufendes Programm b) oder - falls kein Programm läuft - bringt den Mikroprozessor in

einen definierten Grundzustand

RUN: Startet ein Programm HDWR STEP: (Hardware step) Exekutiert einen einzelnen Maschinenzyklus eines

Programmes INSTR STEP: (Instruction step) Exekutiert einen einzelnen Maschinenbefehl

(Befehlszyklus) eines Programmes INTRPT: (Interrupt) Ermöglicht einen user-definierten Hardware Interrupt FETCH PC: (Fetch Program Counter) Zeigt den Inhalt des Programmzählers FETCH ADDRS: Eingabe einer Speicheradresse samt Inhalt FETCH REG: Zeigt Registerinhalt beginnend mit Register A an. Mit STORE/INCR:

Zugang zu allen übrigen -Registern STORE/INCR: Speichert Eingabe in die angegebene Adresse oder Register

und erhöht Adresse um 1 bzw. zeigt nächstes Register

DECR: Vermindert Adresse um 1 bzw. zeigt vorhergehendes Register

Beispiel: Überprüfung von Registerbefehlen mit FETCH REG

Mikroprozessor8

Page 9: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Mikroprozessor9

Page 10: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Mikroprozessor10

Page 11: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

Übung 1

Exekution eines bereits gespeicherten Programmes

a) FETCH ADRS: µLab wartet auf die Eingabe einer Adresse b) 05F9 Dies ist die Startadresse für das Programm "Raketenzündung", das

im Monitorprogramm des ROM gespeichert ist. c) RUN Starten des Programmes d) RESET Stoppen des Programmes

Übung 2

Wirkungsweise der Adreß- und Datenbusleitungen

Das folgende Programm liest die Bitfolge vom Eingangstor und zeigt sie an der LED-Anzeige am Ausgangstor.

START: LDA 2000 (Lade Inhalt von Adresse 2000 in denAkkumulator, LDA = load A from address)

CMA (Komplementbildung des Inhaltes von A, da die Ausgangs- LED's mit negativer Logik betrieben werden, d.h. „null“ für „Leuchten“ u. umgek.)

STA 3000 (Speichere Inhalt des Akkumulator auf Adresse 3000 ( = LEDs, STA = store A to address)

JMP START (Sprung zur Adresse des Anfangs)

a) Kodieren des Programmes

09000901 - -0902 - -0903 - -0904 - -0905 - -0906 - -0907 - -0908 - -0909 - -

Mikroprozessor11

Page 12: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

b) Überprüfen des Code c) Exekution des Programmes mit INSTR STEP:

Bei jedem Drücken der Taste wird ein vollständiger Befehlszyklus durchgeführt.

Übung 3

Verwendung von Systemunterprogrammen: Es soll ein Programm entworfen werden, daß nach Eingabe einer bestimmten Folge von zwei Zahlen (z.B. 4E ) einen Beep-Ton-erzeugt. Dazu stehen zwei Systemroutinen zur Verfügung.

Name Startadresse Zweck

KIND 014b Lesen der Tastatur und übertragen der gedrückten HEX-Zahl in den Akkumulator

BEEP 0010 Beep-Ton Generator

a) Erstellen eines Flußdiagrammes

b) Kodierung des Flußdiagrammes (Startadresse: 0800)

Mikroprozessor12

Page 13: Übung Nr. 1b: MIKROPROZESSOR, Hewlett - Packard µ-Labinstitute.unileoben.ac.at/physik/Me%DFtechnik/Mikroprozessor.pdf · Der mnemonische Code für den 8085 Mikroprozessor ist in

c) Eingabe des Programmes und Testen

Mikroprozessor13