| 4. Aufbau und Funktion |  | 4.3 Die V.24-Schnittstelle |

4.2/1

## 4.2 Die Parallel-Schnittstelle

### 4.2.1 Aufbau des Portbausteins MC6821

Der Baustein MC6821 stellt eine Schnittstelle zum parallelen Anschluß von Peripheriegeräten zur Verfügung. Er wird von der Herstellerfirma Motorola mit dem Namen

> Peripheral Interface Adapter (PIA)

bezeichnet. Andere Hersteller nennen ihre vergleichbaren Produkte 1) beispielsweise

> Parallel I/O Circuit (PIO).

Die genaue Struktur des Bausteins kann man dem Bild 4.2-1 entnehmen.

Bild 4.2-1: | Blockschaltbild des Bausteins MC6821 |

Dieser Baustein besitzt zwei 8 bit breite Ein-/Ausgabe-Ports (Port PA, Port PB). Wie die Leitungen des Datenbusses können sie Signale in beiden Richtungen, also bidirektional, übertragen. Jedoch kann hier für jede Leitung getrennt festgelegt werden, ob sie als Eingangs- oder Ausgangsleitung dienen soll. Diese Festlegung geschieht für jeden Port in einem speziellen Register, dem Datenrichtungsregister (Data Direction Register - DDR), auf das weiter unten genauer eingegangen wird.

4.2/2

Zu jedem Port gehören außerdem je ein Interrupteingang (CA1, CB1) und eine weitere "programmierbare" Steuerleitung (CA2, CB2). Diese kann einerseits als zusätzlicher Interrupteingang oder aber als Strobe-Ausgang benutzt werden. Ihre Funktion wird in einem kombinierten Status- und Steuerregister (Control Register - CR) festgelegt. In ihm sind auch die Bits enthalten, durch die die Interrupteingänge aktiviert bzw. deaktiviert werden können (Interrupt Enable), bzw. die das Eintreffen einer Unterbrechungsanforderung anzeigen (Interrupt Flag).

