Download Icon

Microcomputertechnik VP 05.07.2020 mit Lösung - DV 1.1

Keine Berechtigung zum Herunterladen
Kathrinsche hat einen neuen Download eingereicht:

Microcomputertechnik VP 05.07.2020 ohne Lösung - DV - MC_VP_20200705_DV

Hier mal meine Rekonstruktion der Microcomputer-Vorprüfung Fachrichtung Datenverarbeitung vom 05.07.2020.

Falls jemand Lust hat eine Lösung zu erarbeiten füge ich die gerne noch hinzu.

Viel Spaß beim lernen :)

Mehr über diesen Download...
 
Vielen Dank dafür! Sieht Klasse aus.
Ich versuche am kommenden Sonntag auch etwas mitzuschreiben.

Kannst du mir sagen wie die 2 höchsten Adressbereiche bei 1.3 definiert werden?
Ich weiß das dass ermitteln vom niedrigsten Bereich immer Nullen bei den fix Adressen eingesetzt werden. Deshalb würde ich daraus schließen dass der höchste wäre, wenn ich überall eine 1 rein mache. Aber was ist dann der zweithöchste?
 
Du hast ja immer die eindeutig belegten Adressräume. In dem Beispiel sind ja A12-A15 die Adressierung.
ROM 2 hat ja 2K x8Bit und hat somit die Adressbereiche A0-9.
A10 und 11 sind also undefiniert. Da musst du dann einfach alle vier Möglichkeiten (00,01,10,11) durchmachen.
Bzw. 00 hast du ja schon bei der 1.2 also als niedrigster eindeutiger Adressbereich.
Blöd zu erklären, schau dir mal ein paar Musterlösungen an, ist eigentlich voll einfach.
 
Kathrinsche aktualisierte Microcomputertechnik VP 05.07.2020 ohne Lösung - DV mit einem neuen Update-Eintrags:

Microcomputertechnik VP 05.07.2020 mit Lösung

Habe jetzt noch meine Version der Lösung hinzugefügt.
Muss natürlich nicht stimmen, falls ihr andere Lösungen habt - her damit!

Mir ist noch ein Fehler bei der Aufgabe 1 aufgefallen:
Alle eindeutigen Adressbereiche von RAM 1 und nicht ROM 1 waren gefragt.:sneaky:
Das ist jetzt korrigiert.

Viel Spaß beim lernen!

Den Rest dieses Update-Eintrags lesen...
 
Vielen Dank dafür! Sieht Klasse aus.
Ich versuche am kommenden Sonntag auch etwas mitzuschreiben.

Kannst du mir sagen wie die 2 höchsten Adressbereiche bei 1.3 definiert werden?
Ich weiß das dass ermitteln vom niedrigsten Bereich immer Nullen bei den fix Adressen eingesetzt werden. Deshalb würde ich daraus schließen dass der höchste wäre, wenn ich überall eine 1 rein mache. Aber was ist dann der zweithöchste?

Habe gerade mal eine Lösung erstellt und jetzt weiß ich auch was du meinst..
Natürlich war der Bereich von RAM 1 gefragt und nicht ROM 1 ^^
 
Habe eine Frage, muss in der Aufgabe 2 nach dem MOV A, 20H nicht das Befehl
SUBBA, 22H????

Sonst wissen wir gar nicht was wir für ein Vorzeichen haben.
 
Habe eine Frage, muss in der Aufgabe 2 nach dem MOV A, 20H nicht das Befehl
SUBBA, 22H????

Sonst wissen wir gar nicht was wir für ein Vorzeichen haben.

Habe mal fix drüber geschaut.
Ja es wurde dort vergessen.
Die beiden Werte müssen schon miteinander verglichen werden, sonst wird auch kein Carrybit gesetzt und es kann dann auch nicht ausgewertet werden.
Desweiteren wurde in der Lösung der Befehl cjne in einer falschen Bedeutung verwendet.
Dieser benötigt 3 Parameter.
z.B
cjne A,#00H,M1
bedeuten würde das:
Vergleiche A mit dem Wert 0 und springe,
wenn nicht gleich nach M1

Und vergesse das Leerzeichen nicht zwischen subb und A, sonst ist es ein Fehler!
 
Hi,

ich kann deinen Lösungsweg bei Aufgabe 1 nicht ganz nachvollziehen.
Um dein ROM1 auszuwählen, müsste dein A12 doch 0 sein, da CE negiert ist.

Zumindest wird das meiner Meinung nach in LM 2 S.79 Aufgabe 1 auch so gemacht.

Dementsprechend ist der CE von ROM1 immer auf 1, wenn ein anderer Speicher ausgewählt wird.

