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)