Die Schnittstelle zum Prozessor wurde bereits im einleitenden Abschnitt 4.1 im wesentlichen erklärt. Die einzige Abweichung besteht darin, daß von jedem der beiden Parallel-Ports ein eigener Interruptausgang (#IRQA, #IRQB) herausgeführt wird. Diese Ausgänge können entweder getrennt auf zwei verschiedene Interrupteingänge des Prozessors oder aber miteinander verbunden auf den gleichen Eingang gegeben werden (Open collector-Eigenschaft *) . In diesem Fall muß der Prozessor anhand der Interrupt-Flags in den Steuerregistern entscheiden, von welchem Port eine Unterbrechung angefordert wurde. Im Praktikumsrechner wird das Auswahlsignal der PIA (#CS2) wird vom Adreßdecoder erzeugt (s. KE3). Die Selbsttestaufgabe S3.1-2 zeigt, daß dafür das Signal #CS8 (s. System-Gesamtplan im Anhang der KE3) benutzt und dadurch der Adreßbereich $F000 - $F003 selektiert wird (CS0=CS1=+5V).

Das Bild 4.2-2 zeigt die Anschlußbelegung des Bausteins MC6821.

Bild 4.2-2: | Anschlußbelegung des Bausteins MC6821 |

4.2/3

Der Baustein ist in einem 40-poligen Gehäuse untergebracht. Auffällig ist, daß der Hersteller sich bemüht hat, entsprechend dem oben gezeigten Blockschaltbild 4.2-1, die Signal-Ein-/Ausgänge nach Prozessor- und Peripherieseite getrennt anzuordnen. Auf der "rechten Seite" (Pins 1-20) finden Sie die beiden Ports PA, PB mit ihren jeweils 8 Leitungen PA0,..,PA7 bzw. PB0,..,PB7 und den Steuerleitungen CB1, CB2. Aus "Platzgründen" mußten die Steuerleitungen des Ports PA (CA1, CA2) auf die linke "Prozessorseite" (Pins 21-40) verlegt werden. Dort finden Sie den bidirektionalen Datenbus DB, die Steuerleitungen (R/#W, #RESET, E) sowie die drei Chip-Select-Eingänge CS0, CS1, #CS2. (Mehrere Auswahleingänge mit unterschiedlichen aktiven Pegel erleichtern den Aufbau des Adreßdecoders.) Zur Auswahl der einzelnen Komponenten des Bausteins stehen die zwei Eingänge RS0 und RS1 zur Verfügung.

Jeder Port (Port PA, Port PB) besteht aus

- 8 Ein-/Ausgangsleitungen mit der zugehörigen Leitungsanpassung (Treiber),
- einem Datenrichtungsregister DDR,
- einem Datenregister DR,
- einem Steuerregister CR,
- einer Interrupt-Steuerlogik.

### 4.2.2 Der Registersatz

Das Datenrichtungsregister (Data Direction Register) DDR ist 8 bit breit. Der Wert des i.ten Bits bestimmt, ob die entsprechende Portleitung PXi als Eingang oder Ausgang benutzt werden kann, und zwar gilt genauer für beide Ports PA, PB:

> DDRXi := Bit i von DDRX = | ì 0, Leitung PXi von Port PX ist Eingang í î 1, Leitung PXi von Port PX ist Ausgang | (X=A,B)

Das Datenregister (Data Register) DR bezeichnet die logische Zusammenfassung zweier Komponenten:

- Ein Datum, das zum Peripheriegerät übertragen werden soll, wird in einem Ausgaberegister zwischengespeichert. Daten, die vom Peripheriegerät gelesen werden, werden über die Portleitungen ohne Zwischenspeicherung direkt auf den Datenbus DB geschaltet. Hier wird die im Befehl angegebene Adresse des "Datenregisters" lediglich zur Aktivierung der Leitungstreiber ausgewertet. Dies wird nun genauer beschrieben.

  4.2/4

- Die Leitungsanpassung besteht aus Tristate-Treibern (vgl. KE3) und einer Schaltlogik zur Richtungsumschaltung. Diese Logik ist für beide Ports unterschiedlich ausgebildet und wird im folgenden beispielhaft für den Port PB erklärt, da dieser als einziger über 2-mm-Buchsen auf die Rückwand des Gehäuses herausgeführt wurde und dem Benutzer dort zur Kopplung des Mikrorechners und eines Experimentierboardes zur Verfügung steht.

Das Bild 4.2-3 zeigt den inneren Aufbau des Ports PB, dargestellt für eine einzelne Leitung PBi. (Bzgl. der Schaltsymbole vgl. Selbsttestaufgabe S3.1-1 in KE3.)

Bild 4.2-3: | Realisierung der Ansteuerung einer einzelnen Leitung im Port PB |

Funktionsweise

Durch einen Schreibbefehl mit der Adresse des Datenrichtungsregisters DDRB wird die Information des Datenbits DBi in das Bit DDRBi übernommen.

- DDRBi=0
  Die Leitung PBi ist als Eingang geschaltet. Dann wird durch einen Lesebefehl mit der Adresse des Datenregisters DRB über das UND-Gatter U1 der Tristate-Treiber TR1 aktiviert. Dadurch wird die Portleitung PBi auf die Datenleitung DBi geschaltet und der Prozessor kann ihren Zustand lesen.

  4.2/5

  Durch einen Schreibbefehl wird die Information auf der Datenbusleitung DBi in das Bit DRBi des Datenregisters übernommen, ohne daß diese Information gleichzeitig auf die Portleitung PBi durchgeschaltet wird. (Die Treiber TR2 und TR1 sind nicht aktiviert.) Die eingeschriebene Information erscheint erst nach der Richtungsumschaltung als Ausgang auf der Portleitung PBi.
- DDRBi=1
  Die Leitung PBi ist als Ausgang geschaltet. Der Treiber TR2 ist über den Ausgang Q des oberen Flipflops dauernd aktiviert, und die Information im Datenregisterbit DRBi wird auf die Portleitung PBi gelegt.
  Durch einen Lesebefehl wird über das UND-Gatter U2 der Treiber TR3 angesprochen und somit der Ausgang des Datenregisterbits DRBi auf das Bit DBi des Datenbusses gelegt. Der Prozessor liest daher das letzte ins Datenregisterbit DRBi eingeschriebene Datum.
  (Im Unterschied dazu wird beim Lesen einer als Ausgang geschalteten Leitung des Ports PA der Zustand dieser Leitung eingelesen, wie er durch eine externe Beschaltung vorgegeben wird. Dieser kann vom Zustand des Datenregisterbits abweichen.)

Vor der Erklärung des Steuerregisters soll nun kurz auf die Adressierung der Register eingegangen werden. Wie im Bild 4.2-2 gezeigt, besitzt der Baustein dazu nur die beiden Auswahleingänge RS0, RS1. Diese sind im Praktikumsrechner durch die niederwertigen Adreßleitungen A0 bzw. A1 beschaltet. Natürlich ist Ihnen klar, daß für die Adressierung der 6 internen Register eigentlich 3 Adreßleitungen benötigt würden. Das 3. Adreßsignal wird im MC6821 durch das Bit CRX2 (X=A,B) des Steuerregisters zur Verfügung gestellt: Vom Prozessor aus werden für jeden Port unter der gleichen Adresse sowohl das Datenrichtungsregister DDRX wie das Datenregister DRX angesprochen. Die Vorauswahl unter ihnen nimmt das Bit CRX2 vor. Ist

> CRX2 = | ì 0, so wird das Datenrichtungsregister DDRX, í î 1, so wird das Datenregister DRX vorselektiert. | (X=A,B)

Aus der Beschaltung des MC6821 im Praktikumsrechner ergibt sich mit dem bisher Gesagten die in der Tabelle 4.2-1 gezeigte Adreßzuteilung.

4.2/6

Tabelle 4.2-1: Adreßzuteilung der Register des MC6821

Adresse | CRX2=0 | CRX2=1 | Register
--- | --- | --- | ---
$F000 | DDRA |  | Datenrichtungsregister Port PA
$F000 |  | DRA | "Datenregister" Port PA
$F001 | CRA | CRA | Steuerregister Port PA
$F002 | DDRB |  | Datenrichtungsregister Port PB
$F002 |  | DRB | "Datenregister" Port PB
$F003 | CRB | CRB | Steuerregister Port PB

Das folgende Bild 4.2-4 zeigt die Aufteilung des Status- bzw. Steuerregisters CR in seine unterscheidbaren Bitfelder. Darin bezeichnet X=A, B wieder einen der beiden Ports PA, PB.

Bild 4.2-4: | Das Steuerregister CRX (X=A, B) und seine Aufteilung |

Es folgt nun die Beschreibung der Funktion der einzelnen Bits (X=A, B).

- Bit 7 (Interrupt Flag für die Leitung CX1):
  - CRX7=0: Am Interrupteingang CX1 wurde keine Unterbrechungsanforderung festgestellt.
  - CRX7=1: Am Interrupteingang CX1 wurde eine Unterbrechungsanforderung festgestellt. Wichtig: CRX7 wird durch das Lesen des Datenregisters DRX oder ein Reset-Signal zurückgesetzt!

- Bit 6 (Interrupt Flag für die Leitung CX2):
  - Falls CX2 als Ausgang geschaltet ist (s. CRX5), hat Bit 6 keine Funktion.
  - Falls CX2 als Eingang geschaltet ist, entspricht seine Funktion der von CRX7, jedoch für den Interrupteingang CX2.

  4.2/7

- Bit 5:
  - CRX5=0: Die Leitung CX2 ist ein Interrupteingang.
  - CRX5=1: Die Leitung CX2 ist ein Steuerausgang (Peripheral Control Output).

- Bit 4 und Bit 3:
  - CRX5=0: CX2 ist Eingang.
    - CRX4=0: Unterbrechungsanforderung wird durch negative Flanke an CX2 erzeugt.
    - CRX4=1: Unterbrechungsanforderung wird durch positive Flanke an CX2 erzeugt.
    - CRX3=0: (Interrupt Disabled) Weiterleitung der Unterbrechungsanforderung an die CPU nicht aktiviert. Sie wird bis zur nächsten Aktivierung zwischen gespeichert (vgl. CRX0=0).
    - CRX3=1: (Interrupt Enabled) Sofortige Weiterleitung der Unterbrechungs-anforderung am Eingang CX2 an den Prozessor.
  - CRX5=1: CX2 ist Steuerausgang.
    - CRX4=0: Ausgabe eines Handshake-Signals (s. Abschnitt 4.1) am Ausgang CX2:
      - Für Port PA nach dem Lesen des Datenregisters DRA,
      - für Port PB nach dem Schreiben des Datenregisters DRB.
      - CRX3=0: Permantes L-Signal bis zum nächsten Interrupt an CX1 (s. Bild 4.2-7).
      - CRX3=1: kurzer Strobe-Impuls für die Dauer eines Maschinenzyklus (1 s, Takt E).
    - CRX4=1: CX2 ist statische Steuerleitung zur Peripherie:
      - CRX3=0: CX2=0, d.h. L-Potential an CX2,
      - CRX3=1: CX2=1, d.h. H-Potential an CX2.

- Bit 2:
  - CRX2=0: Das Datenrichtungsregister DDRX wird vorselektiert.
  - CRX2=1: Das Datenregister DRX wird vorselektiert.

- Bit 1:
  - CRX1=0: Eine Unterbrechungsanforderung wird durch eine negative Flanke am Eingang CX1 erzeugt.
  - CRX1=1: Eine Unterbrechungsanforderung wird durch eine positive Flanke am Eingang CX1 erzeugt.

  4.2/8

- Bit 0:
  - CRX0=0: (Interrupt Disabled) Die Weitergabe einer am Interrupteingang CX1 eintreffenden Unterbrechungsanforderung an die CPU wird unterdrückt. Diese Anforderung wird aber gespeichert (s. Bit 7) und dann an den Prozessor weiter-geleitet, wenn Bit 0 auf 1 gesetzt wird.
  - CRX0=1: (Interrupt Enabled) Eine Unterbrechungsanforderung am Eingang CX1 wird augenblicklich über den Ausgang (s. Bild 4.2-1) an den Prozes-sor weitergeleitet.

Aus Abschnitt 1.3.2, KE1, wissen Sie schon, daß beim Eintreffen einer Unterbrechungsanforderung am #IRQ-Eingang der Prozessor eine Interruptroutine ausführt, deren Startadresse in den Speicherstellen $FFF8, $FFF9 steht. In dieser Routine des Monitor-Programms wird dann zunächst entschieden, aus welcher "Quelle" die Anforderung stammt. In der Zero-Page finden Sie im Bereich $0030-$0043 die Tabelle der Startadressen, unter denen die verschiedenen Interruptroutinen beginnen, und zwar in der Form: H-Byte, L-Byte. Diese Tabelle wird bei jedem Rücksetzen des Monitors (Taste C) initialisiert. Für die meisten Unterbrechungsmöglichkeiten zeigt die Vorbelegung auf den Befehl RTI (Return from Interrupt). Durch Ändern der Startadresse können Sie die Ausführung einer eigenen Interrupt-Routine erzwingen. Für die Interrupt-Quellen des MC6821 sind die in Tabelle 4.2-2 aufgeführten Adressen zuständig:

Tabelle 4.2-2: Vorbelegung der IRQ-Interruptvektoren

Adressen | Quelle | Vorbelegung
--- | --- | ---
$0036,$0037 | CA1 | Break-Taste F4
$0038,$0039 | CB1 | RTI
$003A,$003B | CA2 | RTI
$003C,$003D | CB2 | RTI

Im Bild 4.2-5 ist die Ausgabe eines Handshake-Signals über die Ausgangsleitung CA2 bzw. CB2 dargestellt.

4.2/9

Dazu müssen, wie oben gezeigt, im Steuerregister das Bit5=1 und das Bit4=0 sein. Durch das Blitz-Symbol ist eine Unterbrechungsanforderung des Partners am Eingang CX1 gekennzeichnet, die über den Ausgang #IRQX an den Prozessor weitergeleitet wird (X=A, B). Durch sie wird der Prozessor zur Übernahme (Port PA, obere Hälfte des Bildes) bzw. zur Abgabe eines Datums (Port PB, untere Hälfte des Bildes) aufgefordert. Beim Port PA wird das Handshake-Signal durch das Lesen des Datenregisters DRA, beim Port PB durch das Schreiben des Datenregisters DRB ausgelöst. Es beginnt jeweils mit der negativen Flanke des Systemtaktes E. Man sieht, daß in Abhängigkeit vom Bit CRX3 des Steuerregisters das Strobesignal für CRX3=0 bis zum nächsten Interrupt des Partners, für CRX3=1 jedoch - im Minimalfall - nur einen Zyklus des Systemtaktes E dauert. Diese Zykluszeit muß je nach Ausführung des MC6821 wenigstens 0.5 µs bzw. 1 µs dauern. Die Deaktivierung des Strobesignals beginnt in diesem Fall mit der 1. negativen Flanke des Taktes E nach der Deaktivierung (deselection) der Prozessorschnittstelle des Portbausteins (durch die Signale CSi).

Bild 4.2-5: | Ausgabe eines Handshake-Signals durch den MC6821 |

4.2/10

### 4.2.3 Erklärung der Schnittstellen-Erweiterungskarte

Ein wesentliches Ziel des Praktikums ist es, Ihnen das Arbeiten mit den Schnittstellen des Praktikumsrechners und ihre Programmierung nahezubringen. Natürlich können wir Sie während der Heimphase nicht mit geeigneten Peripheriegeräten zum Anschluß an diese Schnittstellen versorgen. Daher haben wir eine spezielle Schnitt-stellen-Erweiterungskarte entwickelt und jedem Praktikumsrechner beigelegt, die es erlaubt, alle wesentlichen Funktionen der parallelen Schnittstelle und des Zeitgeber/ Zählerbausteins auszutesten.

Im Bild 4.2-6 ist der Aufbau dieser Karte grob dargestellt 2).

Bild 4.2-6: | Blockschaltbild der Schnittstellen-Erweiterungskarte |

Im Bild 4.2-6 werden bereits die drei E/A-Leitungen des Zeitgeber/Zähler-Bausteins dargestellt, der erst in KE5 ausführlich beschrieben wird. Hier soll nur kurz erwähnt werden, daß C3 ein externer Takteingang, O3 der Zeitgeberausgang und G3 ein Steuereingang ist, durch den die Funktion des Bausteins von außen aktiviert bzw. deaktiviert werden kann, der aber für spezielle Funktionen auch als Signaleingang dient.

Die mit E/A-Modul bezeichneten Schaltungen bestehen aus:

- einer Leuchtdiode LED, die über einen Treiber mit Strom versorgt wird und daher die Signalleitungen nicht zu stark belastet,

  4.2/11

- einer 2-mm-Buchse zur Verbindung mit anderen E/A-Modulen mit Hilfe der beiliegenden Kabel, 3)
- einem Wechselschalter zur Auswahl zweier Eingabesignal-Quellen mit Aus-Mittelstellung.

