1. Najstarszy bit liczby ujemnej w kodzie U2:
a. zawsze wartość 1
b. zawsze wartość 0
c. zależy od wartości modułu liczby
2. Mikroprocesory typu RISC
a. zastały opracowane przed powstaniem mikroprocesorów CISC
b. charakteryzują się zredukowaną listą instrukcji względem CISC
c. charakteryzują się krótkim czasem wykonywania instrukcji
3. Liczby zmiennoprzecinkowe pojedynczej precyzji zapisane zgodnie z IEEE-754 zajmują w pamięci
a. 64 bity b. 32 bity c. 4 bajty
4. Architektura von Neumana charakteryzuje się:
a. wspólną przestrzenią adresową pamięci programu i danych
b. osobnymi zestawami magistral dla pamięci programu i pamięci danych c. oddzielnymi przestrzeniami adresowymi dla pamięci programu i danych
5. Które stwierdzenie jest prawdziwe w przypadku liczb w kodzie NB o wartościach binarnych zapisem szesnastkowym: 0x10000010 i 0x08000008 (???????-b)
a. liczba pierwsza jest dwa razy większa od drugiej
b. liczba pierwsza jest dwa razy mniejsza od drugiej
c. oba powyższe stwierdzenia są fałszywe
6. Plik w formacie INTEL-HEX w porównaniu z plikiem binarnym przedstawiającym ten sam kod maszynkowy ma rozmiar
a. mniejszy b. większy c. taki sam
7. W standardzie kodowania ASCIIZ do zapisania łańcucha znaków „Ala ma psa” potrzeba:
a. 10 bajtów
b. 8 bajtów
c. 11 bajtów
8. Do zaadresowania obszaru SFR mikrokontrolera 8051 można wykorzystać adresowanie a. bezpośrednie
b. pośrednie
c. natychmiastowe
9. Jakiej instrukcji (jednej) należy użyć do przekierowania obsługi przerwania do procedury umieszczonej w innym miejscu pamięci niż predefiniowany adres związany z daną przyczyną przerwania?
a. LCALL adres (wywołanie procedury)
b. LJMP adres (skok)
c. Nie da się tego zrobić jedną instrukcją
10. Magistrala adresowa o szerokości 8 bitów pozwala na zaadresowanie przestrzeni adresowej o rozmiarze: (wszystkie odpowiedzi są niepoprawne)
a. 2^16 - 65536 b. 2^16-1-65535 c. 8*8-64
11. Dla liczb 8 bitowych zapisanych w kodzie NB przestawienie najstarszego bitu z wartości
0 na 1 odpowiada
a. zmianie znaku liczby na przeciwny b. dodaniu do liczby 128
c. podzieleniu liczby przez 2
12. W mikroprocesorze podczas operacji dodawania/odejmowania ustawienie wskaźnika przeniesienia OV sygnalizuje że nastąpiło:
a. przekroczenie zakresu liczb w kodzie NB
b. przekroczenie zakresu w kodzie liczb U2
c. przekroczenie zakresu liczb kodzie BCD
13. Mikroprocesory typu CISC charakteryzuje a. architektura typu Harvard
b. mała liczba krótkich, szybko wykonujących się instrukcji c. stosunkowo duża liczba instrukcji
14. Architekturę typu Havard charakteryzuje a. pojedynczy zestaw magistral A, D i S
b. wspólna przestrzeń adresowa pamięci programu i danych
c. niezależne przestrzenie adresowe dla pamięci programu i danych
15. W trakcie wykonywania cyklu rozkazowego wartość licznika rozkazów (PC) przedstawia:
a. liczbę cykli maszynowych wykonanych do chwili uruchomienia procesora b. adres komórki pamięci następnego rozkazu który będzie wykonany
c. adres komórki pamięci ostatnio wykonanego rozkazu
16. Zakres liczb 8 bitowych w kodzie znak-moduł wynosi:
a. -128 do -127 b. -127 do +127 c. -127 do +128
17. Asembler jest językiem programowania, który charakteryzuje się tym, że:
a. jednej instrukcji maszynowej odpowiada dokładnie jedna instrukcja asemblera
b. jest łatwo przenośny na inne mikroprocesory
c. wymaga znajomości architektury wewnętrznej mikroprocesora
18. W trybie adresowani pośredniego komórek pamięci mikrokontrolera 8051 jako wskaźniki danych mogą służyć rejestry:
a. R0, R1....R7
b. R0 i R1
c. R1 i R2
19. W adresowaniu natychmiastowym a. rozkaz zawiera adres argumentu
b. rozkaz zawiera nazwę rejestru, który zawiera adres argumentu c. wartość argumentu jest częścią rozkazu
20. Aby w programie głównym poprawnie odczytać zmienną 16-to bitową znajdującą się w pamięci RAM mikrokontrolera 8051, która jest okresowo modyfikowana przez procedurę obsługi przerwania:
a. trzeba na czas odczytu wyłączyć mechanizm przerwań
b. trzeba na czas odczytu włączyć mechanizm przerwań
c. swobodny odczyt w dowolnym momencie nie spowoduje przekłamań
21. W rozkazie MOV03, …………..
a. pośrednie i natychmiastowe
b. bezpośrednie i natychmiastowe
c. pośrednie i bezpośrednie
22. Układ scalony zawierający w jednej obudowie jednostkę centralną, układy pamięci i układy wejścia/wyjścia nazywamy
a. procesorem
b. mikroprocesorem
c. mikrokontrolerem
23. Rozkazy operacji logicznych ANL, ORL, XRL mikrokontrolera 8051, których argumenty mają długość słowa większą niż 1
a. są niedopuszczalne dla takich argumentów
b. wykonują operacje na odpowiadających sobie parach bitów
c. traktują słowa niezerowe jako prawdę a zerowe jako fałsz i generują jednobitowy wynik w akumulatorze bitowym C
24. Aby zrealizować w procesorze 8 bitowy algorytm dodawani liczb wielobajtowych w kodzie U2, należy podczas dodawania kolejnych bajtów uwzględnić wartość odpowiedniego wskaźnika z poprzedniego dodawania (???????? - bc)
a. parzystości P
b. przeniesienia CY
c. przepełnienia OV
25. Pamięci kasowane światłem ultrafioletowym (elektrycznie) to pamięci typu
a. FLASH
b. EEPROM
c. EPROM
26. Które z podanych rozkazów zmieniają wartość wskaźnika stosu a. LCALL 1000h (wywołanie procedury)
b. RET (powrót procedury)
c. LJMP 1000h (skok)
27. Wykonanie rozkazu MOV P1,#00h
a. nie wpłynie na wartość danych odczytywanych przez program z linii tego portu
b. spowoduje, że wszystkie odczytywane z linii tego portu dane będą miały wartość 0
c. spowoduje, że wszystkie odczytywane z linii tego portu dane będą miały wartość 1
28. W mikrokontrolerze 8051 dane umieszczane na stosie zapisywane są:
a. w wewnętrznej pamięci RAM
b. w zewnętrznej pamięci RAM
c. w obszarze rejestrów specjalnych SFR
29. W mikrokontrolerze 8051 wartość wskaźnika stosu SP
a. jest liczbą elementów umieszczonych na stosie
b. jest adresem komórki w której jest zapisany ostatni element umieszczany na stosie c. jest wartością ostatniego elementu umieszczonego na stosie
30. Aby zmniejszyć liczbę linii portu potrzebnych do poprawnej obsługi zestawu przycisków można zastosować:
a. sekwencyjne przeglądanie stanu klawiszy za pomocą multipleksera
b. podłączanie klawiszy w strukturę matrycy
c. szeregowe połączenie klawiszy
31. Efekt ciągłego świecenia wskaźników, przy sekwencyjnym sterowaniu wyświetlaczem
LED uzyskamy, gdy okres pełnego cyklu wyświetlania będzie wynosił: (??????-c)
a. 1 ms b. 10 ms
c. 100 ms
32. Ile bitów pamięci zajmuje w języku C zmienna typu unsigned short:
a. 2 b. 8 c. 16
32. Ile bitów pamięci zajmuje w języku C zmienna typu unsigned char:
a. 32 b. 8 c. 16
33. Praca układu czasowo-licznikowego uC 8051 w trybie „timer” (licznik) polega na:
a. zliczaniu impulsów zewnętrznych podawanych na specjalne wejście mikrokontr.
b. zliczaniu impulsów związanych z zegarem mikrokontrolera
c. zliczaniu przerwań mikrokontrolera
34. Ile bajtów pamięci zajmuje w języku C zmienna typu unsigned long:
a. 2
b. 8
c. 16
35. Mechanizm stosu …
a. FIFO (first In, first out)
b. LIFO (last in, first out)
c. kolejka
d. LILO (last In, last out)
36. Mechanizm obsługi przerwań w uC 8051 (????????-c)
a. nie zmienia wskaźnika stosu
b. powoduje automatyczne zapisanie na stosie aktualnej wart. licznika rozkazów PC
c. powoduje automatyczne zapisanie na stosie wartości R0-R7
37. W mikrokontrolerze 8051 podczas przyjęcia przerwania:
a. wskaźnik stosu nie ulega zmianie
b. następuje automatyczne zapisanie na stosie aktualnej wartości licznika rozkazów PC
c. następuje automatyczne zapisanie na stosie wartości rejestrów R0-R7
38. Ile razy wykona się pętla opisana warunkami: for (i=0;i<=8;i++)
a. 7 b. 8 c. 9
39. Ile razy wykona się (po ilu przebiegach się zakończy) pętla opisana: for (i=0;i<=8;i+=2)
a. 2
b. 3
c. 4
39. Ile razy wykona się (po ilu przebiegach się zakończy) pętla opisana: for (i=0;i<4;i=2)
a. 4
b. 5
c. 8
40. Jak jest najmniejsza liczba linii portu mikrokontrolera potrzebna do obsługi klawiatury matrycowej składającej się z 12 klawiszy:
a. 7 b. 8 c. 12
41. Aby odczytać komórkę zewnętrzną pamięci mikrokontrolera 8051, której adres znajduje się w rejestrze można użyć rozkazu asemblera:
a. ADD
b. MOVX
c. MOV
42. Do rozszerzania pamięci operacyjnej mikrokontrolera 8051 należy użyć pamięci typu a. SRAM
b. FLASH
c. EPROM
43. Transmisja szeregowa, w której do synchronizacji zegarów nadajnika i odbiornika wykorzystuje się tzw. bit startu to transmisja:
a. synchroniczna
b. asynchroniczna
c. szerokopasmowa
44. Do adresowania używa się rejestrów: (???????????)
a. R0 do R7
b. R0-R1
c. R1-R2
45. Czy komórkę, która jest modyfikowana podczas przerwania można przeczytać?
a. tak
b. trzeba przerwać przerwanie ()
c. trzeba wrzucić ją na stos
46. Za pomocą jakiej pamięci rozszerza się pamięć mikrokontrolera?
a. zewnętrznej
b. wewnętrznej
c. ROM
47. Która pamięć jest operacyjna?
a. ROM
b. RAM
c. EPROM
48. Zakres liczb w kodzie NB:
a. 0 - 255
b. -127 - 128
c. -128 - 127
49. W kodzie ASCIIZ słowo „PROGRAM” do zapisu wymaga:
a. 8 bajtów
b. 9 bajtów
c. 10 bajtów
INNE PYTANIA:
Czy duplex jest asynchroniczny? TAK
Czy ujemna liczba w U2 ma zawsze 1 na początku? TAK
Czy przerwanie zapisuje na stos wskaźnik rozkazów? Na stos idzie licznik rozkazów
Przedstaw w kodzie binarnym liczbę 7Fh 01111111
Jeśli zmienimy najstarszy bit w U2 z 0 na 1 to czy liczba będzie ujemna? TAK
Sposób adresowania SFR adresy od 00h do 0bh i 80h - 8bh służą do sterowania i
kontrolowania mikroprocesora
Czy w architekturze typu Harvard są wykorzystywane te same magistrale adresowe, danych i sterujące? NIE
OTWARTE PYTANIA:
Ile bajtów w pamięci (1 komórka = 1 bajt) może zaadresować mikroprocesor o 18 bitowej szynie adresowej i 8 bitowej szynie danych?
Liczba komórek, które można zaadresować to 218 = 262144, a że szyna danych jest 8-bitowa = 1 bajt, to jest to 218 bajtów
8051 pracuje z oscylatorem kwarcowym 4MHz. Jaki jest czas trwania cyklu maszynowego?
Czas trwania cyklu maszynowego
8051. W pamięci pod adresem 0739H umieszczono następujący rozkaz MOV 50H,#0FFH
ilu bajtowy to rozkaz
jaka jest zawartość poszczególnych bajtów (wpisz do rysunku)
Jest to 3-bajtowy rozkaz.
8051. W pamięci programu pod adresem 7539H znajduje się rozkaz SJMP skok, jest etykietą związaną z komórką pamięci 7549H, kod rozkazu to 80H:
jaki powinien być następny bajt lub bajty rozkazu (wpisz w odpowiednie miejsce na rysunku)
podaj najmniejszy i największy adres pod jaki można wykonać skok przy pomocy rozkazu SJMP umieszczonego pod adresem 7539H (jak na rysunku)
Najdalej można skoczyć DO GÓRY 753BH + 127D = 75BAH
W DÓŁ 753BH - 128D = 74BBH
8051 współpracuje z zewnętrzną pamięcią danych o pojemności 2kb:
podłącz tę pamięć
napisz program, który przepisze zawartość całej pamięci wewnętrznej RAM podłączonej tak jak wyżej do pamięci zewnętrznej począwszy od adresu 500H, zwróć uwagę, że połowa portu P2 wykorzystywana jest z urządzeniem I/O
Musimy przekopiować 256 bajtów, tzn. 500H do 5FFh
SETB P2.2
CLR P2.1 ustawienie portu P2 na 5
SETB P2.0
MOV R0,#0FFH
PĘTLA:
MOV A,@R0 pobranie zawartości komórki pamięci wew. wskazanej przez R0
MOVX @R0,A wpisane do pamięci zew. o adresie (P2 i R0) liczby z A
DJNZ R0, PĘTLA zmniejszenie R0
MOV A,@R0 przekopiowanie komórki o adresie 0
MOVX @R0,A
8051 w rejestrze PSW wpisany jest bajt C0H natomiast w akumulatorze zapisany jest bajt 50H . Jaka będzie zawartość akumulatora i rejestru PSW po wykonaniu następującego rozkazu RLC A?
PSW =
A =
8051, fosc=12MHz:
co robi program
MOV TMOD,#02H
MOV TH,#156
SETB TR0
PETLA: JNB TF0petla
CLR TF0
CPL P1.3
SJMP PETLA
napisz program realizujący to samo zadanie używając innego znanego ci trybu pracy timera
tak zmodyfikuj program aby realizował to samo zadanie wykorzystując przerwania
Program generuje falę prostokątną na wyjściu P1.3. 256 - 156 = 100
Modyfikacja programu z wykorzystaniem przerwań
ORG 00H
LJMP START
ORG 30H OBSŁUGA PRZERWANIA
START:
MOV TMOD,#02H ORG 0BH
MOV TM0,#156 CPL P1.3
MOV IE,#82H RETI
SETB TR0
SJMP start
Jakie rodzaje przerwań mogą wystąpić w 8051? Jak realizowana jest obsługa tych przerwań?
Mogą to być następujące przerwania:
2 przerwania zewnętrzne (EXTERNAL 0 i 1)
2 przerwania generowane przez TIMERY (TIMER 0 i 1)
1 przerwanie generowane przez układ transmisji szeregowej
W rejestrze IE ustawia się zezwolenie na przerwanie, a w IP określa się priorytet. Każde z 5 przerwań ma zdefiniowany tzw. Wektor przerwań:
EXTERNAL 0 - 03H
EXTERNAL 1 - 13H
TIMER 0 - 0BH
TIMER 1 - 1BH
SERIAL - 23H
Wektory są to adresy, do których skoczy procesor aby określić przerwanie.
ALGORYTM:
Nastąpiło zgłoszenie przerwania
Procesor po zakończeniu aktualnie wyk. rozkazu odkłada PC na stos
Na podstawie wektora przerwań wyk. jest procedura obsługi przerwania
RETI
Zdjęcie PC ze stosu
Powrót do programu
8086. Poniższy program wykonuje dodawanie dwóch liczb (x+y) zapisanych w pamięci. Wynik dodawania (z=x+y) umieszcza w pamięci:
MOV DX,1234H
MOV DS,DX
MOV AL,[1234]
MOV BL,[1234]
ADD AL,BL
MOV [0AABB],AL
zaznacz na rysunku jakie są adresy licz x, y, z
DS = 1234H
Adres x = 12340H+1234H = 13574H
Adres z = 12340H+AABBH = 1CDFBH
czy odczyt obu liczb z pamięci będzie realizowany z taką samą szybkością (uzasadnij)
Tak, bo to są te same komórki pamięci i użyto tego samego sposobu odczytu.
Jakie czynności wykonywane są przez 8086 po wykryciu przerwania? Ile różnych przerwań może wystąpić w 8086?
Liczba przerwań = 256
ALGORYTM:
Zgłoszenie przerwania na INTR
Procesory wysyła sygnał ALE (w trybie maks przez 8288) po zakończeniu aktualnie wykorzystywanego rozkazu.
Urządzenie zewnętrzne przesyła numer przerwania na szynę danych (N)
Procesor odkłada na stos: PSW, CS, IP i zeruje IF
Odczytanie CS i IP z tablicy wektorów przerwań: CS = (4*N)+2; IP = 4*N
Wykonanie procedury obsługi przerwania (CS; IP)
RETI
Zdjęcie ze stosu IP, CS, PSW
Powrót do programu
073CH
073BH
073AH
0739H
0738H
0737H
0736H
7549H 7549H-753BH=0EH
skok
753BH
753AH
80H (kod SJMP)
7539H
7538H
7537H
8051
D7-D0
A0
A....
RD
WR
I/O
P2.7
P2.4
x
y
z
Miejsce skoku
EH
75H (kod rozkazu)
50H
FFH