Ich komme deshalb auch auf andere Speicheradressen. Kann aber auch sein, dass ich das falsch verstanden habe :)
 
Hi,

ich kann deinen Lösungsweg bei Aufgabe 1 nicht ganz nachvollziehen.
Um dein ROM1 auszuwählen, müsste dein A12 doch 0 sein, da CE negiert ist.

Zumindest wird das meiner Meinung nach in LM 2 S.79 Aufgabe 1 auch so gemacht.

Dementsprechend ist der CE von ROM1 immer auf 1, wenn ein anderer Speicher ausgewählt wird.

Ich komme deshalb auch auf andere Speicheradressen. Kann aber auch sein, dass ich das falsch verstanden habe :)

Hallo svb,
das deutest du vollkommen richtig ;)
Auch bei Ram1 z.B wird dieser zwar angesprochen aber auch Rom 1.
Das sollte nicht passieren.
Glaube auch, dass dort einiges falsch ist.
 
Falls jemand seine Ergebnisse hier teilen will, kann ich die gerne in meiner Lösung ergänzen.

Hatte wie gesagt auch nur eine 2. ;)

Hallo Kathrinsche,
Ist ja nicht schlimm, dass an einigen Stellen Fehler sind.Immerhin hast du dir die Mühe gemacht eine Rekonstruktion für andere zu erstellen und somit eine Möglichkeit geschaffen darüber nochmal zu diskutieren.
Daher deute mein Geschriebenes nicht als Vorwurf, sondern als Versuch nur zu helfen, um gemeinsam auf eine Lösung zu kommen. :)
 
Im Anhang mal ein Lösungsvorschlag für Aufgabe 1 von mir.
Hoffe habe mich nirgends vertippt vor lauter Nullen und Einsen 😅
 

Anhänge

  • 05.07.2020 A1.pdf
    189,6 KB · Aufrufe: 22
Hey zusammen.

kann mir jemand sagen, ob Aufgabe 3 so richtig ist?
Vor allem das UP "EMPFANG".

Da wir bei dieser Aufgabe Daten über die serielle Schnittstelle empfangen müssten wir nicht über RI statt TI arbeiten?

EMPFANG: JNB RI, EMPFANG
MOV R0, SBUF
SETB P0.0
CLR RI
RET
END

Danke :)
 
Hey zusammen.

kann mir jemand sagen, ob Aufgabe 3 so richtig ist?
Vor allem das UP "EMPFANG".

Da wir bei dieser Aufgabe Daten über die serielle Schnittstelle empfangen müssten wir nicht über RI statt TI arbeiten?

EMPFANG: JNB RI, EMPFANG
MOV R0, SBUF
SETB P0.0
CLR RI
RET
END

Danke :)
Hallo FCMUKU,

ja das stimmt, das RI Bit wird gesetzt wenn etwas empfangen wurde.
Das Empfangen muss man aber im Zusammenhang mit der Info " Es wird über ein Interrupt die serielle Schnittstelle eingelesen " sehen.
Daher entfällt auch bei dieser Variante im UP der Befehl jnb, weil warum nochmal abfragen, ob etwas empfangen wurde, wenn doch der Interrupt wegen gesetzten RI ausgelöst wird, weil ebend was empfangen wurde.
Ob das RI Bit im UP nach auslösen des Interrupt manuell oder automatisch gelöscht wird, müsstest du nochmal im LM nachlesen.
Ich glaube man musste es selbst löschen, auch in diesem Fall.

Vergessen darf man auch nicht den Interrupt am Anfang des Codes zu initiieren bzw. die Freigabe zu erteilen.
Das wurde auch in der Lösung berücksichtigt.
Ob es mit den richtigen Werten gemacht wurde solltest du aber lieber nochmal prüfen.
Und noch als kleine Anmerkung:
Eine Interruptroutine wird immer mit RETI und nicht mit RET verlassen. :)
 
Hallo Baam,

alles klar, ich danke dir.
Dann habe ich ja bis auf das vergessene "RETI" richtig gedacht!
Das RI Bit muss man manuell löschen, steht in LM3.
Grüße
Genau.
Die Einsprungadresse des Interrupts muss noch beachtet werden(0023H nicht 0300H)
Der seielle Interrupt wurde mit 90H im IE Register jedoch richtig initiiert in der Lösung.
Was noch fehlt, wenn man empfangen möchte, ist das REN Bit im SCON Register auf 1.
Deswegen hätte es mov SCON, #50H heißen müssen.

LM3.S.82. unten ist ähnlich.
Da wird jedoch anstelle von mov IE,#90H nur setb EA und setb ES geschrieben.
Und das REN Bit wird auch direkt mit setb REN auf 1 gesetzt.
Hat alles jedoch die selbe Wirkung.

Schöne Grüße
 
Top