Die Erweiterungskarte unterstützt die folgenden Funktionen:

- Über eine als Ausgang geschaltete Portleitung PBi kann die (rote) LED ein- oder ausgeschaltet und der Pegel an der 2-mm-Buchse entsprechend auf H- oder L-Potential gelegt werden. (Der Wechselschalter sollte dabei auf "Aus" stehen.)

- An einer als Eingang geschalteten Portleitung PBi kann durch den Wechselschalter ein H- oder L-Pegel erzeugt werden, der gleichzeitig durch die (rote) LED angezeigt wird und an der 2-mm-Buchse abgegriffen werden kann. (In Aus-Stellung des Schalters ist der Eingang hochohmig und unbestimmt.)

- Durch den Schalter mit nachgeschaltenen Entprell-Flipflop kann am Steuereingang CB1 ein H- oder L-Pegel eingestellt und durch die gewählte Flanke (s. Abschnitt 4.2.2) eine Interruptanforderung gestellt werden. Über den Schalter im E/A-Modul an CB1 kann aber auch den Ausgang O3 des Zeitgebers MC6840 auf CB1 gelegt werden, so daß einzelne oder periodische Interruptanforderungen durch den Timer im MC6840 erzeugt werden können. Eine dritte Interruptquelle kann an der 2-mm-Buchse angeschlossen werden. Der aktuelle Zustand an CB1 wird durch die (gelbe) LED angezeigt.
  Der Zustand des Ausgangs O3 wird durch eine (rote) LED angezeigt und kann an der 2-mm-Buchse abgegriffen werden, z.B. zur Verbindung mit einem der Porteingänge PBi.

