Ampfel Aufgabenstellung 2006-05-19 15:55:45 Beschreibung: Sie sollen eine Ampelsteuerung entwickeln. Die Lichter der Ampeln werden dargestellt durch die 8 LEDs des Ports P2. Gegeben sind 2 Ampeln mit jeweils 3 LEDs und zusätzlich eine Fußgängerampel mit 2 LEDs. Die Zuordnung ist wie folgt: P2.7 rot Ampel 1 P2.6 gelb Ampel 1 P2.5 grün Ampel 1 P2.4 rot Fußgängerampel P2.3 grün Fußgängerampel P2.2 rot Ampel 2 P2.1 gelb Ampel 2 P2.0 grün Ampel 2 Die Ampelphasen wechseln sich wie folgt ab: Ampel 1 ist rot, Ampel 2 ist grün Ampel 1 ist rot, Ampel 2 ist gelb Ampel 1 ist rot, Ampel 2 ist rot Ampel 1 ist rot und gelb Ampel 2 ist rot Ampel 1 ist grün Ampel 2 ist rot Ampel 1 ist gelb Ampel 2 ist rot Ampel 1 ist rot Ampel 2 ist rot Ampel 1 ist rot Ampel 2 ist rot und gelb Auf die letzte Phase folgt wieder die erste Phase. Aufgabe 1: Schreiben Sie ein Assembler-Programm das die obigen Ampelphasen in einer Tabelle im EEPROM ablegt und die erste Phase über die indirekte Adressierung anzeigt. Aufgabe 2: Die Ampelphasen sollen durch Interrupts eines Timers weitergeschaltet werden, weil hier der zeitliche Ablauf genauer zu steuern ist. Erweitern Sie obiges Programm durch einen Interrupt der durch den Timer0 ausgelöst wird. Der Timer soll alle 10 ms ausgelöst werden (ohne dass durch den Timer etwas ausgeführt wird). Welchen Timer wählen Sie? Wie erreichen Sie es, dass der Timer alle 10 ms ausgelöst wird? Aufgabe 3: Nun sollen bei jedem Interrupt (also alle 10 ms) die jeweils nächste Ampelphase angezeigt werden. Aufgabe 4: Um den Autoverkehr flüssig zu gestalten sollen die beiden Ampelphasen, in denen eine Ampel grün ist, 10 Sekunden lang sein, während die anderen Phasen 3 Sekunden dauern sollen. Dieses Ziel soll in mehreren Schritten erreicht werden. Erweitern Sie das Programm so, dass nach jeweils 1 Sekunde die nächste Ampelphase angezeigt wird. Aufgabe 5: In diesem Schritt soll die bisherige Wartezeit von 1 Sekunde auf 10 bzw. 3 Sekunden erweitert und die Wartezeit entsprechend den Ampelphasen richtig zugeordnet werden. Aufgabe 6: Zum Schluss soll noch für die Fußgängerampel ein Interrupt eingefügt werden. Dieser Interrupt soll durch Drücken des Tasters P3.2 ausgelöst werden. Nach dem Auslösen dieses Interrupts sollen die beiden Ampeln zuerst auf Geld, danach auf Rot geschalten werden, jeweils für ca. 3 Sekunden (durch eine Zählschleife, nicht durch Timer). Danach wird die Fußgängerampel für ca. 6 Sekunden auf Grün geschaltet und danach zeigt sie wieder ca. 3 Sekunden lang rot. Die beiden Ampeln sollen nun wieder in der Phase 4 (Ampel 1 ist rot und gelb, Ampel 2 ist rot) beginnen.