Musze napisać program (opisać go komentarzami, napisać schemat blokowy a także pokazać co robi ten program).
Treść projektu:
Napisać program zliczający zapalone bity na portach A i B i wyprowadzający liczbę zapalonych bitów zakodowaną w formacie BCD na port C
zrobione to jest w programie AVR Studio 4 dla procesora AVR ATmega 8515
Program mam już zrobiony
Jeśli jest coś zle czy może ktoś dopisać jeszcze jakieś komentarze, z góry dziękuję!.include<m8515def.inc>
.cseg
.org 0
rjmp start
start:
ldi r16, high(ramend) ;ustawianie stosu
out sph, r16
ldi r16, low(ramend)
out spl, r16
ldi r16, 0xff
out ddrc, r16
ldi r16, 0x00
out ddra, r16
out ddrb, r16
in r16, pina
clr r17
ldi r18, 8
petla:
lsr r16
brcs inkrementuj
skok:
dec r18
brne petla
in r16, pinb
ldi r18, 8
petla1:
lsr r16
brcs inkrementuj1
skok1:
dec r18
brne petla1
mov r16, r17
ldi r17, 16 ;zapis 16 do r17
mov r2, r17 ;skopiowanie 16 do r2
clr r1
rcall bin2bcd
out portc, r16
koniec:
rjmp koniec
inkrementuj:
inc r17
rjmp skok
inkrementuj1:
inc r17
rjmp skok1
bin2bcd: ;podprogram do konwersji BIN na BCD
cpi r16, 10 ;porownanie z 10
brsh wiekszy ;skok wzgledny gdy wiekszy lub rowny
add r1, r16 ;jesli mniejsze od 10 to dodanie ze soba rejestru dziesiatek BCD i reszty z r16
mov r16, r1 ;zapis poprawnej liczby BCD do rejestru r16
ret ;powrot z podprogramu
wiekszy:
subi r16, 10 ;odjecie liczby 10 od rejestru
add r1,r2 ;dodanie liczby 16 do rejestru pomocniczego r1
rjmp bin2bcd ;powrot do dalszego konwersji
Ale potrzebuje Schematu Blokowego! Proszę o pomoc, nie potrafie go napisać Zadanie musze oddać jutro.