- Für die bidirektionale, multifunktionale Steuerleitung CB2 gilt prinzipiell das zur Port leitung PBi Gesagte. Nur der Wechselschalter ist anders beschaltet. Durch ihn kann einerseits mit Hilfe des vorgeschalteten 2. Wechselschalters ein bestimmter Pegel oder eine Interruptanforderung an CB2 erzeugt werden, andererseits kann die als Ausgang geschaltete CB2-Leitung mit dem externen Takteingang C3 des Zeitgeber/Zähler-Bausteins MC6840 verbunden werden 4) . (In diesem Fall muß der Wechselschalter an CB2 auf "Aus", also in Mittelstellung stehen.)
  Der Takteingang C3 kann jedoch auch von jedem Portausgang PBi über die 2-mm-Buchse angesteuert werden.

- Das E/A-Modul an G3 von MC6840 erlaubt die Aktivierung bzw. Deaktivierung dieses kombinierten Steuer-/Signaleingangs durch den Wechselschalter oder ein Signal an der 2-mm-Buchse. Der aktuelle Zustand wird durch die (grüne) LED angezeigt.

4.2/12

Praktische Übung P4.2-1:
Verbinden Sie Ihren Praktikumsrechner über die 64-polige-Steckerleiste auf der Rückwand des Gehäuses mit der Schnittstellen-Erweiterungskarte. Schalten Sie danach den Praktikumsrechner ein. Wählen Sie über die Tastatur (Funktionstaste A) die Register des MC6821 an. "Programmieren" Sie den Baustein so, daß im Port PA jede zweite Leitung als Ausgang, die anderen als Eingang geschaltet werden. Lesen Sie danach mehrfach das Datenregister DRA und schreiben Sie beliebige Werte ein. Im Port PB sollen die vier niederwertigen Leitungen PB0-PB3 als Ausgänge, die restlichen als Eingänge initialisiert werden. Lesen Sie das Datenregister DRB für verschiedene Schalterstellungen und schreiben Sie mehrere Werte nacheinander ein. Überprüfen Sie die Ergebnisse an den LEDs. (Beachten Sie, daß Sie für jedes Lesen das Register DRB erneut anwählen müssen !) Verbinden Sie mit Hilfe der beiliegenden Kabel die vier "unteren" Portleitungen PB0-PB3 mit den "oberen" Leitungen: Pi « Pi+4 (i=0,..,3). Schreiben Sie jetzt wie unter II. mehrere Werte in DRB ein und lesen Sie jeweils danach DRB.

