Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Projekt

Awatar użytkownika
Marylka
-
-
Posty:13
Rejestracja:19 lis 2007, o 23:14
Lokalizacja:Mikołów
Kontaktowanie:
Projekt

Postautor: Marylka » 26 lis 2007, o 14:35

Witam! mam do wykonania zadanie z Assemblera

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
.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
Jeśli jest coś zle czy może ktoś dopisać jeszcze jakieś komentarze, z góry dziękuję!

Ale potrzebuje Schematu Blokowego! Proszę o pomoc, nie potrafie go napisać Zadanie musze oddać jutro.

marek1
-
-
Posty:104
Rejestracja:11 kwie 2007, o 18:46
Lokalizacja:Cieszyn

Postautor: marek1 » 26 lis 2007, o 15:52

Proponuję przetestować w AVRStudio i będzie wiadomo czy jest OK.
Z praktycznego punktu widzenia należało by się zastanowić nad sensem definiowania dwóch pseudo procedur "inkrementuj" i "inkrementuj1" - moim zdanie niepotrzebnie wydłużają kod programu i zwalniają działanie.

Pozdrawiam
Marek

Awatar użytkownika
Marylka
-
-
Posty:13
Rejestracja:19 lis 2007, o 23:14
Lokalizacja:Mikołów
Kontaktowanie:

Postautor: Marylka » 26 lis 2007, o 16:22

to jak to mam skrócić, możesz mnie to przedstawić

marek1
-
-
Posty:104
Rejestracja:11 kwie 2007, o 18:46
Lokalizacja:Cieszyn

Postautor: marek1 » 26 lis 2007, o 16:44

Przyjrzyj się instrukcjom SBIC oraz SBIS.

Marek

Awatar użytkownika
Marylka
-
-
Posty:13
Rejestracja:19 lis 2007, o 23:14
Lokalizacja:Mikołów
Kontaktowanie:

Postautor: Marylka » 26 lis 2007, o 22:39

marek ja jestem z tego zielona, pomagał i kolega i nie potrafie tego, wiec mógłbyś mi to jaśniej wytłumaczyć

Potrzebuje schemat blokowy do tego jutro to musze oddać...!


//
Skoro jesteś zielona, to może lepsza byłaby szkoła botaniczna? Nigdy nie zrozumiem tego typu ludzi - pchają się na siłę do szkół w których nic nie rozumią i nie potrafią i tylko zajmują miejsce ludziom, którzy to rozumią i potrafią a wypadli nieco gorzej na egzaminach nie mających żadnego związku z kierunkiem szkoły/uczelni. Skoro jest to projekt z jakiegoś przedmiotu, to z całą pewnością na tym przedmiocie wyłożona została wiedza niezbędna do wykonania projektu. A to że niektórym jest "zielono" i bujają w obłokach zamiast uważać na lekcjach/wykładach to już problem samych zainteresowanych. Identyczny temat został zamknięty na Elektrodzie. I wtym miejscu robię dokładnie to samo cytując : "forum nie służy odrabianiu zadań domowych za leni". Pomijam już formę postu : nie umiem, potrzebuję, zróbcie za mnie. Można było to napisać inaczej i na pewno pomoc by się znalazła.
mod. radzio.
Ostatnio zmieniony 1 sty 1970, o 01:00 przez Marylka, łącznie zmieniany 1 raz.

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości