robo_wolf,

als Folgeaufgabe böte sich Folgendes an:
Ein allgemein anwendbares Entprellverfahren. So wie Du's jetzt machst, kannst Du immer nur maximal zwei Taster entprellen, die obendrein auch noch die beiden wertvollen externen Interrupts belegen. Deshalb ist ein Verfahren sehr nützlich, mit dem Taster entprellt werden, die einfach an einen Input-Port angeschlossen sind. Dabei kannst Du auch gleich die ersten Schritte mit Timer/Countern machen.

Code:
;***** STK500 Lernprogramm Nr.3
;*** Aufgabe: alle LEDs mit einem Taster auf dem STK500 an und mit einem 2. Taster ausschalten
;*** zum Entprellen wird Timer/Counter0 genutzt. 
; Die Interrupts INT0 und INT1 werden nicht benutzt. Der Overflow-Interrupt des TimerCounter0 
; wird aktiviert. 
; Bei jedem TOV0-Interrupt wird der Zustand von Taster0 und Taster1 abgelesen. 
; Für jeden Taster wird ein Zustandsregister eingerichtet. Wenn bei einer Ablesung Taster0 
; gedrückt ist, wird in das Zustandsregister von Taster0 von links eine 1 eingeschoben 
; (z.B. <ror>-Anweisung, vorher CARRY-Flag setzen). Wenn bei einer Ablesung Taster0 nicht
; gedrückt ist, wird in das Register von rechts eine Null  eingeschoben. Die Taste gilt nur dann als gedrückt,
; wenn der Inhalt des Registers grösser als 0x0F ist.
; Das Entprellen bei Taster1 wird analog gelöst. 
;
; Mit dem Prescaler spielen, um verschiedene Reaktionsgeschwindigkeiten auzuprobieren
; Mit dem Schaltgrenzwert des Zustandsregisters spielen, um zeitlich symmetrisches und
; unsymmetrisches Verhalten zu erproben
;***
Wär' das was? Weiterhin viel Spass beim Assemblern !

mare_crisium