Zur Arbeit mit dem 6809-Emulator:

Teil I und II von Aufgabe P4.2-1 können Sie auch mit dem 6809-Simulator ausführen. Das folgende Bild zeigt das geöffnete Fenster zum Port PB (Menüpunkt: Bausteine, Eintrag: Port PB). Wie unter II. gefordert, enthält das Datenrichtungsregister DRRB den Wert $F0=1111 0000, d.h. die oberen 4 Leitungen (PB7-PB4) sind als Ausgänge programmiert, was durch die Lämpchen-Symbole angezeigt ist, und die unteren 4 Leitungen (PB3-PB0) als Eingänge, was durch die Schalter-Symbole angezeigt wird. Über die Ausgangsleitungen wird beispielhaft der Wert $B=1011 ausgegeben, über die Eingänge der Wert $6=0110 eingelesen. Im Datenregister DRB findet sich daher beim Lesen der Wert $B6. Sie können nun jeden beliebigen Hexadezimalwert $0...$F eingeben, indem Sie mit der Maus die Schalter an PB3-PB0 anklicken. Auf die gleiche Weise können Sie an CB1 eine Interruptanforderung stellen und die Auswirkung im Statusregister CRB beobachten. (Selbsttest: Wie wird das Interrupt-Flag Bit 7 in CRB gelöscht ?) Im Bild ist - im Vorgriff auf die folgende Praktische Übung P4.2-2 - die Leitung CB2 als Ausgang programmiert, über den ein (negtiver) Strobe-Impuls ausgegeben wird.

