.include "tn2313def.inc"
.org 0
ldi r24,LOW(RAMEND)
out SPL,r24
ser r24
out DDRB,r24 ; port B - wyjscia
ldi r24,0
out DDRD,r24 ; port D - wejscia
out PORTB,r24 ;diody zgaszone
ser r24
out PORTD,r24 ;na przyciskach jedynki
start:
in r16,PIND
andi r16,48 ;sprawdza tylko 2 przyciski
cpi r16,16
breq zielona
cpi r16,32
breq czerwona
rjmp start
czerwona:
ldi r16,PINB
cpi r16,0
breq zaswiec
rcall zgas
ret
zaswiec:
ldi r16,255
out PORTB,r16
rcall Delay
ret
zgas:
ldi r16,0
out PORTB,r16
rcall Delay
ret
zielona:
ret
Delay : ; realizacji opóźnienia
ldi r17,200 ; zawartość acc2 = 0
ldi r16,0 ; zawartość acc = 0
Del_0 : ;
inc r16 ; zwiększ zawartość acc
brne Del_0 ; skocz gdy acc różne od 0
inc r17 ; zwiększ zawartość acc2
brne Del_0 ; skocz gdy acc2 różne od 0
ret ; powrót z podpr
Diody w porcie B 2 przyciski w porcie D jeden zaświecać powinien i gasić diodę drugi nie robi nic. Część sprawdzająca przyciski jest poprawna bo w innym programie działa. Widzie błąd bo ja nie mogę zauważyć. Nic się nie dzieje z diodami