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
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?
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.
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
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! =)
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
Peter93 schrieb:> Hallo, nein das hier ist keine HausaufgabePeter93 schrieb:> ist auch richtig so habe ich> gerade Festgestellt, dass mein PROF lediglich vergessen hat
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
@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.