4.2/13

Praktische Übung P4.2-2:
Schließen Sie die Schnittstellen-Erweiterungskarte an den Praktikumsrechner an. "Programmieren" Sie nun den Baustein MC6821 über die Tastatur so, daß kein Interrupt zum Prozessor weitergeleitet wird, eine positive Flanke am Eingang CB1 als Unterbrechungsanforderung gewertet wird, CB2 als Handshake-Ausgang geschaltet wird, ein "langer" Handshake-Impuls an CB2 bis zum nächsten Interrupt an CB1 ausgegeben werden kann. Erzeugen Sie nun ein Strobe-Signal an CB2. Lesen Sie das Steuerregister CRB vor und nach der Erzeugung des Strobe-Signals und interpretieren Sie dessen Inhalt. Geben Sie dann durch den Schalter einen kurzen L-Impuls auf den Interrupteingang CB1. Beobachten Sie dabei die LED und interpretieren Sie den neuen Wert im Steuerregister CRB. Löschen Sie vor einer erneuten Durchführung dieses Versuches das Interrupt Flag (Bit CRB7) im Steuerregister. Programmieren Sie den 6809-Simulator, wie oben angegeben, mit der Änderung, daß ein kurzer Strobe-Impuls an CB2 ausgegeben wird.

Praktische Übung P4.2-3:
Schließen Sie die Schnittstellen-Erweiterungskarte an den Praktikumsrechner an. Schreiben Sie ein Programm, daß ein zyklisches Rechtecksignal am Ausgang CB2 erzeugt. Dabei sollen die Pulsdauer TD und die Pulspause TP als Vielfache von 1 ms vor dem Programmstart in den Registern Y und U eingegeben werden können. Erzeugen Sie nacheinander Signale unterschiedlicher Frequenz (zwischen 0,1 bis 100Hz) und unterschiedlicher Impuls/Pausen-Verhältnisse und beobachten Sie die Ausgangssignale an der LED der Leitung CB2. Hinweise: Zur Erzeugung der Zeitverzögerung von 1 ms benutzen Sie am besten die Routine DLY1MS aus KE1, Abschnitt 1.2.2. Nach jedem Betätigen der Clear-Taste C werden alle Register, also auch Y und U, zurückgesetzt. Diese Routine benötigen Sie noch für die Bearbeitung der Praktischen Übungen in KE5. Sie sollten sie daher im PC abspeichern.

