Sie sind auf Seite 1von 3

Lösungen Mikroprozessor SS09

A1)
Eingänge: S T1 T0 D M5 M60
Ausgänge: H R A1 A0

A2)
Zustand H R A1 A0 V
Ruhe 0 0 0 0
TV (Tür verriegelt) 0 1 1 0 1
AH (aufheizen) 1 0 1 0 1
Stör 0 - 1 1 0
RoH 0 0 0 1 1
RmH 1 0 0 1 1
UN (Uhr=0) 0 1 1 0 1
A3)
AK1 0 - 1 0
AK2 0 - 1 0
A4)
WA (warten) 0 - 0 0 0

A2/3/4)
a)
S*D T1*M5

S*D 1
Ruhe TV Aufheizen

T1*M5 T1
D D D
D

WA T1+T0
T1*T0
Stör. AK2
T1*T0

UN
T1*M60
T1+T0 T1*M60 1
AK1
T1*M60
M60 RoH RmH
T1*M60

M60

A5)
Aufheizen: - Richtung TV: Es wird nur geheizt, wenn die Tür verriegelt ist - korrekt
- Richtung UN: Wenn die Zeiltemp. erreicht wird, wird die Uhr=0 gesetzt - korrekt
- Richtung Stör: Wenn die Zeiltemp. nach 5 Min nicht erreicht ist - korrekt
𝑃𝑃
A6) 𝑃𝑃 = 𝑐𝑐 ∗ 𝑓𝑓 ∗ 𝑈𝑈² -> 𝑐𝑐 = -> 𝑐𝑐16𝑀𝑀𝑀𝑀𝑀𝑀 = 7,5 ∗ 10−11
𝑓𝑓∗𝑈𝑈²
2
𝑃𝑃8𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑐𝑐16𝑀𝑀ℎ𝑧𝑧 ∗ 𝑓𝑓 ∗ 𝑈𝑈8𝑀𝑀ℎ𝑧𝑧 -> 𝑃𝑃8𝑀𝑀𝑀𝑀𝑀𝑀 = 6,534 𝑚𝑚𝑚𝑚

Man wählt die 8Mhz Taktung da die Leistungsaufnahme weit unter der Hälfte der 16Mhz
Taktung liegt.

A7)
a) logische 0 : - 15 V...-3 V
logische 1 : + 3...+15 V
b) Prüfsumme (ja/nein) und Stopbits (1,2)
c) Da es sich um ein Asynchrones Signal mit Flusskontrolle handelt.

A8) Hohe Stückzahl, deshalb ein ROM. Da dieser schon bei der Herstellung Programmiert wird
und danach nicht mehr verändert werden kann, entfällt der Schritt des Programmierens und
somit auch eine Fehlerquelle.
Ein Flash-Speicher wäre ebenfalls möglich, das wäre dann die "edel"-Version, wenn z.B. zu
einem späteren Zeitpunkt ein Firmwareupdate möglich sein muss.
Ein RAM-Speicher ist ungeeignet, da er flüchtig is.

A9)
a) Es handelt sich um eine ISR, die nicht von einer Funktion sondern von einem Ereignis
aufgerufen wird. Folglich fehlt die Funktion, die der ISR einen Wert übergeben
könnte, bzw. an die die ISR einen Wert zurückgeben könnte. Der Paramater ist das
Ereignis das die ISR aufruft.

b) Durch die Definition als "static" Variable, wird der Wert an einer festen
Speicheradresse abgelegt, "überlebt" das Ende der ISR und steht beim nächsten
Aufruf wieder zur Verfügung . Da "static" Variablen vom Compiler nur ein Mal
initialisiert werden, wird "t" beim erneuten Aufruf der ISR nicht auf "0"
zurückgesetzt.

c) Je nach Wert in PORTA werden die Bits wie folgt geändert: 2 x 0=1; 2x 1 =0; 1+0 bzw.
0+1 =1. Siehe Script Teil 6+7, S. 2/8 in der Tabelle "exor".

d) In der Interrupt-Vektor-Tabelle (IVT) sind die Zeiger verzeichnet mit denen die ISR
aufgerufen werden kann.

A10) Masken: Sie sind dafür zuständig, Interrupts global an oder auszuschalten. Will man
einen Interrupt nutzen müssen die Interrupts zum einen global freigegeben werden
und zusätzlich muss der betreffende Interrupt aktiviert werden.

Flags: Viele Ereignisse im uC sind zu kurz, als das man sie beim aktiven abfragen
"erwischen" würde. Deshalb werden beim eintreten bestimmter Ereignisse so
genannte Flags gesetzt die dann als eigentlich Auslöser einer ISR dienen. Die Flags
zeigen nur an dass das Ereignis eingetreten ist, jedoch nicht wann! Je nach uC und
Ereignis werden die Flags direkt beim Eintritt in die ISR gelöscht oder müssen im
Programmcode der ISR manuell zurückgesetzt werden.

A11) Es können 3 Signale mit gleicher Frequenz aber unterschiedlicher Pulsweite erstellt
werden, da die Pulsweite über Vergleichen mit einem Registerwert erstellt wird, die
Frequenz aber vom Timer kommt. Da nur ein Timer vorhanden ist kann auch nur eine
Frequenz generiert werden.

A12) Da es bei der Harvard-Architektur jeweils einen Speicher für Programm und für Daten
gibt ist diese sehr unflexibel. Bei von Neumann gibt es nur einen Speicher, der
beliebig aufgeteilt werden kann. Da beim PC der Anteil an Speichernutzung
(Programm / Daten) nur sehr schwer vorauszusagen ist und es auch Programme gibt,
bei denen das Programm viel größer ist als die bearbeiteten Daten (Word), wird in
PCs von Neumann Architektur verwendet.

Das könnte Ihnen auch gefallen