mikrocontroller.net

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


Autor: Peter93 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: Peter93 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe dazu nur noch folgendes Bild als Information

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: S. Landolt (Gast)
Datum:
Angehängte Dateien:

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

Keine Ahnung, ob das weiterhilft, aber bitte.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: Peter93 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter93 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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! =)

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter93 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter93 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.