.include "m32def.inc" START: sbi PORTD, 0 cbi DDRD, 0 sbi PORTD, 6 sbi DDRD, 6 //sbi DDRD, 6 // ustawiamy jako linie wyjściową pin D6 //cbi DDRD, 0 // ustawiamy jako linie wejsciowa pin D0 //sbi PORTD, 0 // podciaganięcie portu D0 Petla: SBIS PIND, 0 // jeżeli przycisk jest wciśnięty pomin nastepna linie cbi PORTD, 6 // ustawia stan wysoki linii portu aby zaswiecic diode SBIS PIND, 0 // jezeli przycisk jest wcisniety pomin nastepna linie rjmp Petla // skok do Petla SBIS PIND, 6 // jezeli dioda jest zaswiecona pomijamy nastepna linie sbi PORTD, 6 // ustawia stan wysoki linii portu aby zaswiecic diode // delay ldi R17, 100 // załaduj 100 do R17 delay: ldi R16, 249 // załaduj 249 do R16 nop // bez operacji delay2: nop dec R16 //R16=R16-1 zmniejszamy wartosc rejestru o jeden brne delay2 // jezeli ostatnia wartosc dzialania arytmetycznego // byla rozna od 0 przeskocz do delay2 dec R17 // zmniejszamy wartosc rejestru o jeden brne delay // jezeli ostatnia wartosc dzialania artymetycznego // byla rozna od 0 przeskocz do delay SBIC PIND, 6 // jezeli dioda jest zgaszona pomijamy nastepna linie cbi PORTD, 6 // ustawia stan wysoki linii portu aby zgasić diode ldi R17,100 delay3: ldi R16, 249 nop delay4: nop dec R16 //R16=R16-1 zmniejszamy wartosc rejestru o jeden brne delay4 // jezeli ostatnia wartosc dzialania arytmetycznego // byla rozna od 0 przeskocz do delay2 dec R17 // zmniejszamy wartosc rejestru o jeden brne delay3 // jezeli ostatnia wartosc dzialania artymetycznego // byla rozna od 0 przeskocz do delay rjmp Petla // skok do Petla