4.2/14

Mit Hilfe der Lösung zur Praktischen Übung P4.2-3 können Sie nun die Ihnen vom 6809-Emulator gebotene Möglichkeit austesten, Ausgangssignale an den Parallel-Ports in einer Datei aufzuzeichnen bzw. von dort einzulesen. Bevor Sie Ihr Programm starten, können Sie durch Anklicken der Ikone

eine Datei bestimmen, in die für jeden Schreibzugriff auf das Datenregister des Ports (Adresse Port PA: $F000, Port PB: $F002) alle Ausgangszustände eingetragen werden 5). (Solange diese Datei geöffnet ist, wird in der Statuszeile ein Diskettensymbol mit einem hinweisenden Pfeil auf der linken Seite und der Beschriftung 'PIA' angezeigt.) Durch die Ikone

können Sie die Aufzeichnung stoppen. Nachdem Sie auch Ihr Programm beendet haben, können Sie durch Anklicken der Ikone

die Datei (oder eine andere) erneut öffnen, aus der nun mit jedem Lesezugriff auf das Datenregister desPorts der Zustand der als Eingänge geschalteten Leitungen eingelesen wird. Dabei wird jeder Eingabewert so lange unverändert gehalten, wie er bei der Ausgabe in die Datei an den Ausgängen anlag. (Die Übertragung der Zeichenkette aus der Datei in den Emulator wird in der Statuszeile durch ein Diskettensymbol mit einem wegweisenden Pfeil auf der rechten Seite und der Beschriftung 'PIA' angezeigt.)

| 4. Aufbau und Funktion |  | 4.3 Die V.24-Schnittstelle |