;LED an Bit 1 des PortB, an Bit0 des Port B ein Taster
; mit AT90S2313
;
;
.nolist						;verhindert auflisten
.INCLUDE "C:\Programme\AVR\AStudio4\AvrAssembler\appnotes\2313def.inc"	;Include-Datei einbinden
.LIST						;Listen wieder einschalten
.def 	stack	= r16		;Name festlegen für r16 
							;das war das Vorspiel, ist bei jedem Programm nötig

.cseg						;legt fest, das hier das Codesegment beginnt
.org	0x0000				;Programmbeginn festlegen bei 0x0000
.device = AT90S2313
ldi stack, RAMEND			;Stack initialisieren   
out SPL, stack				;superwichtig!! sonst funktioniert RCALL und RET nicht

ldi r17, 0b00000010			;lädt den Wert in Register 17
out DDRB, r17				;Wert aus Register 17 in DataDirectionRegister Port B laden, macht Bit1 zu Ausgang
ldi r17, 0b00000001			;Wert laden
out PORTB, r17				;aktiviert Pull-Up-Widerstand an Bit 0 PortB
rjmp main							


;
;**************   Hauptprogramm    *****************
;  
main:
sbic PORTB, 0				;überspringe nächsten Befehl, falls Taster gedrückt
cbi PORTB, 1				;mache LED aus
sbis PORTB, 0				;überspringe nächsten Befehl, falls Taster nicht gedrückt
sbi PORTB, 1				;mache LED an
rjmp main				;endlosschleife
;

