; } ?>
:ISP: Taste entprellen mit RS-Flip-FlopSchliesst man einen Taster direkt an einen Zähler an, kann erkannt werden das ein Taster nicht einfach nur schließst, sondern mehrfach hin und her prellt.
D.h. statt eines Impulses mehrere Impulse erzeugt:


![]() |
Das RS-FF aus NANDS ist der Taktgeber für einen Zähler 0..15 lowaktive Denkweise:
In der Ruhestellung liegt an TaktR Pin16 low, FF ist 0 Beim Tastendruck wird das FF durch Low an TaktR gesetzt. |
DECLARATIONS "********** Ein- und Ausgänge *******************************
TaktS,TaktR PIN 15,16; "Takt-FF-Setzen und Takt-FF-Rücksetzen sind
"die beiden Tasterkontakte von T1
TaktQ,TaktQN PIN 3,4; "Takt-FF-Ausgang Q, Takt-FF-Ausgang QN
ctrbit3..ctrbit0 PIN 7,8,9,10 ISTYPE'BUFFER,REG'; "4 Zählerausgänge
ctr = [ctrbit3..ctrbit0]; "Zusammenfassung zum Zähler 0 bis 15
EQUATIONS "************ Logikgleichungen *********************************
TaktQ = !(TaktS & TaktQN); "RS-Flipflop zur Tasterentprellung
TaktQN = !(TaktR & TaktQ );
ctr.d = ctr.q + 1; "Zähler 0 bis 15
ctr.clk = TaktQ; "Zähler erhält Takt vom RS-Flipflop
TEST_VECTORS "********** Simulation **************************************
( [TaktS,TaktR] -> TaktQ); "Eingänge -> Ausgänge
@repeat 9 {[1 ,0 ] -> .x.; "Taster losgelassen, Grundstellung
[0 ,1 ] -> .x.; "Simulation des Prellens:
[1 ,1 ] -> .x.; "Taster federt (prellt) 3 mal
[0 ,1 ] -> .x.; "beim Drücken
[1 ,1 ] -> .x.;
[0 ,1 ] -> .x.;
[1 ,0 ] -> .x.; "Taster loslassen
[1 ,1 ] -> .x.; } "Taster federt (prellt)
END