mikroprocki Kolokwium odpowiedzi

background image

Imię i nazwisko .......................................................... nr indeksu .............................................

Strona 1 z 3

1. (2pkt) Omów adresowanie bezpośrednie i pośrednie. Podaj przykłady rozkazów

zapisujących do pamięci SRAM bezpośrednio: ....... LDS ......... i pośrednio: ....... LD ..........

Adresowanie bezpośrednie – adres komórki pamięci, z której będzie odczyt lub do której

będzie zapis, jest zapisany bezpośrednio w rozkazie jako stała liczba. Adres jest więc znany

już na etapie tworzenia kodu.

Adresowanie pośrednie – adres jest odczytywany z zadanej komórki pamięci lub z

określonego rejestru. Faktyczny adres jest więc znany dopiero na etapie wykonywania kodu.

2. (2pkt) Stos w mikrokontrolerze AVR. Organizacja i zastosowanie. Rozkazy, których

efektem jest zapis lub odczyt stosu. Inicjalizacja stosu.

Organizacja:

 w pamięci SRAM

 adres wskaźnika można ustawić dowolnie programowo – przeważnie inicjalizuje się

go na koniec pamięci SRAM

 wskaźnik jest postdekrementowany przy odkładaniu wartości na stos i

preinkrementowany przy jej pobieraniu

 rejestr wskaźnika stosu: SPL

Zastosowanie:

 przechowywanie adresów powrotu z podprogramu (asembler) lub z funkcji (języki

wyższego poziomu – np. język C)

 przechowywanie wartości zmiennych lokalnych (język C)

Rozkazy:

CALL – wywołanie podprogramu – adres powrotu odłożony na stos; wskaźnik stosu -1

RET – powrót z podprogramu – wskaźnik stosu +1; adres powrotu brany se stosu;

POP – wskaźnik stosu +1; pobranie wartości ze stosu do rejestru

PUSH – odłożenie wartości z rejestru na stos; wskaźnik stosu -1

Inicjalizacja stosu:

LDI r16, high(RAMEND) ; RAMEND – ostatni adres SRAM

OUT SPH, r16

LDI r16, low(RAMEND)

OUT SPL, r16

background image

Imię i nazwisko .......................................................... nr indeksu .............................................

Strona 2 z 3

3. (2pkt) Omów system przerwań mikrokontrolera AVR. Wymień rejestry, flagic i rozkazy

związane z przerwaniami.

 Przerwanie jest generowanym sprzętowo sygnałem dla procesora, powodującym (o ile

przerwanie jest aktywne) zawieszenie wykonywania głównego programu, skok do

procedury obsługującej przerwanie i po jej zakończeniu powrót do głównego

programu.

 Peryferia generujące przerwania mają w AVR-ach przydzielone stałe wektory

przerwań, tj. adresy pamięci kodu pod które następuje skok po wygenerowaniu

przerwania.

 Przerwania w AVR nie są domyślnie zagnieżdżane – wywołanie przerwania powoduje

automatyczne wyzerowanie globalnej flagi przerwań – inne przerwania są

zablokowane na czas obsługi przerwania aktywnego (jednak programowo można tę

flagę odblokować w trakcie obsługi przerwania).

 W rejestrze SREG znajduje się bit I – globalna flaga odblokowania przerwań

 GIMSK – rejestr ogólnego maskowania przerwań

 Każdy z peryferiów generujących przerwanie ma swoją własną flagę (lub ich zestaw

jeśli generuje kilka różnych przerwań – np. timery) odblokowującą dane przerwanie

(w rejestrach maskujących – Mask Register) oraz flagi informujące o wystąpieniu

przerwania, które można sprawdzać programowo (w rejestrach z flagami przerwań –

Interrupt Flag Register).

 RETI – rozkaz powrotu z procedury obsługi przerwania – zdjęcie ze stosu adres

powrotu i załadowanie go do licznika programu PC; odblokowanie globalnej flagi

przerwań

4. (2pkt). Zapisz numer indeksu (młodsze 4 cyfry np. 168341) w kodzie

binarnym

heksadecymalnym

BCD

liczbę ujemną w

kodzie U2

Sposób przeliczania jest opisany np. tutaj:

http://blue_rider_hp.republika.pl/articles/tekst/liczby.html

background image

Imię i nazwisko .......................................................... nr indeksu .............................................

Strona 3 z 3

5. (1pkt) Sposób (algorytm) zamiany liczby w kodzie szesnastkowym na kod ASCII

N – liczba wejściowa, X – pierwsza cyfra w ASCII, Y – druga cyfra w ASCII

1. A = N / 16

2. Jeśli A > 10, to X = A – 10 + 'a', w przeciwnym wypadku X = A + '0'

3. A = N & 0x0F

4. Jeśli A > 10, to Y = A – 10 + 'a', w przeciwnym wypadku Y = A + '0'

6. (3pkt) Ustaw rejestry TCCR0 i OCR0 licznika T0 tak aby na wyjściu OC0 generowany był

sygnał o wypełnieniu 1/8 - numery indeksu parzyste , 7/8 - numery indeksu nieparzyste.

FOC0

WGM00

COM01

COM00

WGM01

CS02

CS01

CS00

0

1

1

0 / 1 *

1

0

0

1

OCR0=............ 32 ...................

* COM00 = 0 dla wypełnienia 1/8, = 1 dla wypełnienia 7/8

Jaka jest częstotliwość tego sygnału w przypadku taktowania mikroprocesora rezonatorem
kwarcowym f

clk

=1,024MHz

f

OC0

= ...... f

clk

/ 256 = 4kHz


(Nie jestem pewien tych wartości. Robienie tego na kartce bez możliwości odpalenia,
sprawdzenia i poprawki jest niestety zwyczajnym idiotyzmem.)



7. (2pkt). Multipleksowany wyświetlacz 7 – segmentowy. Schemat, sposób sterowania

Nie umiem tego zrobić, ale tutaj dość dobrze to jest chyba opisane:
http://www.easy-soft.net.pl/artykuly/jezyk-c/jezyk-c-dla-
mikrokontrolerow-8051-multipleksowanie-wyswietlaczy-led


Wyszukiwarka

Podobne podstrony:
kolokwium odpowiedzi górnictwo
KOLOSY, kolokwium 2 -odpowiedzi gr 2, GR 2
KOLOSY, kolokwium 2 -odpowiedzi gr 2, GR 2
BHP kolokwium, odpowiedzi
Geomorfologia - kolokwium 1 - odpowiedzi, studia, Pioter, geomorfologia
PSK, kolokwium odpowiedzi
PRGORAMY KOLOKWIUM ODPOWIEDZI Nieznany
Laborki III KOLOKWIUM Odpowiedzi
kolokwium - odpowiedzi, Ogrodnictwo, II semestr, ekologia i ochrona środowiska
ekologia, pytania z kolokwium i odpowiedzi, Co to ekologia
kolokwium odpowiedzi
Pytania kolokwium odpowiedzi
KolokwiumNr2 Odpowiedzi
zadania do kolokwium2 odpowiedzi, psychologia, statystyka
Kolokwia A D odpowiedzi
KOLOSY, kolokwium 2-odpowiedzi gr 1, GR 1
ZAGADNIENIA NA KOLOKWIUM ODPOWIEDZI WSZYSTKIE
kolokwium odpowiedzi górnictwo

więcej podobnych podstron