Forum: Mikrocontroller und Digitale Elektronik Eingabe-/Ausgabe-Baustein 8255


von Peter93 (Gast)


Lesenswert?

Hallo, nein das hier ist keine Hausaufgabe und ja, ich versuche das 
wirklich zu verstehen und nein, ich will nicht nur das Ergebnis..

Die Aufgabe:
Der Eingabe-/Ausgabe-Baustein 8255 hat die (hexadezimale) Grundadresse 
64h und ist mit folgendem Kontrollwort (im Steuerregister) konfiguriert: 
98 (hexadezimal)

aus der 96h habe ich folgendes entnommen:
MSB: 1 <- Mode Set Flag = aktiv
     0 <- Mode 0
     0 <- Mode 0
     1 <- PortA= Input
     1 <- PortC= Input (Upper)
     0 <- Mode 0
     0 <- PortB= Output
     0 <- Port C = Output ( lower)

An den peripherieseitigen Portleitungen sind folgende hexadezimalen 
Signalwerte gegeben:

Port A : 12h

Port B : 00h

Port C : A3h

Der μP führt nun folgende EA-Operationen zwischen seinem 
Akkumulatorregister AL und den Ports durch:

         IN      AL, 64h                  ; Wert aus der Peripherie nach 
AL einlesen

         XOR    AL, 25d                  ; Exklusiv-ODER Verknüpfung mit 
Dezimalwert,

                                                   ; Ergebnis steht in 
AL

         OUT    66h, AL                  ; Ausgabe des AL-Wertes

         OUT    65h, AL                  ; an die Peripherie

Welche hexadezimalen Werte befinden sich nach den Ausgabebefehlen in den 
Ports?

Port A : 12h , da Port A  ein Input ist
Port B : 0bh , berechnet durch Programmablauf, da Port B ein Output ist
Port C : ?

Wie ihr seht habe ich mir schon einige Gedanken gemacht. Wie Verhält 
sich der Port C, bzw wie komme ich zum Wert in Port C?

MfG

von Peter D. (peda)


Lesenswert?

Dazu müßte man erstmal das Datenblatt dieses uralten Chips aus dem 
Museum klauen.
Wie steuerst Du ihn überhaupt an (CPU, Adreßmapping).

von Peter93 (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe dazu nur noch folgendes Bild als Information

von Joe F. (easylife)


Lesenswert?

Mal grob ins Blaue geschossen:

Adresse 0x64 scheint Port A zu adressieren, 0x65 Port B und 0x66 Port C.

0x12 XOR 25 (=0x19) = 0x0B

Die 0x0B siehst du ja auch an Port B.
OUT    66h, AL                  ; Ausgabe des AL-Wertes
OUT    65h, AL                  ; an die Peripherie

Es sieht mir so aus, als ob die 0x0B auch an Port C ausgegeben werden.
Da die oberen 4 Pins ja anscheinend als Input konfiguriert sind, kommt 
also am lower Teil (Output) die 0xB an.

Woher hast du die Information über die Bits im Steuerregister?

: Bearbeitet durch User
von S. Landolt (Gast)


Angehängte Dateien:

Lesenswert?

> Dazu müßte man erstmal das Datenblatt dieses uralten
> Chips aus dem Museum klauen.

Keine Ahnung, ob das weiterhilft, aber bitte.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Joe F. schrieb:
> Woher hast du die Information über die Bits im Steuerregister?

Steht alles im Datenblatt - man kann auch das des 82C55 zu Rate ziehen.
Wenn im Akku 0bh steht und an Port C vor der Operation A3h, dann steht 
nach dem Schreiben in Port C also ABh, denn das obere Nibble ist ein 
Eingang, an dem lt. Aufgabe A3h stand.

: Bearbeitet durch User
von Peter93 (Gast)


Lesenswert?

Joe F. schrieb:
> Woher hast du die Information über die Bits im Steuerregister?

Der Eingabe-/Ausgabe-Baustein 8255 hat die (hexadezimale) Grundadresse
64h und ist mit folgendem Kontrollwort (im Steuerregister) konfiguriert:
98 (hexadezimal)
Die habe ich aus der 98h.
Und im Skript steht dann das, was ich hinter jedes Bit ergänzt habe

von Peter93 (Gast)


Lesenswert?

Matthias S. schrieb:
> dann steht
> nach dem Schreiben in Port C also ABh, denn das obere Nibble ist ein
> Eingang, an dem lt. Aufgabe A3h stand.

genau das dachte ich auch die ganze Zeit. ist auch richtig so habe ich 
gerade Festgestellt, dass mein PROF lediglich vergessen hat, das h für 
hexadezimal in die Musterlösung des Eingabefelds zu schreiben. Ich habe 
mich schon gewundert, wieso ABh falsch ist... AB funktioniert aber, 
obwohl bei den 2 Lösungen davor jeweils ein h dahinter musste...

Vielen Dank für eure Hilfe! =)

von Joe F. (easylife)


Lesenswert?

Matthias S. schrieb:
> Steht alles im Datenblatt

Ja, OK, das habe ich jetzt auch gefunden. Ich fragte ja TO, woher er 
diese Info hat, denn angeblich:

Peter93 schrieb:
> Ich habe dazu nur noch folgendes Bild als Information

und dann später:

Peter93 schrieb:
> Die habe ich aus der 98h.
> Und im Skript steht dann das, was ich hinter jedes Bit ergänzt habe

Ich werde irgendwie nicht schlauer. Wie "hat man die" aus "der 98h", und 
welches Skript?

Egal. Es gibt auch noch ein (nicht eingescanntes) Datenblatt:
http://www.pci-card.com/8255.pdf

von Joe F. (easylife)


Lesenswert?

Peter93 schrieb:
> Hallo, nein das hier ist keine Hausaufgabe

Peter93 schrieb:
> ist auch richtig so habe ich
> gerade Festgestellt, dass mein PROF lediglich vergessen hat

von Peter93 (Gast)


Lesenswert?

98h = 1001 1000 in binär, in meinem Skript von der uni steht, was die 
verschiedenen bits im steuerregister heißen, ob die ports outputs oder 
inputs sind und welcher mode aktiv ist

von Peter93 (Gast)


Lesenswert?

@Joe F. (easylife)

Es ist eine vorbereitung für eine Klausur. Ich konnte mir nicht 
erklären, was an meinem Ergebnis falsch sein sollte und habe deshalb mal 
nachgefragt, also keine Hausaufgabe.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.