MOP Praktikum 6

by

These are notes taken during the MOP practical course 2005. Sources are prepared in such a way that tutors can easily check if they were just copied from here. So do yourself a favor and don't copy it.

Kontrollfragen

  1. Wieviele Leitungen wären nötig, um die beiden Siebensegmentanzeigen direkt an den Mikrocontroller anzuschließen, wieviele sind es bei Benutzung der Multiplexer-Methode?

    • Ohne Multiplexer: 2 * 8 = 16

    • Mit MS: 8 + 2 = 10

  2. Machen Sie sich die Bedeutung der einzelnen Codeabschnitte in Beispiel 1 klar! Schreiben Sie dazu für jeden Codeabschnitt auf, was dort bewirkt wird und erläutern Sie die Bedeutung der Bitmuster für #OEB, #OEC, #OUTB und #OUTC!

  3. Fertigen Sie eine Tabelle an, in der Sie für die 10 Dezimalzahlen 0-9 die entsprechenden Bitmuster für die Segmente a-g notieren! Sie werden diese Tabelle zur Bearbeitung der Übungsaufgaben weiter unten benötigen.

    segtable:
          .db 00111111b ; 0
          .db 00000110b ; 1
          .db 01011011b ; 2
          .db 01001111b ; 3
          .db 01100110b ; 4
          .db 01101101b ; 5
          .db 01111101b ; 6
          .db 00000111b ; 7
          .db 01111111b ; 8
          .db 01101111b ; 9
          .db 01110111b ; a
          .db 01111100b ; b
          .db 00111001b ; c
          .db 01011110b ; d
          .db 01111001b ; e
          .db 01110001b ; f
  4. Analysieren Sie das Beispielprogramm 2 und notieren Sie hinter relevante Code-Abschnitte die jeweilige Bedeutung! Informieren Sie sich mithilfe der technischen Dokumentation des AN2131SC über die für Interrupts wichtigen Register!

  5. Was würde in dem Programm aus Beispiel 2 passieren, wenn man den linken Taster gedrückt hält? Leuchtet die rote LED dann noch oder nicht? Begründen Sie Ihre Antwort!

    • gelbe Taste ➞ level triggered ➞ Interrupt wird immer wieder aktiviert ➞ glimmt kurz auf

  6. Wie lokalisiert der 8051 den Code der ISR? Warum wird beim Eintritt in eine ISR der Programm-Zähler auf den Stack gebracht?

    • feste Einsprungadresse ➞ im Code kann man selber zur richtigen Adresse springen

    • IP auf Stack, damit er nach reti wieder zurückspringen kann

  7. Was versteht man prinzipiell unter der Lost-Update-Problematik? Was ist die Entstehungsursache auf dem 8051 und wie kann man sie beheben?

    • IP auf Stack, damit er nach reti wieder zurückspringen kann

    • weiteres Arbeiten mit IO vielleicht gestört, da mehrere Instruktionen immer notwendig (mitten in Instruktionen Interupt)

    • Lösung: Interrupts einfach während ausführung verbieten (clr IE.7 - danach setb IE.7)

Aufgaben