In der Schaltung werden vier Leuchtdioden nacheinander zum Blinken gebracht. Um das Blinken etwas interessanter zu
gestalten, soll jede Leuchtdiode mehrmals, in diesem Fall fünf Mal, aufleuchten. Die Arbeit im Hintergrund übernimmt der Mikrocontroller
HT46F47E. Das Programmieren des Mikrocontrollers kann mit zwei einfachen Tasten durchgeführt werden.
Die Schaltung ist schnell aufgebaut. Es werden lediglich vier Leuchtdioden und vier Vorwiderstände benötigt.
An die Pins 11 bis 13 werden 100 nF Kondensatoren angeschlossen. Zwei weitere Widerstände verbinden die Pins miteinander.
Zusätzlich kann man an Pin 11 eine Reset-Taste anschließen. Als S1 kann wahlweise ein Taster oder Schalter angeschlossen werden. Bei
einmaliger Betätigung wird die Blink-Sequenz nur einmal ausgeführt. Kommt ein rastender Schalter zum Einsatz, wird die Blinksequenz
dauerhaft wiederholt.
Mehrfach Wechselblinker - Schaltplan
Mehrfach Wechselblinker - Testschaltung
Das Programm
Vor jeder Blinksequenz wird zunächst die Variable C neu mit dem Wert 5 geladen. Das ist notwendig, da sie während
des Blinkvorgangs auf 0 dekrementiert wird. Dies geschieht in dem Unterprogramm 1. Für den Blinkvorgang ist das Unterprogramm 2
zuständig. Bevor es aufgerufen wird, wird die Variable A mit einem neuen Wert versorgt. Dieser Wert (1, 2, 4, 8) bestimmt, welche
Leuchtiode gerade an der Reihe ist. Nach Ablauf des Hauptprogramms erfolgt ein Sprung auf die Adresse 0. Hier wird entschieden, ob
das Blinken aufhört (Taster S1 aus) oder fortgesetzt wird (Taster S2 ein).
Listing mit Kommentaren
000 CB Überspringe den folgenden Befehl, wenn Taster betätigt
001 31 Springe -1
002 81 Sprungbereich
003 D8 Unterprogramm 1
004 41 Weise der Variable A den Wert 1 zu
005 81 Sprungbereich
006 DB Unterprogramm 2: Blinken
007 81 Sprungbereich
008 D8 Unterprogramm 1
009 42 Weise der Variable A den Wert 2 zu
010 81 Sprungbereich
011 DB Unterprogramm 2
012 81 Sprungbereich
013 D8 Unterprogramm 1
014 44 Weise der Variable A den Wert 4 zu
015 81 Sprungbereich
016 DB Unterprogramm 2
017 81 Sprungbereich
018 D8 Unterprogramm 1
019 48 Weise der Variable A den Wert 8 zu
020 81 Sprungbereich
021 DB Unterprogramm 2
022 80 Sprungbereich
023 90 Springe auf 0
Unterprogramm 1 (Variablen zuweisen)
024 45 Weise der Variable A den Wert 5 zu
025 52 Weise der Variable C den Wert von A zu
026 E0 Return
Unterprogramm 2 (Blinker)
027 81 Sprungbereich festlegen
028 AE Dekrementiere C. Bei 0 Programm fortsetzen, sonst dritte Zeile.
029 E0 Return
030 54 Ausgänge ein/aus
031 26 Wartezeit 100 ms
032 10 Ausgänge aus
033 26 Wartezeit 100 ms
034 81 Sprungbereich
035 9B Springe auf 27
CB 31 81 D8 41 81 DB 81 D8 42 81 DB 81 D8 44 81 DB 81 D8
48 81 DB 80 90 45 52 E0 81 AE E0 54 26 10 26 81 9B