MICO-80 - IED Kammerer
MICO-80 Bedienungsanleitung
Einplatinen-Mikrocomputer
MICO-80
Bedienungsanleitung
© 1985/2014 IED München GmbH
http://www.kammerer.net
-1-
MICO-80 Bedienungsanleitung
Inhaltsverzeichnis:
1.
Einführung ............................................................................................................................. 3
2.
Inbetriebnahme des MICO-80 ............................................................................................... 4
3.
Tastenfeld............................................................................................................................... 5
4.
Auflistung der Unterprogramme ........................................................................................ 18
5.
Einspeichern von Programmen in den RAM-Bereich....................................................... 19
4.1. Das Einspeichern von Daten und Konstanten in den RAM-Bereich ................................. 19
4.2. Vor- und Rückwärtsauslesen eingespeicherter Informationen .......................................... 21
4.3. Die Festlegung des MICO-80 Speicherbereichs ............................................................... 23
6.
Die Programmabarbeitung.................................................................................................. 26
7.
Die Ein- und Ausgabe von Informationen über den Ein-Ausgabe-Baustein 8255 ......... 29
8.
Darstellung von Textsymbolen in der Anzeige ................................................................. 32
9.
Programmbeispiele im Z80-Code ....................................................................................... 35
10. Serielle Schnittstelle ........................................................................................................... 39
11. Installation und Start des Entwicklungssystems ............................................................. 41
12. Weiterführende Literatur ..................................................................................................... 42
-2-
MICO-80 Bedienungsanleitung
1. Einführung
Mikrocomputersysteme können heute aus nur wenigen hochintegrierten Halbleiterbausteinen
aufgebaut werden. Die hohe Betriebssicherheit, ein niedriger Preis ermöglichen es, dass diese
Systeme sowohl in Maschinen und Anlagen der industriellen Technik, als auch in Geräten des
täglichen Bedarfs Steuer-, Regel- und Rechenfunktionen übernehmen.
Im Zuge dieser fortschreitenden Entwicklung werden immer mehr Ingenieure, Techniker und
Facharbeiter mit Mikrocomputersystemen konfrontiert.
Mikrocomputer zeichnen sich dadurch aus, dass eine vom Anwendungsfall unabhängige Schaltung
ihre speziellen Eigenschaften erst durch die Programmierung erhält.
Es gibt heute unterschiedliche Mikrocomputersysteme, die sich hinsichtlich ihres Aufbaues und
ihrer Programmierung erheblich unterscheiden. Besonders weit verbreitet sind die
Mikroprozessorbausteine 8085 und der aufwärts kompatible Mikroprozessor Z80.
Der betriebsfertig aufgebaute Einplatinen-Mikrocomputer MICO-80, der mit dem
Mikroprozessorbaustein Z80 ausgestattet ist, kann vielseitig angewendet werden:
•
•
•
•
•
•
•
•
Als Lehr- und Übungscomputer zur Erarbeitung des Grundbefehlssatzes der
Mikroprozessoren 8080/8085.
Da weitgehende Kompatibilität zu den in den HPI-Fachlehrgängen eingesetzten Geräten
Profi-5 und Profi-50 besteht, können die in dem Lehrbuch IVC Mikrocomputer aufgeführten
Programmbeispiele direkt in den MICO-80 eingegeben und erarbeitet werden (s. Aufstellung
der Unterprogramme MICO-80).
Zur Erarbeitung des erweiterten Befehlssatzes des Z80 Mikroprozessors.
Zur Erarbeitung der Programmierung der peripheren Schnittstellenbausteine 8255 und PIO-Z80.
Erarbeitung und Wirkungsweise des CTC-Z80 und der erweiterten Interrupt Möglichkeiten der
Z80-CPU.
In Verbindung mit dem EPROM-Programmer PR 8 zur Programmierung von 1 KByte-, 2 KByteund 4 KByte-EPROMs.
Mit zusätzlichem erweitertem Betriebsprogramm Einführung in die speicherprogrammierbaren
Steuerungen.
Zur Durchführung aller steuerungstechnischen Aufgaben (Maschinensteuerungen, Steuerungen
von Heizungsanlagen usw.). Im Echtzeitbetrieb beträgt die Zykluszeit des MICO-80 ca.330 ns.
Bei der Lösung von unterschiedlichsten Steuerungsaufgaben mit dem MICO 80 lassen sich
Befehlskommandos und Textmerkmale direkt ohne Aufruf eines Unterprogramms in der Anzeige
darstellen.
-3-
MICO-80 Bedienungsanleitung
2. Inbetriebnahme des MICO-80
Das Mikrocomputersystem MICO-80 benötigt für den Betrieb eine stabilisierte Speisespannung von
5V=. Die gesamte Stromaufnahme des Gerätes beträgt bei Aussteuerung aller
Sieben-Segment-Anzeigen etwa 680 mA. Es wird jedoch empfohlen, ein Netzgerät mit 5V/1A zu
verwenden. Damit lässt sich auch der Strombedarf von peripheren Zusatzgeräten, die an das
System später angeschlossen werden, decken. IED bietet zum MICO-80 das Netzgerät NG-85 an,
das diese Forderung erfüllt.
[Bild 1] Anschluss des MICO-80 an die Versorgungsspannung
Der MICO-80 ist, wie in Bild 1 gezeigt, an die Speisespannung anzuschließen. Nach dem
Einschalten der Betriebsspannung oder nach Betätigung der Clear-Taste wird das System
initialisiert. In der Anzeige erscheint:
-4-
MICO-80 Bedienungsanleitung
3. Tastenfeld
Der MICO 80 besitzt insgesamt 25 Tasten, 16 schwarze, 8 orangerote und 1 rote Taste. Die Farben
der Tasten kennzeichnen folgende Funktionsmerkmale des Systems:
16 schwarze Tasten
Hexadezimale Eingabetasten.
8 orange Tasten
Es lassen sich die Werte 0 bis F
eingeben.
Betriebstasten.
1 rote Taste
Bei Betätigung wird eine bestimmte
Betriebsart des MICO-80 eingeleitet.
Initialisierunqstaste
[Bild 2] Lage der Tasten des Anzeigefeldes und der Peripheriestecker beim MICO 80
Die orangen Tasten bewirken folgende Betriebsfunktionen:
Taste "Store"= Betriebsart speichern.
Nach Anwahl einer RAM-Speicherzellenadresse wird der angezeigte
Speicherzellenwert nach der Betätigung der S-Taste übernommen. Wird mit
dem hexadezimalen Tastenfeld ein neuer Wert eingegeben und
anschließend die Taste betätigt, so wird dieser Wert in die angezeigte
RAM-Zelle übernommen. In beiden Fällen wird die Adressanzeige um 1
erhöht.
-5-
MICO-80 Bedienungsanleitung
Taste "Dekrementieren"
Durch Betätigen der Taste D wird die Adressanzeige um 1 erniedrigt. Ein
Programm kann durch Betätigung dieser Taste rückwärts ausgelesen
werden.
Taste "Adresse" wählen
Die Betätigung der Taste A bewirkt, dass die eingegebene
Zwei-Byte-Information, die in der Akku- und Flag-Anzeige sichtbar ist, in das
Adressregister übernommen wird.
Taste „Registeranzeige“
Nach Betätigung der Betriebstaste R wird der Registerbetrieb eingeleitet.
Allerdings ist nach der Betätigung der Betriebstaste R noch die
Registerpaarbestimmungstaste zu drücken. Nach Betätigung der
nachstehend aufgeführten schwarzen Registerbestimmungstasten wird
angezeigt:
A, FL
A‘, FL‘
B, C
B‘, C‘
D, E
D‘, E‘
H, L
H‘, L‘
Index Register IX
Index Register IY
-6-
MICO-80 Bedienungsanleitung
IF Flip Flop
Stand des Stackpointers
Letzter Programmzählerstand
Binär dekodierte Flag-Anzeige
In der Anzeige wird der binär decodierte Flag-Stand wie folgt dargestellt:
Stelle
27
26
25
24
23
22
21
20
Bedeutung
Sign-Flag (plus S=0 / minus S=1)
Zero-Flag (nicht Null Z=0 / Null Z=1)
ohne Bedeutung, daher dunkel gesteuert (im System zu 0 gesetzt)
Auxiliary-Carry-Flag (kein Hilfsübertrag AC=0 / Hilfsübertrag AC=1 )
ohne Bedeutung, daher dunkel gesteuert (im System zu 0 gesetzt)
Parity-Flag (ungerade Parität P=0 / gerade Parität P=1)
ohne Bedeutung, daher dunkel gesteuert (im System zu 1 gesetzt)
Carry-Flag (kein Übertrag CY=0 / Übertrag CY=1)
-7-
MICO-80 Bedienungsanleitung
Funktionstaste
Nach Betätigung der Taste F werden eine Reihe von Systemfunktionen
ausgelöst. Nachstehend sind die einzelnen Systemfunktionen aufgeführt:
00
Binäre Eingaben von Daten in den RAM-Bereich.
01
Adressbereiche überlappend verschieben.
02
Eine einzelne RAM-Zelle löschen, der restliche Speicherbereich
wird um eine Stelle aufgerückt.
03
Speicherzelleninhalt in eine RAM-Zelle einfügen, alle anderen
RAM-Zellen werden um eine Stelle nach hinten geschoben.
04
RAM-Speicherzellenbereich mit Konstanten füllen.
05
Berechnung von Relativ-Distanzen. Nach Eingabe der
Anfangsadresse und der Zieladresse wird die relativ zur Adresse
liegende Distanz angezeigt.
06
Umkehrung der Funktion 05. Nach Eingabe der Anfangsadresse
und nach Eingabe des Relativ-Abstandes wird die
Bestimmungsadresse berechnet.
07
HEX DUMP-Ausdruck mit vorwählbarer Baudrate von 300, 600
und 1200 Baud.
08
Eingabe eines ASCII-Textes in den RAM-Bereich vom
Tastenfeld eines Datensichtgerätes.
Baudrate vor wählbar mit 300, 600 und 1200 Baud.
09
Ausgabe eines Blocks von ASCII-Zeichen auf ein
Datensichtgerät.
Baudrate vor wählbar mit 300, 600 und 1200 Baud.
10
Übertragung von Informationen-von Cassette in den
RAM-Bereich des MICO-80
11
Aufzeichnen von Informationen aus dem RAM-Bereich des
MICO-80 auf Cassette.
12
USER-KEY = Anwender-Funktionstaste. Wird in die RAM-Zellen
8792 = C3, in 8793 = NW-Byte der Adresse und in 8794
HW-Byte der Adresse eingespeichert, so wird, nach Betätigung
der Funktionstaste 12, ein Anwenderprogramm auf der
abgelegten Adresse angesprungen.
13
Rück-Assembler 8080 Code
14
Rück-Assembler Z80 Code
15
Download einer Intel-Hexdatei über die serielle Schnittstelle mit
1200 Baud.
-8-
MICO-80 Bedienungsanleitung
Die Eingabe nach Betätigung der Funktionstaste ist wie folgt durchzuführen:
F00
Binäre Eingabe von Daten in den RAM-Bereich.
Nach Betätigung der orangefarbenen Taste F erscheint in der Anzeige:
Fu. 00 = 4d2
Anschließend ist die orangefarbene Taste G zu drücken, in der Anzeige
erscheint:
AE = Anfangsadresse, z. B. 8000 eingeben, Taste S drücken. Die Anzeige
erlischt.
Binärwerte eintasten, z.B. 0 0 1 1 1 1 1 0, in der Anzeige erscheint:
8000 3E
F01
Wird im Anschluss daran die orangefarbene Taste S betätigt, so wird 3E in
die RAM-Zelle 8000 eingespeichert.
Adressbereiche überlappend verschieben.
Orangefarbene Taste F und anschließend 01 drücken,
in der Anzeige erscheint: Fu.01 = 770
Taste G drücken, es erscheint
AA
Anfangsadresse eingeben (z.B. 0100) und orangefarbene Taste S
drücken. In der Anzeige erscheint:
EA
Endadresse eingeben (z.B. 0200) und orangefarbene Taste S
drücken, es erscheint
bA
.Bestimmungsadresse eingeben (z.B. 8000) und orangefarbene
Taste S drücken.
F02
Die Anzeige geht auf 0000 zurück, der Verschiebevorgang ist beendet.
Eine einzelne RAM-Zelle löschen, der restliche Speicherbereich wird um
eine Stelle aufgerückt.
Orangefarbene Taste F, anschließend 02 drücken. In der Anzeige erscheint:
Fu.02 = CF1
anschließend orangefarbene Taste G drücken, in der Anzeige erscheint:
AL = Adresse löschen.
Zu löschende RAM-Speicherzellenadresse (z.B. 8000) eingeben und
orangefarbene Taste S drücken, in der Anzeige erscheint:
EA = Endadresse des Datenblocks des RAM-Bereiches eingeben (z.B.
-9-
MICO-80 Bedienungsanleitung
F03
8100) und orangefarbene Taste S drücken, Die Anzeige geht auf 0000
zurück. Die RAM-Zelle 8000 ist gelöscht, der restliche Speicherbereich
wurde aufgerückt.
Einfügen eines Speicherzelleninhaltes in eine RAM-Zelle. Alle anderen
Speicherzellen werden um eine Stelle nach hinten geschoben.
Orangefarbene Taste F und anschließend 03 drücken, in der Anzeige
erscheint:
Fu.03 = d 20,
anschließend orangefarbene Taste G drücken, in der Anzeige erscheint:
AE = Adresse einfügen.
z.B. 8001 eingeben und orangefarbene Taste S drücken, in der Anzeige
erscheint:
EA = Endadresse eingeben (z.B. 804F ) und orangefarbene Taste S
drücken, in der Anzeige erscheint:
Co = einzufügende Konstante.
F04
Konstante eingeben (z.B. 55) und orangefarbene Taste S drücken. Die
Anzeige kehrt auf 0000 zurück. Die eingegebene Konstante 55 ist nun in
RAM-Zelle 8001 gespeichert, die restlichen Speicherzellen sind eine Stelle
nach hinten geschoben (Insert Funktion).
RAM-Speicherzellenbereich mit Konstanten füllen.
Orangefarbene Taste F, anschließend 04 drücken. In der Anzeige erscheint:
Fu.04 = 490
Orangefarbene Taste G drücken, in der Anzeige erscheint:
AA = Anfangsadresse
Anfangsadresse des mit Konstanten zu belegenden Bereiche eingeben
(z.B. 8000), orangefarbene Taste S drücken, in der Anzeige erscheint:
EA = Endadresse.
Endadresse des mit Konstanten zu belegenden Bereiches eingeben (z.B.
801F) und orangefarbene Taste S drücken, in der Anzeige erscheint:
Co = einzuspeichernde Konstante.
F05
Konstante eingeben (z.B. FF) und orangefarbene Taste S drücken. Die
Anzeige kehrt auf 0000 zurück. Die RAM-Speicherzellen 8000-801F sind
nun mit der Konstanten FF belegt.
Berechnung von Relativ-Distanzen.
- 10 -
MICO-80 Bedienungsanleitung
Orangefarbene Taste F, anschließend 05 drücken, in der Anzeige erscheint:
Fu.05 = DCO.
Anschließend orangefarbene Taste G drücken, in der Anzeige erscheint:
AA = Anfangsadresse.
Anfangsadresse eingeben (z.B. 810B) und orangefarbene Taste S drücken,
in der Anzeige erscheint:
bA = Bestimmungsadresse.
Bestimmuncsadresse = Zieladresse eingeben (z.B. 812F) und
orangefarbene Taste S drücken. In der Anzeige er¬scheint:
rA = Relativ zur Adresse 22
F06
Wird die höchstmögliche Distanz für den positiven Bereich 7F(16), für den
negativen Bereich 80(16) überschritten, so erscheint in der Anzeige
"Fehler".
Berechnen von Relativ-Distanzen.
Nach Eingabe der Anfangsadresse und nach Eingabe des
Relativ-Abstandes wird die Bestimmungsadresse ermittelt (Umkehrung der
Funktion 05). Orangefarbene Taste F, anschließend 06 drücken, in der
Anzeige erscheint:
Fu.06 = E11.
Orangefarbene Taste G drücken, in der Anzeige erscheint
AA = Anfangsadresse.
Anfangsadresse (z.B. 810B) eingeben und orangefarbene Taste S drücken,
in der Anzeige erscheint:
rA = Relativ-Abstand
Relativ-Abstand (z.B. 22) eingeben und orangefarbene Taste S drücken, in
der Anzeige erscheint:
bA = 812F.
F07
Das ist der berechnete Wert der Bestimmungs- bzw. Zieladresse.
HEX-DUMP-Ausdruck mit vorwählbarer Baudrate über ein Datensichtgerät
oder Drucker mit serieller Schnittstelle EIA232.
Orangefarbene Taste F, anschließend 07 drücken, in der Anzeige erscheint:
Fu.07- = 600
- 11 -
MICO-80 Bedienungsanleitung
Daraufhin orangefarbene Taste G drücken, in der Anzeige erscheint:
baud.
Nun ist die gewünschte Baudrate zu wählen.
Taste 3 = 300 Baud, Taste 6 = 600 Baud, Taste C = 1200 Baud
Nach Betätigung einer der drei aufgeführten Tasten erscheint in der
Anzeige:
AA = Anfangsadresse
Anfangsadresse des auszudruckenden Speicherbereiches eingeben (z.B.
8000) und orangefarbene Taste S drücken, in der Anzeige erscheint:
EA = Endadresse
Endadresse des auszudruckenden Speicherbereiches eingeben (z.B. 8100)
und Taste S drücken, in der Anzeige erscheint:
EA = 8100.
F08
Ist der gewünschte Speicherbereich ausgegeben, so kehrt die Anzeige auf
0000 zurück.
Eingabe eines ASCII-Textes vom Tastenfeld eines Datensichtgerätes in den
RAM-Bereich des MICO-80. Dabei muss eine serielle Schnittstelle nach
EIA232 vorhanden sein. Die Baudrate ist vorwählbar (300, 600 oder 1200
Baud).
Orangefarbene Taste F, anschließend 08 drücken, in der Anzeige erscheint:
Fu.08 = 882
Orangefarbene Taste G drücken, in der Anzeige erscheint: baud.
Baudwahl wie unter Fu.07 beschrieben vornehmen, in der Anzeige
erscheint:
AA = Anfangsadresse.
Anfangsadresse der RAM-Zelle,ab der die Daten eingespeic werden sollen,
eingeben (z.B. 8000) und orangefarbene Taste S drücken, in der Anzeige
erscheint:
EA = Endadresse.
Endadresse eingeben (z.B. 8500) und orangefarbene Taste S drücken, in
der Anzeige erscheint:
EA = 8500.
Nun können beliebige Texte eingegeben werden. Bei falscher Eingabe kann
- 12 -
MICO-80 Bedienungsanleitung
F09
eine Korrektur der eingespeicherten Information durch die Taste
Back-Space erfolgen. Will man das Eingabeprogramm vorzeitig verlassen,
so kehrt nach Betätigung von CTRL-C das Programm zur Adresse 0000
zurück. Für den späteren Ausdruckvorgang wird automatisch die zuletzt
eingegebene RAM-Speicherzelle abgelegt (87A0/87A1). Ist der
Speicherendbereich erreicht, so erscheint in der Anzeige ein Hinweis.
Ausgabe eines Blocks von ASCII-Zeichen auf ein Datensichtgerät oder
einen Drucker. Dabei muss eine serielle Schnittstelle nach EIA232
vorhanden sein. Die Baudrate ist vorwählbar (300, 600 oder 1200 Baud).
Die Software des MICO-80 ist so ausgelegt, dass wahlweise eine gesteuerte
Datenübergabe (Handshake-Betrieb) gewählt werden kann (siehe
Beschreibung Schnittstelle).
Orangefarbene Taste F, anschließend 09 drücken in der Anzeige erscheint:
Fu.09 = 800
Orangefarbene Taste G drücken, in der Anzeige erscheint: baud.
Baudwahl wie unter Fu.01 beschrieben vornehmen, in der Anzeige
erscheint:
AA = Anfangsadresse.
Anfangsadresse des auszudruckenden ASCII-Blocks eingeben
(z.B.8000) und anschließend orangefarbene Taste S drücken. In der
Anzeige erscheint:
EA = Endadresse.
F10
Wurde vorher die Funktion 08 benutzt, so ist lediglich die orangefarbene
S-Taste zu betätigen. Damit wird automatisch die vorher abgespeicherte
Endadresse übernommen.
Aufzeichnen von Informationen aus dem RAM-Bereich des MICO 80 auf
Cassette.
Orangefarbene Taste F, anschließend 10 drücken, in der Anzeige erscheint:
Fu.10 =
Orangefarbene Taste G drücken, in der Anzeige erscheint:
AA = Anfangsadresse.
Anfangsadresse des aufzuzeichnenden Speicherbereiches eingeben (z.B.
8000) und Taste S drücken, in der Anzeige erscheint:
EA = Endadresse.
Zuerst ist jedoch das Aufzeichnungsgerät an die Interface-Platine
anzustecken, einzuschalten und richtig auszusteuern. Die Interface-Platine
- 13 -
MICO-80 Bedienungsanleitung
ist am Stecker ST des MICO 80 anzustecken. Es sollte ein Kassettengerät
mit Handaussteuerung benützt werden.
Nach Eingabe der Endadresse des aufzuzeichnenden Speicherbereiches
(z.B. 8100) orangefarbene Taste S drücken. Die Aufzeichnung beginnt, in
der Anzeige erscheint:
F11
Nach erfolgter Aufzeichnung geht das Programm zur Adresse 0000 zurück.
Einlesen von Daten, die auf Cassette abgespeichert sind, in den
RAM-Bereich des MICO-80.
Orangefarbene Taste F, anschließend 11 drücken, in der Anzeige erscheint:
Fu.11 = 8d5
Das Kassettengerät ist über die Interface-Platine an den MICO-80
anzuschließen und einzuschalten. Nach Betätigung der orangefarbenen
Taste G wird der Überspielvorgang gestartet. In der Anzeige erscheint:
F12
USER-KEY = Anwender-Funktionstaste
Orangefarbene Taste F, anschließend 12 betätigen, in der Anzeige
erscheint:
Fu.12 = 8Cd.
Vor Betätigung der Start-Taste ist in den Speicherzellen 8792/93 und 8794
ein Sprungbefehl, der zum Anwenderprogramm
z.B.
8792 <= C3
8793 <= 00
8794 <= 80
F13
Ist ab Adresse 8000 das Anwender-Programm abgelegt, so wird nach
Anwahl der Funktion 12 und nach Betätigung der orangefarbenen Taste G
das Programm gestartet.
Rückassembler im 8080 Code. Ausdruck mit vorwählbarer Baudrate über
ein Datensichtgerät oder Drucker mit serieller Schnittstelle EIA232.
Orangefarbene Taste F, anschließend 13 drücken, in der Anzeige erscheint:
Fu.13- = 550
- 14 -
MICO-80 Bedienungsanleitung
Daraufhin orangefarbene Taste G drücken, in der Anzeige erscheint:
baud.
Nun ist die gewünschte Baudrate zu wählen.
Taste 3 = 300 Baud, Taste 6 = 600 Baud, Taste C = 1200 Baud
Nach Betätigung einer der drei aufgeführten Tasten erscheint in der
Anzeige:
AA = Anfangsadresse
Anfangsadresse des auszudruckenden Speicherbereiches eingeben (z.B.
8000) und orangefarbene Taste S drücken, in der Anzeige erscheint:
EA = Endadresse
Endadresse des auszudruckenden Speicherbereiches eingeben (z.B. 8100)
und Taste S drücken, in der Anzeige erscheint:
EA = 8100.
F14
Ist der gewünschte Speicherbereich disassembliert, so kehrt die Anzeige auf
0000 zurück.
Rückassembler im Z80 Code. Ausdruck mit vorwählbarer Baudrate über ein
Datensichtgerät oder Drucker mit serieller Schnittstelle EIA232.
Orangefarbene Taste F, anschließend 13 drücken, in der Anzeige erscheint:
Fu.14- = 553
Daraufhin orangefarbene Taste G drücken, in der Anzeige erscheint:
baud.
Nun ist die gewünschte Baudrate zu wählen.
Taste 3 = 300 Baud, Taste 6 = 600 Baud, Taste C = 1200 Baud
Nach Betätigung einer der drei aufgeführten Tasten erscheint in der
Anzeige:
AA = Anfangsadresse
Anfangsadresse des auszudruckenden Speicherbereiches eingeben (z.B.
8000) und orangefarbene Taste S drücken, in der Anzeige erscheint:
EA = Endadresse
Endadresse des auszudruckenden Speicherbereiches eingeben (z.B. 8100)
und Taste S drücken, in der Anzeige erscheint:
- 15 -
MICO-80 Bedienungsanleitung
EA = 8100.
F15
Ist der gewünschte Speicherbereich disassembliert, so kehrt die Anzeige auf
0000 zurück.
Download einer Intel-Hexdatei. Übertragung vom PC über die
Schnittstellenplatine IF-232 und Stecker ST2.
Orangefarbene Taste F, anschließend 15 betätigen, in der Anzeige
erscheint:
Fu.15=556.
Nach Betätigung der orangen Taste G erscheint
baud.
Mit Betätigung der schwarzen Taste C wird die Baudrate 1200 ausgewählt.
In der Anzeige erscheint:
SendEn
Auf dem PC ist der Upload zu starten.
Dies erfolgt im MICO-80 Entwicklungssystem im Programm EDI.EXE nach
Erstellen und fehlerfreier Assemblierung einer Datei mit den Tasten Alt-F9
und S. Nach erfolgreicher Übertragung erscheint in der Anzeige des
MICO-80:
EndE
Taste für Einzelschritt-Programmabarbeitung
Nach Betätigung der Taste E wird nur ein Befehl ausgeführt. Je nachdem, ob ein 1 Byte-, 2 Byte-, 3
Byte- oder 4 Byte- Befehl eingespeichert wurde, wird die Adressanzeige um 1, 2, 3 oder 4 Schritte
weitergeschaltet.
Taste für Programmabarbeitung im Automatikbetrieb Bei Betätigung der Taste G
beginnt der Prozessor mit der Programmabarbeitung: Am Ende eines Programms muss ein
HALT-Befehl, eine Restart-Anweisung oder ein Sprungbefehl stehen. Ein HALT-Zustand wird
durch, die links vom Tastenfeld angeordnete gelbe HALT-LED zur Anzeige gebracht.
Taste Break - unterbrechen
Nach Betätigung der Taste B wird der HALT-Zustand unterbrochen. Im Adressfeld steht die
RAM-Speicheradresse, die nach dem HALT-Befehl folgt.
- 16 -
MICO-80 Bedienungsanleitung
Taste Clear = System initialisieren
Nach Betätigung der Taste C wird der Programm-Counter auf 0000 zurückgestellt. Ferner wird das
INTE-FF zurückgesetzt. über die Initialisierungsroutine wird der Stack-Pointer auf den Wert 87
gestellt.
Nachstehend ist die Auflistung der im MICO 80 verwendeten Unterprogramme vorgenommen :
- 17 -
MICO-80 Bedienungsanleitung
4. Auflistung der Unterprogramme
Name
AASCI
A_TEXT
BAUD
BCOUT
DECOD
DEZH
DISRG
DUNKL
EXAF
FEHLN
FEHLR
HEXDZ
HEXIN
HL-DE
SECD
SECH
SUBHD
T16
T33
T45
T90
T270
TASTD
TASTM
TEXT8
Start
Kurzbeschreibung
Adresse
05ED
Serielle Ausgabe von 2 ASCII-Zeichen
oberes Akkuhalbbyte: Reg. B,
unteres Akkuhalbbyte: Reg. C
05F4
Ausgabe eines Blocks von 2 ASCII-Zeichen
Voreinstellung: Startadr. RPH, Endadr. RPD,
Baudrate entsprechend UP Baud
056B
Baudfestlegung bei serieller Ausgabe
06A7
Serielle Ausgabe von 2 ASCII-Zeichen
oberes Akkuhalbbyte: Reg. B
unteres Akkuhalbbyte: Reg. C
01C0
Anzeige der Speicherzelleninhalte 87F4 87F7
0390
Dezimal-Hexadezimal-Umwandlung einer
Zahl im Akku
01A1
Anzeige von Daten und Adreßregister
0380
Dunkelsteuerung der Anzeige
03FA
Tauschen des Akku- mit dem Inhalt des
Flagregisters
03A6
Ausschreiben des Wortes Fehler ohne
Rückkehr zum Programm
03CC
Ausschreiben des Wortes Fehler mit
Rückkehr zum Programm
0370
Hexadezimal-Dezimal-Umwandlung einer
Zahl im Akku
0707
Eingabe einer 4stelligen Hex-Zahl über die
Tastatur. Es kann im RPH ein Text-Merkmal
im 7-Segment-Code übergeben werden, das
links in der Anzeige steht
06BF
Vergleich mit RPH und RPD:
<HL> > <DE> : CY=1, sonst CY=0
0310
Variable Zeiten im Sekunden-Bereich
dezimal
0313
Variable Zeiten im Sekunden-Bereich
hexadezimal
06FA
Vergleich mit RPH und RPD:
<HL> = <DE> : Z=1, sonst Z=0
06C7
Zeitprogramm 1,6ms
05D4
Zeitprogramm 3,3ms
02DD
Zeitprogramm 4,5ms
02EA
Zeitprogramm 9ms
02EF
Zeitprogramm 27ms
0216
Tastenabfrage II
0223
Tastenabfrage I
0360
Darstellung von 8 Zeichen im Anzeigefeld
ZSECD
0300
ZSECH
0303
Variable Zeiten im 1/10 Sekundenbereich
dezimal
Variable Zeiten im 1/10 Sekundenbereich
hexadezimal
- 18 -
kompatibel zu
Profi-5/5E
beide
beide bei Wahl
von 87xx
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide
beide bei Wahl
von 87xx
beide
beide
MICO-80 Bedienungsanleitung
5. Einspeichern von Programmen in den RAM-Bereich
Der MICO-80 ist mit dem aufwärtskompatiblen Mikroprozessorbaustein Z 80 ausgerüstet.
Insbesondere der Personenkreis, der sich neu in die Mikrocomputerprogrammierung einarbeiten
muss, empfindet es einfacher, zunächst den Grundbefehlssatz der Mikroprozessoren 8080/8085 zu
erarbeiten. Außerdem steht zur Einarbeitung in die Programmierung des 8080/8085 das Fachbuch
IV C Mikrocomputer der HPI-Fachbuchreihe zur Verfügung, in dem der Befehlssatz des 8080/8085
ausführlich erklärt ist. Die in diesem Buch aufgeführten Programmbeispiele können direkt in den
MICO 80 eingegeben und abgearbeitet werden.
Daher wird zunächst die Assemblerschreibweise der 8080/8085-Prozessoren in der
Grundeinführung der Bedienung des MICO 80 verwendet. Es ist jedoch darauf zu achten, dass
wegen des erweiterten RAM-Bereiches die Anzeigezellen des Systems sowie die Maskierungszelle
anstelle der Adressen 83XX unter 87XX angesprochen werden müssen (siehe Aufstellung
Unterprogramme).
Erst im Kapitel 9 Erweiterte Z80-Befehle wird die etwas andere Befehlsschreibweise der Z80
Mikroprozessoren eingeführt. Damit lässt sich einfach die typische Befehlsschreibweise beider
Mikroprozessortypen (8080/8085 und Z 80) erarbeiten.
5.1. Das Einspeichern von Daten und Konstanten in den RAM-Bereich
Bevor eine Programmabarbeitung vorgenommen werden kann, müssen die Befehle und Daten der
Reihe nach in den RAM-Bereich eingespeichert werden.
Anwahl der Speicheradresse:
Die niedrigste RAM-Speicherzellenadresse in der Grundausbaustufe des MICO 80 ist 8000(16).
Diese Adresse muss zuerst angewählt werden.
Darstellung des Adress- und Datenfeldes der Siebensegmentanzeigen:
[Bild 3] Adress- und Datenfeld
Die Siebensegmentanzeige ist in ein Adressfeld und in ein Datenfeld aufgeteilt. Nach dem
Einschalten des MICO 80 oder nach Betätigung der C-Taste stellt sich die Anzeige entsprechend
Bild 3 ein.
Mit den schwarzen hexadezimalen Eingabetasten ist nun die RAM-Adresse 8000 einzutasten. Die
Adresse 8000 steht nun im Datenfeld. wie in Bild 4 dargestellt.
- 19 -
MICO-80 Bedienungsanleitung
[Bild 4] Eingabe der Anfangsadresse
Wird nun die orangefarbene Betriebstaste A betätigt, so erscheint in der Anzeige:
Anzeige nach Betätigung der A-Taste
Sie sehen, dass nach Betätigung der A-Taste die gewählte Anfangsadresse im Adressfeld des
Anzeigebereiches dargestellt wird. In den beiden äußersten rechten Siebensegmentanzeigen wird
der Inhalt der angewählten Speicherzelle dargestellt.
sWir wollen nun ein einfaches Programmbeispiel der Reihe nach ausführen:
Beispiel 1:
In die angegebenen RAM-Speicherzellen sind nachfolgend aufgeführte hexadezimale Werte
einzuspeichern.
3E
AA
06
BB
0E
CC
=>
=>
=>
=>
=>
=>
8000
8001
8002
8003
8004
8005
Zuerst ist die Adresse wie unter 4.1 beschrieben anzuwählen. Nach der Anwahl der Adresse ist der
erste einzuspeichernde Wert mit den schwarzen hexadezimalen Eingabetasten einzutasten (z.B.
3E). In der Anzeige erscheint:
BEISP0001:
Sprungmarke
Adresse
8000
8001
8002
8003
8004
8005
Mnemonische
Bezeichnung
DB
3EH
DB
0AAH
DB
06H
DB
0BBH
DB
0EH
DB
0CCH
Hex.
Anweisung
3E
AA
06
BB
0E
CC
- 20 -
Bemerkung
MICO-80 Bedienungsanleitung
Anschließend ist die Betriebstaste S zu betätigen. In der Anzeige erscheint:
Nach der Betätigung der Taste S wurde der vorher eingegebene Wert 3E in die RAM-Speicherzelle
8000 eingespeichert. Die Adressanzeige erhöht sich nach der Betätigung der S-Taste jeweils um 1.
Der nun in den beiden rechten Anzeigen stehende Wert ist der zufällige Inhalt der Speicherzelle
8001. Die übrigen Werte sind wie beschrieben ebenso abzuspeichern.
Mit den schwarzen Tasten AA eingeben, orangefarbene Taste S betätigen.
Mit den schwarzen Tasten 06 eingeben, orangefarbene Taste S betätigen.
Mit den schwarzen Tasten BB eingeben, orangefarbene Taste S betätigen.
Mit den schwarzen Tasten 0E eingeben, orangefarbene Taste S betätigen.
Mit den schwarzen Tasten CC eingeben, orangefarbene Taste S betätigen.
Die einzelnen Werte werden in die RAM-Zellen eingespeichert. Nach jeder Betätigung der Taste S
wird die Adressanzeige um 1 erhöht.
5.2. Vor- und Rückwärtsauslesen eingespeicherter Informationen
Es ist außerordentlich wichtig, nach einem Einspeichervorgang zu prüfen, ob die Werte auch richtig
in den entsprechenden RAM-Speicherzellen stehen. Diese Prüfung lässt sich durch das Vor- und
Rückwärtsauslesen der eingespeicherten Daten vornehmen. Sind alle Werte des Beispiels 1, wie
vorher beschrieben, eingespeichert, so steht die Adressanzeige auf 8006. In diesem Fall ist es am
besten, die orangefarbene Dekrementtaste D zu betätigen. Nach einmaliger Betätigung der Taste D
erscheint in der Anzeige.
Anschließend Taste D erneut betätigen, in der Anzeige erscheint:
In der eben geschilderten Weise sind die Speicherzellen zurück bis zur Adresse 8000 auszulesen
und zu kontrollieren. Man erkennt, dass bei jeder Betätigung der Taste D die Adressanzeige um 1
erniedrigt (= dekrementiert) wird.
Ebenso lassen sich die RAM-Speicherzellen auch durch Vorwärtsauslesen kontrollieren. Zunächst
ist die Anfangsadresse 8000 wie in 4.1 beschrieben anzuwählen. In der Anzeige erscheint:
- 21 -
MICO-80 Bedienungsanleitung
Im Anschluss daran ist die Taste S zu betätigen, in der Anzeige erscheint:
Anschließend Taste S betätigen, in der Anzeige erscheint:
usw.
Man erkennt, dass nach jeder Betätigung der Funktionstaste S ohne vorheriger Betätigung der
schwarzen hexadezimalen Eingabetasten die Adressanzeige um 1 erhöht, also inkrementiert
wurde.
Die Taste S hat eine Doppelfunktion. Werden mit den Hex-Tasten Informationen eingegeben, so
werden diese in die angewählte RAM-Speicherzelle übernommen. Die Adressanzeige wird
inkrementiert. Wird dagegen kein hexadezimaler Zahlenwert eingegeben, aber die Funktionstaste S
betätigt, so wird der vorher eingespeicherte Wert übernommen und die Adressanzeige um den Wert
1 inkrementiert. In diesem Falle wirkt die Taste S als Adress-Inkrementtaste.
- 22 -
MICO-80 Bedienungsanleitung
5.3. Die Festlegung des MICO-80 Speicherbereichs
Die folgenden RAM Speicheradressen bezieht sich auf einen RAM-Ausbau mit 2KByte, in
Klammern () für 1KByte. Ist nur 1KByte RAM Speicher verbaut, ändern sich die Adressen 87xx auf
83xx. Die Adressen sind alle in Hexadezimal Schreibweise angegeben.
8000 bis 87FF
RAM-Bereich des
MICO-80
(8000 bis 83FF)
2Kx8 (1Kx8) CMOS
RAM.
7800 bis 7FFF
1000 bis 1FFF
0000 bis 0FFF
Der Anwenderstack wird
vom Monitorprogramm
auf 87B1 (83B1) gestellt.
Zusatz-RAM-Bereich für
Anwenderwünsche
CMOS-RAM 2Kx8
Adressbereich des
Zusatz-EPROMs 4Kx8
für Zusatzfunktionen und
Anwenderprogramme
Monitorbereich des
MICO-80
4Kx8 mit zahlreichen
Systemprogrammen und
Unterprogrammen
[Bild 6] Speicherbelegung des MICO-80
SP = Stackpointer (Stapelzeiger)
- 23 -
MICO-80 Bedienungsanleitung
5.4. System RAM-Zellen
ADRESSE
87FF
87FE
87FD
87FC
87FB
87FA
87F9
87F8
87F7
87F6
87F5
87F4
87F3
87F2
87F1
87F0
87EF
87EE
87ED
87EC
87EB
87EA
97E9
87E8
87E7
87E6
87E5
87E4
87E3
87E2
87E1
87E0
87DF
87DE
87DD
87DC
87DB
87DA
87D9
87D8
87D7
87D6
87D5
87D4
87D3
87D2
87D1
SYMBOL
7-SEGMENT ANZ.7
.. 6
.. 5
.. 4
.. 3
.. 2
.. 1
.. 0
WORT 1
.. 2
.. 3
.. 4
KFL.
SOFTWARE-BREAK
ADRESSE <HW>
ADRESSE <NW>
DATEN <HW>
DATEN <NW)
A
FLAG
B
C
D
E
H
L
IX <HW>
IX <NW>
IY <HW>
IY <NW>
A'
FLAG'
B'
C'
D'
E'
DZ
H'
L'
IF-REGISTER
IF-REGISTER
SP <HW>
SP <NW>
PC <HW>
PC <NW>
VERWENDUNG
SEGMENT-DATEN-BUFFER
DISPLAY-DATEN-REGISTER
TASTEN MERKER
HW BYTE (00)
NW-BYTE (66)
SPRUNG (C3)
ADRESS-REGISTER
DATEN-REGISTER
CPU UND REGISTER RETTUNGSBEREICH
DUNKELMASKIERUNGSZELLE
INTERRUFT-REGISTER
STACK
PROGRAMM-COUNTER
- 24 -
MICO-80 Bedienungsanleitung
87D0
....
87B1
ALLGEMEIN
SYSTEM VERWENDUNG
5.5. I/O-Adressierung
Baustein
8255
Kanal / Steuerwort
KANAL A
KANAL B
KANAL C
CONTROL WORD
I/O-Adresse
00
01
02
03
Z80 PIO
KANAL A
KANAL B
CONTROL WORD A
CONTROL WORD B
10
11
12
13
Z80 CTC
KANAL 0
KANAL 1
KANAL 2
KANAL 3
20
21
22
23
Z80 PIO
SYSTEM
KANAL A
KANAL B
CONTROL WORD A
CONTROL WORD B
30
31
32
33
Der Ein-Ausgabe-Baustein 8255 steht dem Anwender zur freien Verfügung. Vor Benutzung muss
der Baustein jedoch vom Anwender programmiert werden. Ebenso lässt sich der PIO und der CTC
vom Anwender beliebig verwenden. Auch hier ist es erforderlich, die Bausteine zu programmieren.
Der PIO-System sollte vom Anwender nicht benutzt werden, da dieser ausschließlich für
Systemfunktionen belegt ist.
- 25 -
MICO-80 Bedienungsanleitung
6. Die Programmabarbeitung
In Kapitel 4 wurde gezeigt, wie die Befehle und Daten der Reihe nach in den
Schreib-Lese-Speicherbereich (RAM-Bereich) abgespeichert werden können. Damit ein
Datentransfer vorgenommen oder eine bestimmte logische oder arithmetische Aufgabe ausgeführt
werden kann, muss eine Programmabarbeitung erfolgen.
Die Programmabarbeitung kann beim MICO 80 erfolgen im Einzelschrittbetrieb oder im
Automatikbetrieb.
Ein weiteres Beispiel soll die Abarbeitung eines kleinen Programmes veranschaulichen.
Beispiel 2:
Durch einen Datentransferbefehl ist in den Akkumulator die hexadezimale Zahl 52 und in das
Register B die hexadezimale Zahl 05 zu bringen. Im Anschluss daran ist der Inhalt des Registers B
zum Inhalt des Akkumulators zu addieren. Das Endergebnis der arithmetischen Operation ist in
Adresse 8600 abzuspeichern.
Das Beispiel 2 ist wie folgt zu lösen:
1.
2.
3.
4.
5.
Erstellung eines Flussdiagrammes
Erstellung des Programmes. Dabei ist das Programm in einer Programmauflistung darzustellen.
Einspeichern der Daten nach Programmliste
Überprüfung der eingespeicherten Daten durch Auslesen der RAM-Speicherzelleninhalte
Abarbeitung des Programmes
a) im Schrittbetrieb,
b) im Automatikbetrieb
6. Überprüfung des Inhaltes des Akkumulators, des Registers B und der RAM-Speicherzelle 8600.
Lösung des 2. Beispiels:
1. Flussdiagramm
Start
52 => A
05 => B
<A>+<B> => A
<A> => 8600
Ende
- 26 -
MICO-80 Bedienungsanleitung
Erklärung:
Zuerst sind die zu verarbeitenden Werte durch MVI-Befehle in den Akku und in das B-Register zu
transferieren. Im Anschluss daran wird der Inhalt des Registers B zum Inhalt des Akkumulators
hinzuaddiert. Der ursprünglich im Akku stehende hexadezimale Wert 52 geht verloren, da der
Akkumulator nach ausgeführter Addition das Endergebnis enthält. Dieses Ergebnis wird am Ende
durch einen STA-Befehl in die RAM-Zelle 8600 abgespeichert.
2. Erstellung einer Programmliste
BEISP0002:
Sprungmarke
Adresse
8000
8002
8004
8005
8008
Mnemonische
Bezeichnung
LD
A,52H
LD
B,05H
ADD
A,B
LD
(8600H),A
HALT
Hex.
Anweisung
3E 52
06 05
80
32 0086
76
Bemerkung
52 => Akku
05 => Register B
<A> + <B> => Akku
<A> => 8600
Die Auflistung von Programmen wird meist nach einem bestimmten Schema vorgenommen. Am
Anfang der Liste steht bei umfangreicher Programmen eine Sprungmarke. Dadurch werden z.B.
bestimmte Einsprung-Punkte bei unbedingten und bedingten Sprüngen markiert. Bei sehr
einfachen Programmen kann das Feld für die Sprungmarke entfallen. Es folgt eine Spalte, in der die
Adresse aufgeführt ist. Bei der Einspeicherung der Programmdaten wird meist bei der niedrigsten
RAM-Speicherzelle begonnen. Es folgt die mnemonische Kurzbezeichnung und die hexadezimale
Anweisung. Zur besseren Programmübersicht wird in der Spalte "Bemerkung" in Kurzschreibweise
zur Programmierung ein Hinweis gegeben. In Sonderfällen, z.B. bei der Maskierung von
Datenwörtern, wird auch die binäre Anweisung zusätzlich im Programm mit angegeben.
3. Anfangsadresse 8000 wie unter 4,1 beschrieben anwählen und die Daten abspeichern.
4. Sind die Daten abgespeichert, so ist durch Rückwärtsauslesen die Richtigkeit der Daten zu
kontrollieren.
5. Abarbeitung des Programmbeispiels:
a. Abarbeitung des Programmes im Schrittbetrieb:
Vor Abarbeitung des Programmes ist die Anfangsadresse 8000 anzuwählen. Abarbeitung im
Einzelschrittbetrieb bedeutet, dass nach jeder Anweisung ein Interrupt ausgelöst wird und alle
Register gerettet werden. Dadurch kann man sehr gut eventuelle Programmfehler schrittweise
verfolgen. Je nachdem, ob es sich um einen 1-, 2-, 3- oder 4-Byte-Befehl handelt, wird die
Adressanzeige um 1 bis 4 Schritte weitergeschaltet.
Zur Auslösung einer schrittweisen Abarbeitung dient beim MICO-80 die Betriebstaste E.
Betätigen Sie nun bei Anfangsadresse 8000 die orangefarbene Betriebstaste E, im Adressfeld
steht 8002, der Adresszähler wurde um 2 Schritte weitergeschaltet, da es sich um einen 2
Byte-Befehl handelte.
Nach Abfrage des Registers A steht im Akku 52.
Nach erneuter Betätigung der Taste E steht in der Adressanzeige 8004. Der Befehl bewirkte,
dass in das Register B 05 transferiert wurde. Fragen Sie nun das Register B ab, so werden Sie
feststellen, dass im Register B 05 steht.
- 27 -
MICO-80 Bedienungsanleitung
Nach erneuter Betätigung der Taste E steht die Adressanzeige auf 8005. Die Ausführung des
1-Byte-Befehls bewirkte, dass <A> und <B> addiert wurden. Das Endergebnis 57 steht im Akku.
Dieser Wert ist neben der Adressanzeige 8005 direkt abzulesen, da bei der
Einzelschrittabarbeitung jeweils der Akkuinhalt und der hexadezimale Wert des Flag-Registers
zur Anzeige gebracht wird. Nach erneuter Betätigung der Taste E steht in der Adressanzeige
8008. Mit dem letzten Befehl wurde der Akkuinhalt in die Speicherzelle 8700 abgespeichert.
Wählen Sie nun die Adresse 8600 an, so können Sie als Inhalt der Speicherzelle 57 ablesen. Der
letzte Befehl ist ein HALT-Befehl. Er wird für die automatische Programmabarbeitung benötigt. Im
Einzelschrittbetrieb wird der Befehl übergangen.
In der Einzelschrittabarbeitung kann Befehl für Befehl ausgeführt und auf seine Richtigkeit
überprüft werden.
b. Programmabarbeitung im Automatikbetrieb:
Bei umfangreichen Programmen oder bei Programmen, in denen Programmsprünge auftreten,
wendet man die automatische Programmabarbeitung an. Als letzter Befehl eines Programmes
muss ein HALT-Befehl stehen (natürlich kann auch ein Restart-Befehl oder ein unbedingter
Sprungbefehl ein Programm abschließen). Wählen Sie nun die Anfangsadresse 8000 an.
Betätigen Sie die Taste G. Die Anzeige bleibt unverändert. Sie können aber feststellen, dass die
links vom Tastenfeld angebrachte gelbe HALT-LED leuchtet. Durch Auslösung eines Interrupts
muss nun das Programm abgeschlossen werden. Betätigen Sie dazu die Taste B (break).
Die HALT-LED erlischt, die Adressanzeige steht auf 8009, als Akkuinhalt wird 57 angezeigt. Bei
umfangreichen Programmen lassen sich beliebig Haltepunkte setzen.
Fassen wir die wichtigsten Punkte der Programmabarbeitung noch einmal zusammen:
Bei der Programmabarbeitung wird jeweils die Adresse, der hexadezimale Akkuinhalt und der
Flag-Zustand in hexadezimaler Form angezeigt.
Im Einzelschrittbetrieb lässt sich Befehl für Befehl verfolgen. Wird eine Programmpassage
verlassen, um z.B. ein Register abzufragen, so kehrt nach Betätigung der Taste E der Prozessor zur
alten Programmpassage zurück und führt den nächsten Befehl aus. Wird dagegen der Inhalt einer
RAM-Speicherzelle abgefragt, so muss nach Verlassen einer Programmpassage die Adresse des
nächstabzuarbeitenden Befehls erneut angewählt werden.
- 28 -
MICO-80 Bedienungsanleitung
7. Die Ein- und Ausgabe von Informationen über den
Ein-Ausgabe-Baustein 8255
Zur Ein-Ausgabe von Informationen lässt sich die EAM-80 jeweils an die 34polige Stiftleiste ST1
anschließen. Die Belegung des Steckers ST1 geht aus Bild 7 hervor.
Vor einem Datenverkehr zwischen CPU und dem Ein-Ausgabe-Baustein 8255 muss die Betriebsart
durch Übergabe eines Steuerwortes festgelegt werden. Die Steuerinformationen für den 8255 für
die Betriebsart 0 sind in nachfolgender Tabelle aufgeführt:
KANAL A
KANAL B
A
A
A
A
A
A
A
A
E
E
E
E
E
E
E
E
A
A
A
A
E
E
E
E
A
A
A
A
E
E
E
E
KANAL C
Bit 4..7
A
A
E
E
A
A
E
E
A
A
E
E
A
A
E
E
E = Eingabe, A = Ausgabe
- 29 -
KANAL C
Bit 0..3
A
E
A
E
A
E
A
E
A
E
A
E
A
E
A
E
STEUERWORT
Hex.-Anweisung
80
81
88
89
82
83
8A
8B
90
91
98
99
92
93
9A
9B
MICO-80 Bedienungsanleitung
[Bild 7] Belegung des Steckers ST1
In der nächsten Tabelle ist gezeigt, welche Ports und welche Register angesprochen werden.
8255
Eingabe
Steuerwortregister
--
PORT A
IN A
PORT B
IN B
PORT C
IN C
Hexadezimale
Anweisung
-DB
00
DB
01
DB
02
Ausgabe
OUT STW
OUT A
OUT B
OUT C
- 30 -
Hexadezimale
Anweisung
D3
03
D3
00
D3
01
D3
02
MICO-80 Bedienungsanleitung
Beispiel 3:
Die Ein-Ausgabe-Einheit EAM-80 ist an ST1 anzuschließen.
Es ist Port A auf Eingabe, Port B und C auf Ausgabe zu programmieren. Die an den
Eingabeschaltern eingestellte 8 Bit-Information ist auf die Ausgabe-Einheit durchzuschalten. Die
Schaltereingabe soll in einer Endlosschleife erfolgen.
BEISP0003:
Sprungmarke
EIN:
Adresse
Hex.
Anweisung
3E 90
D3 03
Bemerkung
8000
8002
Mnemonische
Bezeichnung
LD
A,STW
OUT
(StwReg),A
8004
8004
IN
A,(PortA)
DB 00
8006
8008
OUT
JP
(PortB),A
EIN
D3 01
C3 0480
Schalterstellung =>
Akku
<A> => LEDs
erneut einlesen
- 31 -
Steuerwort => Akku
<A> =>
Steuerwortregister
MICO-80 Bedienungsanleitung
8. Darstellung von Textsymbolen in der Anzeige
Texte und Textsymbole können direkt in der Anzeige dargestellt werden. Jeder
Siebensegmentanzeige ist eine RAM-Zelle zugeordnet. Jede Speicherzelle wird abgefragt, so dass
jedes Bit eines Speicherzelleninhaltes ein bestimmtes Segment der Anzeige ansteuert. Durch
Speichern eines Byte unter der zugehörigen Adresse kann ein beliebiges Zeichen auf jeder der
7-Segment-Anzeigen dargestellt werden.
Die nachstehend aufgeführten Speicherzellen stehen mit den Siebensegmentanzeigen wie folgt in
Verbindung (Adressen in Klammern gelten für 1 KByte RAM):
Die bitweise Zuordnung der Speicherzellen zu den einzelnen Segmenten zeigt die nächste
Darstellung:
Beispiel 4:
Stellen Sie durch ein Programm das Wort AUTO in den äußersten vier linken
Siebensegmentanzeigen dar. Die Daten zur Darstellung des Textes sind in den RAM-Zellen 8600
bis 8603 direkt einzuspeichern. Programmstart 8000.
BEISP0004:
Programm:
Sprungmarke
Adresse
8000
Mnemonische
Bezeichnung
LD HL,(8600H)
Hex.
Anweisung
2A 0086
8003
LD
22 F887
(87F8H),HL
- 32 -
Bemerkung
<8600/01> => Register
L,H
<L,H> => 87F8/F9
MICO-80 Bedienungsanleitung
8006
LD
HL,(8602H)
2A 0286
8009
800C
LD (87FAH),HL
HALT
22 FA87
76
<8602/03> => Register
L,H
<L,H> => 87FA/FB
Daten:
Adresse
8600
8601
8602
8603
Inhalt
77
3E
78
3F
Anzeige
A
U
T
O
Sehr viel einfacher lässt sich die Darstellung von Texten durch Aufruf des Unterprogrammes
TEXT 8
Startadresse 0360
realisieren.
Das Unterprogramm schreibt in die Zellen 87F8 bis 87FF den Inhalt der RAM-Zellen, die durch das
Registerpaar B indirekt adressiert sind.
Beispiel 5:
Stellen Sie in der Anzeige den Text "MICO 80" durch Aufruf des UP-TEXT 8 dar. Die Daten der
Textsymbole sind direkt ab 8600 abzuspeichern. Programmstart 8000.
BEISP0005:
Programm:
Sprungmarke
Adresse
8000
8003
8006
Mnemonische
Bezeichnung
LD
BC,8600H
CALL TEXT8
HALT
Hex.
Anweisung
01 0086
CD 6003
76
Bemerkung
Daten:
Adresse
8600
8601
8602
8603
8604
8605
8606
8607
Inhalt
37
06
39
3F
40
7F
3F
00
Anzeige
M
I
C
O
8
0
Mit dem Unterprogramm
TEXT1
Startadresse 03E0
lassen sich besonders einfach Laufschriften realisieren.
Vor Aufruf des UP muss in das Registerpaar B die Anfangsadresse der 8 auszuschreibenden
- 33 -
MICO-80 Bedienungsanleitung
Zeichen eingeschrieben werden. Nach Ende des UP ist der Inhalt von RPB um 1 erhöht.
Beispiel 6:
Die einzelnen Buchstaben des Wortes LAUFSCHRIFT sollen jeweils nach 1 Sekunde um eine
Siebensegmentanzeige nach links gerückt werden. Programmstart 8200. Die Daten sind ab 8650
abzulegen.
BEISP0006:
Programm:
Sprungmarke
Adresse
ANF:
TEXT:
Mnemonische
Bezeichnung
Hex.
Anweisung
Bemerkung
8200
8200
LD
BC,DATEN
01 5086
Anfangsadresse DATEN
laden
8203
8203
8206
8208
820B
CALL
LD
CALL
LD
TEXT1
A,01H
SECD
A,C
CD E003
3E 01
CD 1003
79
820C
820E
CP
JP
63H
NZ,TEXT
FE 63
C2 0382
8211
JP
ANF
C3 0082
Daten:
Adresse
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
865A
865B
865C
865D
865E
865F
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
Inhalt
00
00
00
00
00
00
00
00
38
77
3E
71
6D
58
74
50
30
71
31
00
00
00
00
00
00
00
Anzeige
L
A
U
F
S
C
H
R
I
F
T
- 34 -
UP 1 Sekunde warten
Vergleich Endadresse
DATEN
falls nicht erreicht,
Sprung zu TEXT
sonst Sprung zum Anfang
MICO-80 Bedienungsanleitung
9. Programmbeispiele im Z80-Code
Beispiel 7:
Es sind zwei dezimale Zahlen in den Speicherzellen 8600 und 8601 einzuspeichern. Daraufhin ist
eine BCD-Addition durchzuführen. Das Ergebnis soll in der RAM-Zelle 8602 abgespeichert werden.
Es ist darauf zu achten, dass die Summe der beiden Zahlen 99 (dez.) nicht überschreiten darf.
Programmstart 8000.
Programm:
Sprungmarke
Adresse
8000
8003
8004
8005
8006
8009
Mnemonische
Bezeichnung
LD
HL,(8600)
LD A,L
ADD A,H
DAA
LD(8602H),A
HALT
Hex.
Anweisung
2A 9821
Bemerkung
7D
84
27
32 0286
76
<L> => Akku
Addition und ..
.. Dezimalkorrektur
Ergebnis => 8602 abspeichern
<8600> => L, <8601> => H
Beispiel 8:
In den Speicherzellen 8650 und 8651 sind zwei beliebige hexadezimale Zahlen abzuspeichern. Es
ist ein Programm zu erstellen, das eine Multiplikation beider Zahlen bewirkt. Das 2 Byte-Ergebnis ist
in Speicherzelle 8652/8653 abzuspeichern und in der Anzeige wie folgt darzustellen (Ergebnis
4stellig rechtsbündig):
Bei der Programmierung ist wie folgt vorzugehen:
1. Multiplikand und Multiplikator laden (Startadresse 8000).
2. Erstellung eines eigenen Unterprogrammes, das nach dem Verschiebeverfahren arbeitet, ab
Adresse 8010.
3. Das Abspeichern des Ergebnisses und die Darstellung in der gezeigten Art in der Anzeige soll
ebenfalls durch ein eigenes Unterprogramm ab Adresse 8030 gelöst werden.
- 35 -
MICO-80 Bedienungsanleitung
Hauptprogramm:
Sprungmarke
Adresse
8000
8003
8004
Mnemonische
Bezeichnung
LD
HL,(DATEN)
EX
DE,HL
CALL MUL
Hex.
Anweisung
2A 5086
EB
CD 1080
Bemerkung
8007
CALL ANZ
CD 3080
800A
HALT
76
Adresse
Mnemonische
Bezeichnung
Hex.
Anweisung
Bemerkung
8010
8012
8013
LD
LD
LD
C,08H
A,D
HL,0000H
0E 08
7A
21 0000
Stellenzaehler setzen
8016
8017
8017
LD
D,H
54
ADD
HL,HL
29
8018
RLA
8019
801C
JP
ADD
NC,LOOP2
HL,DE
D2 1D80
19
801D
801D
801E
8021
DEC
JP
RET
C
NZ,LOOP1
0D
C2 1780
C9
<8650> => L, <8651> => H
<H,L> <==> <D,E>
Unterprogramm MUL
aufrufen
Unterprogramm ANZ
aufrufen
Unterprogramm MUL:
Sprungmarke
MUL:
LOOP1:
LOOP2:
17
Zwischensumme auf 0
setzen
Zwischensumme 1x nach
links schieben
Multiplikant 1x nach
links schieben
ist geschobenes Bit = 1 ?
falls ja, Multiplikator +
Zwischensumme
C=0?, Sprung zu LOOP1
Unterprogramm ANZ:
Sprungmarke
Adresse
Mnemonische
Bezeichnung
Hex.
Anweisung
Bemerkung
ANZ:
8030
8030
8033
8036
8038
LD
LD
LD
LD
(DATEN+2),HL
(87ECH),HL
A,11001111B
DecDunkMaske),A
22
22
3E
32
803B
803E
8040
CA
LD
LD
L DISREG
A,73H
(AnzSegm1),A
CD A101
3E 73
32 F887
Ergebnis abspeichern
Ergebnis => Anzeigezelle
Maske fuer Dunkelzelle
in Dunkelzelle
abspeichern
Unterprogramm DISREG
8043
8045
LD
LD
A,48H
AnzSegm2),A
3E 48
32 F987
8048
RET
C9
- 36 -
5286
EC87
CF
D987
Textsymbol fuer "P"
abspeichern
Textsymbol fuer "="
abspeichern
MICO-80 Bedienungsanleitung
Im Folgenden finden sich zwei Beispiele zur Ausgabe auf das Display. Das erste schreibt direkt die
die System-Speicherzellen, das zweite Programm verwendet das System-Unterprogramm DECOD.
Beispiel 9:
In der ersten 7-Segment-Anzeige soll sich ein simulierter Kreis im Uhrzeigersinn drehen. Das
passende Bitmuster ist direkt in die Speicherzelle 87F8 zu schreiben. Die Speicherzellen 87F9 …
87FF sollen dunkel bleiben.
Sprungmarke
Adresse
LOOP1:
8000
8002
8005
8007
8007
8008
8009
LOOP2:
Mnemonische
Bezeichnung
LD
A,0
LD
HL,AnzSegm1
LD
B,8
Hex.
Anweisung
3E 00
21 F887
06 08
Bemerkung
LD
INC
DEC
(HL),A
HL
B
77
23
05
Speicherzelle laden
Adresszeiger erhoehem
Schleifenzaehler
dekrementieren
800A
800D
JP
LD
NZ,LOOP1
HL,AnzSegm1
C2 0780
21 F887
8010
8012
8012
LD
A,2
3E 02
LD
(HL),00000100B
36 04
8014
8017
CALL ZSECD
LD
(HL),00001000B
CD 0003
36 08
8019
801C
801E
8021
8023
8026
CALL
LD
CALL
LD
CALL
JP
CD
36
CD
36
CD
C3
ZSECD
(HL),00010000B
ZSECD
(HL),01000000B
ZSECD
0003
10
0003
40
0003
1280
0 = alle Segmente dunkel
Zaehler fuer Schleife
Adresszeiger auf 1.
7-Segment-Anzeige
Zentelsekunden
Bitmuster fuer 1. Zeichen
speichern
und warten
Bitmuster fuer 2. Zeichen
speichern
…
Ausgabe wiederholen
Beispiel 10:
In der 7-Segment-Anzeige sollen die Zahlen 1 bis 8 mit dem System-Unterprogramm DECOD
dargestellt werden. Mit Hilfe der Dunkelmaskierung sollen abwechselnd jeweils die beiden äußeren
bzw. die vier inneren Anzeigen sichtbar sein.
Die Zuordnung der Speicherzellen erfolgt zu den 7-Segment-Anzeigen:
- 37 -
MICO-80 Bedienungsanleitung
Hauptprogramm:
Sprungmarke
Adresse
LOOP:
8000
8000
8002
8005
8008
800A
800D
8010
Mnemonische
Bezeichnung
Hex.
Anweisung
Bemerkung
LD A,11000011B
LD (DecDunkMaske),A
CALL AUSGABE
LD A,00111100B
LD (DecDunkMaske),A
CALL AUSGABE
JP LOOP
3E
32
CD
3E
32
CD
C3
Dunkelsteuerung ueber "0"
Dunkelmaske setzen
C3
D987
1380
3C
D987
1380
0080
Dunkelsteuerung ueber "0"
Dunkelmaske setzen
Unterprogramm AUSGABE:
Sprungmarke
Adresse
Mnemonische
Bezeichnung
Hex.
Anweisung
Bemerkung
AUSGABE:
8013
8013
LD A,12H
3E 12
8015
8018
801A
801D
801F
8022
8024
8027
802A
802C
802F
LD (87F4H),A
LD A,34H
LD (87F5H),A
LD A,56H
LD (87F6H),A
LD A,78H
LD (87F7H),A
CALL DECOD
LD A,1
CALL SECD
RET
32
3E
32
3E
32
3E
32
CD
3E
CD
C9
Speicherzellen
87F4..87F7 zur Anzeige ..
.. mit Daten fuellen
- 38 -
F487
34
F587
56
F687
78
F787
C001
01
1003
Ausgabe
und warten
MICO-80 Bedienungsanleitung
10. Serielle Schnittstelle
Die serielle Schnittstelle ermöglicht es dem MICO-80 auf einen Drucker Daten auszugeben, mit
einem Datensichtgerät oder einem Terminalprogramm auf dem Personal Computer zu
kommunizieren. Auch das MICO-80 Entwicklungssystem oder sendet seine Daten über die serielle
Schnittstelle zum MICO-80.
Als serielle Schnittstelle wurde die, ursprünglich für die IS-535 entwickelte Interface-Platine IF-232,
an den MICO-80 adaptiert. Da die meisten Beispielprogramme des PROFI-5 (kompatibel zum
MICO-80) mit dem Peripheriebaustein 8255 durchgeführt werden, wurde für die serielle
Datenübertragung der Z80-PIO Baustein verwendet, dessen Ports auf Stecker ST2 geführt sind.
Vor Anstecken bzw. Abstecken der Adapterplatine ist die Spannungsversorgung für den MICO-80
zu unterbrechen. Beim Anstecken ist darauf zu achten, dass der Stecker korrekt auf der Stiftleiste
angebracht wird.
Die beiden LEDs auf der Interface-Platine IF-232 zeigen High-Pegel auf der Sendeleitung TXD (rot)
und auf der Empfangsleitung RXD (grün) an.
Der Jumper J1 ermöglicht die DTR (Data Transmission Ready) Leitung des angeschlossenen
Gerätes über die IF-232 zum MICO-80 zu übertragen. Funktionen die über die serielle Schnittstelle
Daten senden werten dieses Signal aus und warten bei DTR = Low mit der Übertragung. DTR kann
mit dem Jumper J1 auch auf Dauer High-Pegel gelegt werden. DTR vom empfangenden Gerät wird
dann von den MICO-80 Funktionen ignoriert.
DTR wird ausgewertet
DTR liegt dauernd auf High-Pegel
- 39 -
MICO-80 Bedienungsanleitung
Die serielle Datenübertragung wird für folgende Funktionen verwendet:
07
08
09
13
14
15
HEX DUMP-Ausdruck mit vorwählbarer Baudrate von 300, 600
und 1200 Baud.
Eingabe eines ASCII-Textes in den RAM-Bereich vom
Tastenfeld eines Datensichtgerätes.
Baudrate vor wählbar mit 300, 600 und 1200 Baud.
Ausgabe eines Blocks von ASCII-Zeichen auf ein
Datensichtgerät.
Baudrate vor wählbar mit 300, 600 und 1200 Baud.
Rückassembler 8080 Code
Rückassembler Z80 Code
Download einer Intel-Hexdatei über die serielle Schnittstelle mit
1200 Baud.
Die Wahl der Übertragungsgeschwindigkeit erfolgt, bei Erscheinen des Schriftzuges „baud“ im
Display des MICO-80, über die schwarzen Tasten 3 (300 Baud), 6 (600 Baud und C (1200 Baud).
Für Download eines Programms aus dem Entwicklungssystem (Alt-F9) muss zuvor am MICO-80
die Funktion 15 mit Go gestartet und danach die Übertragungsgeschwindigkeit mit C (1200 Baud)
eingestellt werden.
Die Programm-Startadresse, z.B. 8000h ist im Quellprogramm anzugeben und wird mit der
Intel-Hexdatei beim Download übertragen.
- 40 -
MICO-80 Bedienungsanleitung
11. Installation und Start des Entwicklungssystems
Die Arbeit mit dem Entwicklungssystem ist in der Online-Hilfe des Editors ausführlich beschrieben.
Die Installation des Entwicklungssystems erfolgt durch das Programm INSTALL.EXE auf der
Diskette.
Gestartet wird das Entwicklungssystem über das Programm EDI.EXE. Alle anderen ausführbaren
Programme im Verzeichnis MICO-80 werden menügeführt aus dem Editor EDI gestartet. Auf der
Diskette befindet sich die Datei LIESMICH.TXT mit wichtigen Hinweisen.
Folgende Beispiele befinden sich auf der Diskette:
──────────────┬───────────────────────────────────────────────────────────────
Beispieldatei │ Erklärung
──────────────┼───────────────────────────────────────────────────────────────
Z80B1.ASM
│ Das Beispiel erklärt wie beim MICO-80 in Verbindung mit der
│ Ein/Ausgabe EAM-80 der Baustein 8255 zu programmieren ist.
──────────────┼───────────────────────────────────────────────────────────────
Z80B2.ASM
│ Programm zur Erzeugung eines Blinklichts mit LED Bitstelle 0.
──────────────┼───────────────────────────────────────────────────────────────
Z80B3.ASM
│ Lauflicht
──────────────┼───────────────────────────────────────────────────────────────
Z80B4.ASM
│ Verkehrsampelsteuerung
──────────────┼───────────────────────────────────────────────────────────────
Z80B5.ASM
│ Umwandlungsprogramm einer zweistelligen hexadezimalen Zahl in
│ eine dezimale Zahl. Die Eingabe der hexadezimalen Zahl erfolgt
│ über das Tastenfeld des MICO-80.
──────────────┼───────────────────────────────────────────────────────────────
Z80B6.ASM
│ 4-Byte Addition von hexadezimalen Zahlen. Dabei werden im
│ Programm die Indexregister IX und IY sowie verschiedene Z80│ Befehle eingesetzt.
──────────────┼───────────────────────────────────────────────────────────────
Z80B7.ASM
│ Füllt einen Bereich im Speicher mit 00h.
──────────────┼───────────────────────────────────────────────────────────────
Z80B8.ASM
│ wie Z80B7.ASM, jedoch mit dem Befehl DJNZ realisiert.
──────────────┼───────────────────────────────────────────────────────────────
Z80B9.ASM
│ Überprüft ein Zeichen ob es eine ASCII-Ziffer 30h..39h ist.
──────────────┼───────────────────────────────────────────────────────────────
Z80B10.ASM
│ Erzeugt ein Paritäts-Bit
──────────────┼───────────────────────────────────────────────────────────────
Z80B11.ASM
│ Umwandlung Hexziffer (00h..0Fh) nach ASCII '0'..'9','A'..'F'
──────────────┼───────────────────────────────────────────────────────────────
Z80B12.ASM
│ Größten Wert in einer Tabelle suchen
──────────────┼───────────────────────────────────────────────────────────────
Z80B13.ASM
│ Addition mehrerer 8-Bit-Zahlen in einer Tabelle. Das
│ Ergebnis hat 16-Bit.
──────────────┼───────────────────────────────────────────────────────────────
Z80B14.ASM
│ Prüfsummen-Berechnung mehrerer 8-Bit-Zahlen in einer Tabelle.
──────────────┼───────────────────────────────────────────────────────────────
Z80B15.ASM
│ Zeichen in einem Speicherbereich zählen
──────────────┼───────────────────────────────────────────────────────────────
Z80B16.ASM
│ Blocktransfer - Jeder zweite Eintrag wird aus der
│ Quell-Tabelle herausgegriffen und in der Zieltabelle abgelegt.
──────────────┼───────────────────────────────────────────────────────────────
Z80B17.ASM
│ Einfügen einer BCD-Ziffer in einen Speicherbereich
──────────────┼───────────────────────────────────────────────────────────────
Z80B18.ASM
│ Vergleich zweier vorzeichenbehafteter 16-Bit-Zahlen
──────────────┴───────────────────────────────────────────────────────────────
- 41 -
MICO-80 Bedienungsanleitung
12. Weiterführende Literatur
www.kammerer.net/hw/mico80.html
Programmierung des Z80, Rodnay Zaks, Sybex-Verlag
www.z80.info/zaks.html
- 42 -
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement