Witam, chcę zrobić na procesorku Atmega8 urządzenie działające na zasadzie przekaźnika bistabilnego tzn. po naciśnięciu przycisku podłączonego np. do nogi PC6 procka chcę uzyskać stan wysoki na wyjściu PC5 aż do ponownego naciśnięcia przycisku, i naciśnięcie następnego przycisku załącza stan wysoki na kolejnym wyjściu. Napisałem sobie program ale nie wiem czy dobrze proszę więc o sprawdzenie i jeśli coś jest źle poprawienie go, Oraz proszę o wyrozumiałość bo dopiero się uczę mój 2 program.
Oto kod programu nie wiem czy dobrze wyprowadziłem dane na porty. Proszę jeszcze raz o sprawdzenie i poprawę. Z góry dzięki. Pozdrawiam
.include "m8def.inc"
.def temp = R16
rjmp RESET
RESET:
ldi temp, low(RAMEND) ;ustawienie wskaźnika stosu
out SPL, temp
ldi Temp, high (RAMEND)
out SPH, temp
loop:
cbi DDRC, DDC6 ;włącz tryb wejściowy lini 6 portu C
cbi DDRD, DDD0 ;włącz tryb wejsciowy lini 0 portu D
cbi DDRD, DDD1 ;włącz tryb wejsciowy lini 1 portu D
cbi DDRD, DDD2 ;włącz tryb wejściowy lini 2 portu D
sbi DDRC, DDC5 ;włącz tryb wyjściowy lini 5 portu C
sbi DDRC, DDC4 ;włącz tryb wyjściowy lini 4 portu C
sbi DDRC, DDC3 ;włącz tryb wyjściowy lini 3 portu C
sbi DDRC, DDC2 ;włącz tryb wyjściowy lini 2 portu C
nop ;czekaj
in temp, PINC ;odczytaj stan portu C
nop ;czekaj
in R16, PINC ;ładuj rejest R16 znacznikami portu C
in temp, PIND ;odczytaj stan portu D
nop czekaj
in R16, PIND ;ładuj rejestr R16 znacznikami portu D
out PORTC,R16 ;wyprowadź dane na port C
rjmp loop ;skok do początku programuOto kod programu nie wiem czy dobrze wyprowadziłem dane na porty. Proszę jeszcze raz o sprawdzenie i poprawę. Z góry dzięki. Pozdrawiam
