Programmierung eines Betriebssystems zur Ampelsteuerung auf einem Siemens 80C537 Microcontroller.
Projektdaten - Übersicht | |
Zeitrahmen | erstes Semester; vier Labortermine (wöchentlich) |
Teamgröße | drei Studenten |
Programmiersprache | C |
Entwicklungsumgebung | µVision, dScope (siehe Text) |
In einem kleinen Team wurde diese Ampelsteuerung entwickelt.
Der Aufbau verfügt über je zwei identisch beschaltete KFZ- und Fußgängerampeln
und soll damit eine einfache Straße mit einem Fußgängerüberweg darstellen.
Die Fußgängerampeln werden durch den Taster T1 auf grün geschaltet.
Desweiteren ist der Ampelkasten mit drei gelben Status-LEDs,
acht Kippschalter (zum Einstellen der Verkehrs-LEDs),
einen Reset-Taster und je zwei weitere Kippschalter bzw. Taster zu
Test- und Entwicklungszwecken.
Entwickelt wurde die Software mit der µVision IDE sowie dem dScope Simulator von Keil. Der kompilierte Code wurde dann direkt auf den Microcontroller übertragen.
Es soll eine Ampelsteuerung für einen Fußgängerüberweg realisiert werden. Für die Ampelsteuerung werden Ein-/Ausgabeprozeduren (Versuch 1), Lauflicht und Zeitverzögerungen (Versuch 2) sowie eine Interrupt-Steuerung (Versuch 3) benötigt.
Ausgangspunkt: Die Autoampel ist grün, die Fußgängerampel rot.
Das Fahren der Autos soll mit dem Lauflicht aus Versuch 2.2 angedeutet werden.
Nach Drücken des Tasters INT soll die für eine Fußgänger-Ampelanlage
bekannte Sequenz ablaufen, also die Autos bekommen zuerst gelb, dann rot usw.
4.1 Erstellen Sie ein Programm für folgende Sequenz:
Sequenz-Tabelle anzeigen
4.2 Modifizieren Sie das Programm nach 4.1 so, daß nach Schritt 6 die Autos grün bekommen und das Lauflicht wieder läuft, aber der Interrupt für weitere 30 bis 40 Sekunden gesperrt bleibt. Ob der Interrupt freigegeben ist, soll mit der Status-LED S1 angezeigt werden.
Während der Implementierung mussten Bitmuster ein-/ausgelesen, maskiert und modifiziert werden. Diverse Timer zur Steuerung des Programmablaufs wurden, basierend auf dem festen Takt des Microcontrollers, als Zählschleifen implmentiert. Für den Fußgänger-Taster T1 wurde eine Interrupt Service Routine (ISR) geschrieben.