Kombiniertes Schalten von Kontakten

Es sind 2 Kontakte (z.B. Wasserpumpen, K1 = Pumpe im Erdgeschoss, K2 = Pumpe im Obergeschoss) nach untenstehender Vorgabe zu schalten.
Mit dem uC-Experimentierboard (Humerboard) oder mit Keil uVision soll die Funktion nachgewiesen werden.

Die Kontakte werden über das Port 7 eingelesen.

Der Kontakt K1 entspricht der linken Taste (P7 = 0000 0000) in der Tastenreihe; der Zustand des Kontakts K1 wird am Port 4.7 angezeigt.

Der Kontakt K2 wird mit der ganz rechten Taste (P7 = 0000 1111) in der Tastenreihe betätigt; am Ausgang Port 4.0 und Port 4.1 wird der Zustand des Kontakts K2 angezeigt.

 

Schalten der Kontakte nach folgender Spezifikation

a)    K2 einschalten:
- wenn K1 schon eingeschaltet ist, wird K2 sofort eingeschaltet.
- wenn K1 noch nicht eingeschaltet ist wird zuerst K1 eingeschaltet
  und nach 5 Sekunden auch K2 aktiviert.

b)    K2 ausschalten:
- K2 sofort ausschalten.
- K1 nur dann ausschalten, wenn K1 durch K2 aktiviert wurde (andernfalls nicht).

c)    K1 einschalten:
- kann immer erfolgen; K1 ist in diesem Fall unabhängig von K2.

d.)  K1 ausschalten:
- wird nur durchgeführt, wenn K2 ausgeschaltet ist.

 

Flussdiagramme

1. Hauptprogramm

Flussdiagramm

 


2. Externer Interrupt 0

externer interrupt

 

3. Timer 0 Interrupt

Timer interrupt

 

4. Programmcode in Assembler - Version Humerboard

Portbelegung - Humerboard 517A

 

Assembler Schalten von Kontakten