„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
MINISTERSTWO EDUKACJI
NARODOWEJ
Danuta Pawełczyk
Badanie modułów wewnętrznych mikrokontrolera
311[07].Z4.02
Poradnik dla ucznia
Wydawca
Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy
Radom 2006
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
1
Recenzenci:
mgr inż. Elżbieta Małgorzata Majka
mgr inż. Anna Kembłowska
Opracowanie redakcyjne:
mgr inż.Danuta Pawełczyk
Konsultacja:
mgr inż. Gabriela Poloczek
Korekta:
Poradnik stanowi obudowę dydaktyczną programu jednostki modułowej 311[07].Z4.02
„Badanie modułów wewnętrznych mikrokontrolera” zawartego w modułowym programie
nauczania dla zawodu technik elektronik.
Wydawca
Instytut Technologii Eksploatacji – Państwowy Instytut Badawczy, Radom 2006
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
2
SPIS TREŚCI
1. Wprowadzenie
3
2. Wymagania wstępne
6
3. Cele kształcenia
7
4. Materiał nauczania
8
4.1. Układy czasowe T0, T1 i T2
8
4.1.1. Materiał nauczania
8
4.1.2. Pytania sprawdzające
15
4.1.3. Ćwiczenia
15
4.1.4. Sprawdzian postępów
18
4.2. Port szeregowy
19
4.2.1. Materiał nauczania
19
4.2.2. Pytania sprawdzające
22
4.2.3. Ćwiczenia
22
4.2.4. Sprawdzian postępów
24
4.3. Przetwornik analogowo–cyfrowy
25
4.3.1. Materiał nauczania
25
4.3.2. Pytania sprawdzające
28
4.3.3. Ćwiczenia
28
4.3.4. Sprawdzian postępów
30
4.4. Układ przerwań
31
4.4.1. Materiał nauczania
31
4.4.2. Pytania sprawdzające
35
4.4.3. Ćwiczenia
36
4.4.4. Sprawdzian postępów
37
5. Sprawdzian osiągnięć
38
6. Literatura
44
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
3
1. WPROWADZENIE
Poradnik będzie Ci pomocny w przyswajaniu wiedzy z zakresu badania modułów
wewnętrznych mikrokontrolera.
W poradniku zamieszczono:
−
wymagania wstępne – wykaz umiejętności, jakie powinieneś mieć już ukształtowane,
abyś bez problemów mógł korzystać z poradnika,
−
cele kształcenia – wykaz umiejętności, jakie opanujesz podczas pracy z poradnikiem,
−
materiał nauczania – podstawowe wiadomości teoretyczne niezbędne do opanowania
treści jednostki modułowej,
−
zestaw pytań przydatny do sprawdzenia, czy już opanowałeś podane treści,
−
ćwiczenia, które pomogą Ci zweryfikować wiadomości teoretyczne oraz ukształtować
umiejętności praktyczne,
−
sprawdzian postępów,
−
literaturę uzupełniającą,
−
sprawdzian osiągnięć – przykładowy zestaw zadań i pytań. Pozytywny wynik
sprawdzianu potwierdzi, że dobrze pracowałeś podczas zajęć i że nabyłeś wiedzę
i umiejętności z zakresu tej jednostki modułowej,
W materiale nauczania zostały omówione zagadnienia zakresu badania modułów
wewnętrznych mikrokontrolera, ich budowy oraz sposobu programowania. Podczas
poznawania modułów mikrokontrolera niewątpliwie pomocny będzie nauczyciel, który
pomoże Ci w przypadku pojawienia się problemów.
Z rozdziałem Pytania sprawdzające możesz zapoznać się:
−
przed przystąpieniem do rozdziału Materiał nauczania – poznając wymagania wynikające
z zawodu, a po przyswojeniu wskazanych treści, odpowiadając na te pytania sprawdzisz
stan swojej gotowości do wykonywania ćwiczeń,
−
po opanowaniu rozdziału Materiał nauczania, by sprawdzić stan swojej wiedzy, która
będzie Ci potrzebna do wykonywania ćwiczeń.
Kolejny etap to wykonywanie ćwiczeń, których celem jest uzupełnienie i utrwalenie
wiadomości z zakresu badania modułów mikrokontrolera.
Wykonując ćwiczenia przedstawione w poradniku lub zaproponowane przez nauczyciela,
będziesz poznawał budowę, sposób programowania i użytkowania modułów mikrokontrolera,
takich jak układy czasowe, port szeregowy, przetwornik A/C i układ przerwań.
Po wykonaniu zaplanowanych ćwiczeń, sprawdź poziom swoich postępów wykonując
„Sprawdzian postępów”.
W tym celu:
−
przeczytaj pytania i odpowiedz na nie,
−
podaj odpowiedź wstawiając X w podane miejsce,
−
wpisz Tak, jeśli Twoja odpowiedź na pytanie jest prawidłowa,
−
wpisz Nie, jeśli Twoja odpowiedź na pytanie jest niepoprawna.
Odpowiedzi Nie wskazują luki w Twojej wiedzy, informują Cię również, jakich
zagadnień jeszcze dobrze nie poznałeś. Oznacza to także powrót do treści, które nie są
dostatecznie opanowane.
Poznanie przez Ciebie wszystkich lub określonej części wiadomości będzie stanowiło
dla nauczyciela podstawę przeprowadzenia sprawdzianu poziomu przyswojonych wiadomości
i ukształtowanych umiejętności. W tym celu nauczyciel może posłużyć się zadaniami
testowych.
W poradniku jest zamieszczony sprawdzian osiągnięć, który zawiera przykład takiego
testu oraz instrukcję, w której omówiono tok postępowania podczas przeprowadzania
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
4
sprawdzianu i przykładową kartę odpowiedzi, w której, w przeznaczonych miejscach wpisz
odpowiedzi na zadania lub zakreśl właściwe odpowiedzi spośród zaproponowanych.
Bezpieczeństwo i higiena pracy
W czasie pobytu w pracowni musisz przestrzegać regulaminów, przepisów
bezpieczeństwa i higieny pracy oraz instrukcji przeciwpożarowych, wynikających z rodzaju
wykonywanych prac. Przepisy te poznasz podczas trwania nauki.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
5
Schemat układu jednostek modułowych
311[07].Z4
Badanie układów
mikroprocesorowych
311[07].Z4.01
Pisanie i uruchamianie programów
w asemblerze
311[07].Z4.02
Badanie modułów wewnętrznych
mikrokontrolera
311[07].Z4.03
Badanie układów zewnętrznych
mikrokontrolera
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
6
2. WYMAGANIA WSTĘPNE
Przystępując do realizacji programu jednostki modułowej, powinieneś umieć:
−
omawiać architekturę systemu mikroprocesorowego,
−
stosować rozkazy mikrokontrolera,
−
pisać, kompilować i poprawiać programy w języku asemblera,
−
używać zestawu uruchomieniowego do uruchamiania programu,
−
korzystać z różnych źródeł informacji.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
7
3. CELE KSZTAŁCENIA
Po zrealizowaniu programu jednostki modułowej powinieneś umieć:
−
scharakteryzować
wewnętrzne
układy
funkcjonalne
mikrokontrolera,
takie jak: liczniki, UART, system przerwań, przetwornik analogowo– cyfrowy,
−
zaprogramować licznik w poszczególnych trybach pracy,
−
zmierzyć czas i częstotliwość z wykorzystaniem liczników,
−
wykorzystać licznik do generowania wielofazowych periodycznych sygnałów
prostokątnych o zadanych współczynnikach wypełnienia,
−
napisać program z wykorzystaniem przerwań od wybranych źródeł z wykorzystaniem
poziomów, priorytetów, możliwości blokowania,
−
napisać program pozwalający na pracę portu szeregowego w określonym trybie
z określoną szybkością,
−
zaprogramować przetworniki A/C,
−
zaprogramować inne elementy wewnętrzne wybranego mikrokontrolera.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
8
4. MATERIAŁ NAUCZANIA
4.1. Układy czasowe T0, T1 i T2
4.1.1. Materiał nauczania
Jednym z podstawowych rodzajów układów peryferyjnych umieszczanych wewnątrz
mikrokontrolera są układy czasowo licznikowe. Układy takie zliczają impulsy zewnętrzne,
spełniając funkcję licznika (counter) lub impulsy wewnętrzne w celu odmierzania opóźnień
lub generowania przebiegów o zadanej częstotliwości i wypełnieniu, spełniają wówczas role
czasomierza (timer).
Mikrokontrolery rodziny ’51 są wyposażone w dwa 16– bitowe układy czasowe. Mogą
one zliczać impulsy zegarowe lub zewnętrzne doprowadzane do wejść T0–P3.4 lub T1–
P3.5. Liczniki mogą pracować w jednym z czterech trybów.
W celu programowego sterowania układów czasowych stosowane są rejestry TMOD (adres
89H) i TCON (adres 88H– dostępny bitowo).
TMOD:
GATE
T
C/
M1
M0
GATE
T
C/
M1
M0
T1
T0
znaczenie bitów:
M1,M0– ustawienie trybu pracy:
00- tryb 0,
01- tryb 1,
10– tryb 2,
11– tryb 3.
T
C/ – realizowana funkcja:
T
C/ =1– funkcja licznika impulsów zewnętrznych,
T
C/ =0– funkcja czasomierza.
GATE– uaktywnienie bramkowania zliczania zewnętrznym sygnałem INT0 lub INT1
np. zaprogramowanie T0 zliczającego impulsy wewnętrzne w trybie pracy 2, a licznika T1
zliczającego impulsy zewnętrzne w trybie 1, wymaga wpisania do rejestru TMOD
następującego słowa:
0
0
1
0
0
1
0
1
TCON:
TF1
TR1
TF0
TR0
bity związane z przerwaniami
zewnętrznymi
znaczenie bitów:
TF1– bit przepełnienia od licznika T1, wywołuje przerwanie,
TR1– bit włączający (1) lub wyłączający (0) licznik T1,
TF0– bit przepełnienia od licznika T0, wywołuje przerwanie,
TR0– bit włączający (1) lub wyłączający (0) licznik T0.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
9
Tryby pracy układów czasowo– licznikowych:
Tryb 0– układ czasowy pracuje jako 13–bitowy licznik/ czasomierz liczący w przód,
po przepełnieniu (same jedynki) ustawia znacznik TFi i liczy dalej od 0, pojemność licznika
2
13
=8192.
Rys. 1 Układ czasowy T0 w trybie 0: [5,s.37]
Tryb 1– układ czasowy pracuje tak jak w trybie 0, ale jako licznik/ czasomierz 16– bitowy,
pojemność licznika 2
16
=65536.
Rys. 2 Układ czasowy T0 w trybie 1: [5,s.37]
Tryb 2– praca z autodoładowaniem – liczy tylko część TLi (8– bitowy), część THi
przechowuje wartość początkową, która jest przepisywana do części TLi po każdorazowym
przepełnieniu licznika, jednocześnie ustawiany jest znacznik TFi, pojemność licznika 2
8
=256.
R
ys. 3 Układ czasowy T0 w trybie 2: [5,s.38]
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
10
Tryb 3– jest różny dla liczników T0 i T1. Licznik T0 pracuje jako dwa niezależne liczniki
8– bitowe TH0 i TL0 (tak jak w trybie 0 i 1), Część TL0 jest sterowana bitami sterującymi
związanymi z licznikiem T1, a część TH0– z licznikiem T0; tryb ten jest używany wówczas,
gdy licznik T1 jest wykorzystany do taktowania transmisji szeregowej, a potrzebne są dwa
niezależne liczniki.
Rys. 4 Układ czasowy T0 w trybie 3 [5,s.38]
Jeżeli realizowana jest funkcja czasomierza (
T
C/ =0), to zawartość licznika jest
zwiększana w każdym cyklu maszynowym. Cykl maszynowy jest wykonywany w ciągu 12
taktów zegarowych.
Jeżeli realizowana jest funkcja licznika (
T
C/ =1) odpowiednie wejście T0 lub T1 jest
próbkowane w każdym cyklu maszynowym. Jeżeli w dwóch kolejnych próbkach zostanie
wykryta zmiana 1 na 0 na wejściu (opadające zbocze impulsu) to w następnym cyklu
maszynowym nastąpi zwiększenie zawartości licznika o 1. Do wykrycia zmiany na wejściu
potrzeba 2 cykli maszynowych, czyli maksymalna częstotliwość zliczanych impulsów wynosi
f
XTAL
/24.
W niektórych sytuacjach przydatne jest zastosowanie mikrokontrolera wyposażonego
w dodatkowy układ czasowy T2. Taka konieczność pojawia się na przykład wtedy, kiedy
licznik T1 taktuje transmisję szeregową, a potrzebne są 2 dodatkowe liczniki. Zamiast
korzystać z trybu 3 pracy licznika T0 można wykorzystać dodatkowy licznik T2. Licznik T2
posiada dodatkowo kilka bardzo użytecznych funkcji, które zostaną opisane poniżej.
Układ czasowo– licznikowy T2 jest dodatkowym zasobem wielu mikrokontrolerów
rodziny ’51, na przykład mikrokontrolera SAB 80C535. Oprócz układu czasowego T2
mikrokontroler ten, w stosunku do podstawowej rodziny ’51, posiada dodatkowe porty
równoległe oraz wbudowany przetwornik A/C. W związku z dodatkowymi zasobami
rozbudowany został również układ przerwań. Będzie o tym mowa w dalszej części poradnika.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
11
Mikrokontroler SAB 80C535 jest rozbudowaną wersją mikrokontrolera 80C51:
Rys.5. Dodatkowe zasoby mikrokontrolera SAB 80C535
Rys. 6. Układ czasowy T2 [1, s.108]
Licznik może pracować w trzech trybach, określanych skrótem CCR:
C– Compare (porównanie),
C– Capture (zapamiętanie wartości chwilowej),
R– Reload (autodoładowanie wartości początkowej).
watchdog
8-bitowy
przetwor
nik A/C
T2
P6
P5
P4
we
ac
we/
wy
we/
wy
T0
T1
RAM 256x8
CPU
8051
U
A
R
T
ROM 8kx8
P0
P1
P2
P3
we/wy
we/wy
we/wy
we/wy
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
12
Z obsługą licznika T2 są związane linie portu P1:
P1.0…P1.3
wyjścia impulsów o modulowanej szerokości impulsu (MSI)/ wejścia
przerwań INT3#...INT6,
P1.5/T2EX
sprzętowe ustalenie momentu wpisania wartości początkowej do licznika T2,
P1.7/T2
wejście impulsów zewnętrznych/ wejście bramkujące zliczanie impulsów
wewnętrznych.
Z licznikiem T2 związane są rejestry komparatorów CRC, CC1, CC2, CC3, w których
przechowywane są wartości chwilowe. W trybie autodoładowania rejestr CRC przechowuje
wartość początkową.
Przerwania od licznika T2 są generowane w momencie:
−
przepełnienia licznika,
−
zrównania wartości chwilowej licznika z wartością wpisaną do rejestru komparatora.
Tryby pracy licznika:
Tryb porównania (compare)
W czterech niezależnych komparatorach porównywana jest wartość licznika T2 z wartościami
rejestrów CRC, CC1, CC2, CC3. Wynik porównania przedstawiony jest w postaci stanów
linii portu P1 oraz ustawienia znaczników przerwań IEX3…IEX6. Linie portu P1 przyjmują
wartość logiczną 1 w momencie wystąpienia równości zawartości licznika T2 z rejestrami
komparatora.
Tabela 1 Związek linii portu P1 z rejestrami komparatora i przerwaniami
linia portu
rejestr komparatora
przerwanie
P1.0
CRC
IEX3
P1.1
CC1
IEX4
P1.2
CC2
IEX5
P1.3
CC3
IEX6
Zerowanie bitu portu P1.x następuje po przepełnieniu licznika T2.
Jeżeli równocześnie licznik T2 pracuje w trybie autodoładowania rejestr CRC przechowuje
wartość początkową, jako rejestry komparatora mogą być wykorzystywane rejestry CC1,
CC2, CC3.
Rys. 7 Zależności czasowe na wyjściach portu P1: [1, s.109]
przerwanie od
komparatora
przerwanie od
przepełnienia
stan licznika
wart. rej. CRC,
CCx
stan P1.x
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
13
Ze względu na sposób sterowania liniami portu P1 wyróżnia się następujące tryby
porównania:
Tryb 0 porównania
Tryb sprzętowy – wartość wpisana do rejestru CRC w trybie autodoładowania decyduje
o częstotliwości generowanych impulsów, a wpisana do rejestrów CC1, CC2, CC3
o wypełnieniu. Zaprogramowany i uruchomiony licznik T2 pracuje autonomicznie,
tzn. generuje impulsy na wyjściach portu P1 niezależnie od jednostki arytmetyczno–
logicznej. Zatrzymanie licznika jest możliwe tylko sprzętowo poprzez reset mikrokontrolera
lub odłączenie zasilania.
Tryb 1 porównania
Tryb programowy – zmiana linii P1.0…P1.3 jest dokonywana programowo przez wpis danej
do bufora portu.
Tryb zapamiętywania wartości chwilowej (capture)
Do zapamiętania wartości chwilowej licznika T2 może być użyty każdy z rejestrów CRC,
CC1, CC2, CC3. Operacja ta jest realizowana sprzętowo, dzięki czemu w trakcie jej
wykonywania nie następuje zatrzymanie licznika.
Licznik T2 może pracować w 2 trybach zapamiętywania:
Tryb 0 zapamiętywania:
Moment zapamiętania wartości chwilowej jest wyznaczany sygnałem zewnętrznym. Wpisanie
wartości chwilowej licznika T2 do odpowiedniego rejestru CRC, CC1, CC2, CC3
oraz wpisanie jedynki na pozycję odpowiedniego znacznika przerwania IEX3…IEX6
spowodowane jest aktywnym zboczem sygnałów INT3#...INT6.
Tryb 1 zapamiętywania:
Zapamiętanie wartości chwilowej w rejestrach CRC, CC1, CC2, CC3 spowodowane jest
wpisaniem dowolnej wartości do mniej znaczących rejestrów CRCL, CCL1, CCL2, CCL3.
W tym trybie zapamiętywania przerwania nie są wykorzystywane.
Tryb autodoładowania (reload)
Autodoładowanie licznika T2 oznacza przepisanie wartości początkowej, zawartej
w 16–bitowym rejestrze CRC do rejestru licznika T2.
Tryb 0 autodoładowania:
W trybie 0 przepisanie wartości z rejestru CRC do licznika T2 odbywa się wskutek
przepełnienia licznika T2. Przepełnienie licznika powoduje ustawienie flagi przerwania TF2.
Tryb 1 autodoładowania:
W trybie 0 przepisanie wartości z rejestru CRC do licznika T2 odbywa się wskutek
wystąpienia opadającego zbocza sygnału T2EX na wejściu P1.5. Jeśli znacznik EXEN2
w rejestrze IEN1 ma wartość 1 to jednocześnie zostanie wygenerowane przerwanie.
Sterowanie pracą licznika T2
Sygnał taktujący licznik może pochodzić ze źródła wewnętrznego lub zewnętrznego.
Niezależnie od wybranego trybu pracy i źródła taktowania po każdym przepełnieniu licznika
generowane jest przerwanie wewnętrzne. Jest to sygnalizowane wpisem jedynki logicznej
na pozycji znacznika przerwania TF2 (wektor przerwania 02Bh) w rejestrze IRCON.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
14
Znacznik ten musi być kasowany programowo ponieważ to samo przerwanie może być
również wywołane zewnętrznym sygnałem doprowadzonym do wejścia P1.5/T2EX
– ustawiany jest wówczas znacznik EXF2.
Programowanie pracy licznika T2 dokonywane jest przez wpis odpowiedniej wartości
do rejestru T2CON:
T2PS
I3FR
I2FR
T2R1
T2R0
T2CM
T2I1
T2I0
– włączenie dodatkowego dzielnika wstępnego dla wewnętrznego źródła
taktowania,
T2PS=0
– taktowanie licznika sygnałem f
XTAL
/12,
T2PS
T2PS=1
– taktowanie licznika sygnałem f
XTAL
/24,
– wybór aktywnego zbocza sygnału przerwania zewnętrznego INT3#, wyjścia
komparatora CRC, wpisu wartości początkowej,
I3FR=0
– zbocze opadające,
I3FR
I3FR=1
– zbocze narastające,
I2FR
– w T2 nie używany,
– wybór trybu autodoładowania licznika,
0x
– zablokowane funkcje autodoładowania,
10
– tryb 0 autodoładowania,
T2R1, T2R0
11
– tryb 1 autodoładowania,
– wybór trybu porównywania,
T2CM=0 – tryb 0,
T2CM
T2CM=1 – tryb 1,
wybór źródła sygnału taktującego,
00
– zatrzymanie zliczania,
01
– taktowanie sygnałem wewnętrznym,
10
– taktowanie sygnałem zewnętrznym,
T2I1, T2I0
11
– bramkowanie wewnętrznego sygnału taktującego (blokowanie
licznika niskim poziomem sygnału doprowadzonego do P1.7).
Programowanie trybów pracy rejestrów CRC, CC1, CC2, CC3 jest dokonywane w rejestrze
CCEN:
COCAH3 COCAL3 COCAH2 COCAL2 COCAH1 COCAL1 COCAH0 COCAL0
Tabela 2 Sterowanie komparatorami
Rejestr
Znacznik
Przeznaczenie
COCAH0 COCAL0
0
0
zablokowany tryb porównywania/ wpisu wartości
początkowej
CRC
0
1
tryb 0 zapamiętywania
1
0
odblokowany tryb porównywania/ wpisu wartości
początkowej
1
1
tryb 1 zapamiętywania
COCAH1 COCAL1
0
0
zablokowany tryb porównywania/ wpisu wartości
początkowej
CC1
0
1
tryb 0 zapamiętywania
1
0
odblokowany tryb porównywania/ wpisu wartości
początkowej
1
1
tryb 1 zapamiętywania
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
15
COCAH2 COCAL2
0
0
zablokowany tryb porównywania/ wpisu wartości
początkowej
CC2
0
1
tryb 0 zapamiętywania
1
0
odblokowany tryb porównywania/ wpisu wartości
początkowej
1
1
tryb 1 zapamiętywania
COCAH3 COCAL3
0
0
zablokowany tryb porównywania/ wpisu wartości
początkowej
CC3
0
1
tryb 0 zapamiętywania
1
0
odblokowany tryb porównywania/ wpisu wartości
początkowej
1
1
tryb 1 zapamiętywania
4.1.2. Pytania sprawdzające
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
1. Jakie może być źródło impulsów zliczanych przez układy czasowe T0 i T1?
2. Jakie rejestry są związane z licznikami T0 i T1?
3. W jakich trybach mogą pracować układy czasowe T0 i T1?
4. Jak uruchomić i jak zatrzymać liczniki T0 i T1?
5. W jaki sposób zaprogramować układy czasowe T0 i T1 na pracę w wybranym trybie
i wybrane źródło impulsów zliczanych?
6. Jak obliczyć wartość początkową wpisywaną do układu czasowego w celu odmierzenia
określonych odcinków czasu?
7. Jaka jest największa częstotliwość zewnętrznego sygnału zliczanego w układzie
czasowym i od czego zależy?
8. Jakie rejestry są związane z licznikiem T2?
9. Jakie może być źródło impulsów zliczanych przez układ czasowy T2?
10. W jakich trybach może pracować układ czasowy T2?
11. W jaki sposób można wygenerować przebieg o zadanym czasie trwania i wypełnieniu
używając licznika T2?
4.1.3. Ćwiczenia
Ćwiczenie 1
Napisz i uruchom program zapalenia diody dołączonej do P1.0 na czas 3 sekund.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryb pracy i źródło zliczanych impulsów,
2) zestawić słowo sterujące,
3) dokonać obliczeń ilości zliczanych cykli i na tej podstawie obliczyć liczbę przepełnień
licznika i wartość początkową wpisywaną do licznika,
4) przygotować algorytm programu w postaci schematu blokowego,
5) napisać program w języku asemblera,
6) skompilować program, poprawić ewentualne błędy,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
16
7) uruchomić program używając zestawu uruchomieniowego,
8) sprawdzić poprawność działania programu,
9) zaprezentować wykonane ćwiczenie,
10) dokonać oceny poprawności wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– literatura z rozdziału 6.
Ćwiczenie 2
Napisz i uruchom program pomiaru czasu trwania podprogramu. Wynik pomiaru zapisz
do pamięci IRAM do komórek 30H i 31H.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryb pracy i źródło zliczanych impulsów,
2) zestawić słowo sterujące,
3) przygotować algorytm programu głównego w postaci schematu blokowego,
4) przygotować algorytm podprogramu, którego czas trwania ma być mierzony np.
podprogram mnożenia liczb znajdujących się w rejestrach,
5) napisać program w języku asemblera,
6) skompilować program, poprawić ewentualne błędy,
7) uruchomić program używając zestawu uruchomieniowego,
8) sprawdzić poprawność działania programu,
9) zaprezentować wykonane ćwiczenie,
10) dokonać oceny poprawności wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– literatura z rozdziału 6.
Ćwiczenie 3
Napisz i uruchom program pomiaru częstotliwości generatora dołączonego do wejścia
T1(P3.5). Wynik pomiaru wyślij na diody dołączone do portu równoległego (tylko starszy
bajt wyniku). Licznik T1– zlicza impulsy doprowadzone z generatora, licznik T0 – odmierza
czas 1 sekundy. Po upływie 1 sekundy zatrzymaj licznik T1 – stan licznika będzie równy
częstotliwości sygnału z generatora (w Hz).
Sposób wykonania ćwiczenia:
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryby pracy i źródła zliczanych impulsów dla obu liczników,
2) zestawić słowo sterujące,
3) przygotować algorytm programu w postaci schematu blokowego,
4) napisać program w języku asemblera,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
17
5) skompilować program, poprawić ewentualne błędy,
6) uruchomić program używając zestawu uruchomieniowego,
7) sprawdzić poprawność działania programu,
8) zaprezentować wykonane ćwiczenie,
9) dokonać oceny poprawności wykonanego ćwiczenia,
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– generator sygnału prostokątnego,
– literatura z rozdziału 6.
Ćwiczenie 4
Na wyjściu P1.1 wygeneruj przebieg prostokątny o częstotliwości 2 kHz i wypełnieniu
60%. Do wygenerowania przebiegu użyj licznika T2 pracującego w trybie autodoładowania
i porównywania wartości chwilowej. Wygenerowany przebieg zaobserwuj używając
oscyloskopu.
Sposób wykonania ćwiczenia:
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryby pracy i źródło zliczanych impulsów,
2) zestawić słowa sterujące,
3) dokonać
obliczeń
dotyczących
wartości
początkowej
autodoładowywanej
po przepełnieniu licznika i wartości porównywanej w komparatorze,
4) napisać program w języku asemblera,
5) skompilować program, poprawić ewentualne błędy,
6) uruchomić program używając zestawu uruchomieniowego,
7) sprawdzić poprawność działania programu,
8) zaprezentować wykonane ćwiczenie,
9) dokonać oceny poprawności wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– oscyloskop,
– literatura z rozdziału 6.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
18
4.1.4. Sprawdzian postępów
Czy potrafisz:
Tak Nie
1) omówić tryby pracy układów czasowo– licznikowych T0 i T1?
¨
¨
2) zaprogramować licznik na różne tryby pracy i źródła zliczanych
impulsów?
¨
¨
3) odmierzyć zadane odcinki czasu używając liczników?
¨
¨
4) wygenerować przebiegi o zadanym czasie trwania i wypełnieniu?
¨
¨
5) zmierzyć częstotliwość zewnętrznego sygnału doprowadzonego
do licznika?
¨
¨
6) omówić pracę licznika T2 w różnych trybach pracy?
¨
¨
7) wygenerować przebieg o zadanej częstotliwości i wypełnieniu
używając T2?
¨
¨
8) uruchomić napisane programy używając zestawu uruchomieniowego?
¨
¨
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
19
4.2. Port szeregowy
4.2.1. Materiał nauczania
Wbudowany port szeregowy pozwala na wczytywanie danych szeregowych przez
wejście RxD (P3.0) i wysyłanie danych szeregowych przez wyjście TxD (P3.1). Port może
pracować w jednym z czterech trybów:
Tabela 3 Tryby pracy portu szeregowego
Tryb SM0 SM1 Opis
0
0
0
Transmisja synchroniczna, znaki 8–bitowe, taktowane sygnałem
zegarowym
1
0
1
Transmisja asynchroniczna, znaki 8–bitowe, szybkość określona
programowo
2
1
0
Transmisja asynchroniczna, znaki 9–bitowe, szybkość 1/32 lub 1/64
częstotliwości zegara
3
1
1
Transmisja asynchroniczna, znaki 9–bitowe, szybkość określona
programowo
Zamiana postaci danej z szeregowej na równoległą (odbiór danej) lub równoległej
na szeregową (nadawanie danej) oraz sterowanie transmisji odbywa się automatycznie. Dane
odebrane przez port szeregowy są wpisywane do rejestru SBUF, dane wysyłane są pobierane
z rejestru SBUF. Oba rejestry mają tę samą nazwę i są umieszczone w przestrzeni adresowej
pamięci pod tym samym adresem 99H.
SCON– słowo sterujące układu transmisji szeregowej:
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0 SM1
−
tryb pracy,
SM2
−
bit sterujący przejściem do komunikacji wieloprocesorowej,
REN
−
bit zezwolenia na odbiór danych przez port szeregowy, bit ustawiany
i zerowany programowo ,
TB8
−
dziewiąty bit nadawanego słowa,
RB8
−
dziewiąty bit odbieranego słowa,
TI
−
znacznik zakończenia nadawania danych, może wywołać przerwanie,
kasowany programowo,
RI
−
znacznik zakończenia odbierania danych, może wywołać przerwanie,
kasowany programowo.
Tryby pracy:
Tryb 0
Transmisja synchroniczna, przesyłane są słowa 8–bitowe ze stałą szybkością f
XTAL
/12.
Nadanie danej: wpis danej do rejestru SBUF inicjuje nadawanie danej szeregowo przez linię
P3.1 (RxD) oraz taktu przez P3.0 (TxD), po wysłaniu 8 bitów ustawiany jest bit TI – sygnał
dla procesora, że słowo zostało wysłane. Bit TI może generować przerwanie.
Odbiór danej: odczyt danej przez linię P3.1 (RxD) odbywa się, gdy REN=1 i RI=0
(poprzednio odebrana dana została odczytana przez procesor), bity danej są wpisywane
do rejestru przesuwnego, a po zgromadzeniu całego słowa jest ono przepisywane do rejestru
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
20
SBUF, jednocześnie ustawiany jest znacznik RI, który może generować przerwanie. Podczas
odbioru na linię P3.0 (TxD) wysyłany jest sygnał taktujący.
Rys. 8 Zależności czasowe operacji nadawania i odbioru dla łącza szeregowego pracującego w trybie 0 [2, s.68]
Tryb 1
Transmisja asynchroniczna, znaki 8–bitowe, szybkość określona programowo.
W trybie asynchronicznym port szeregowy pełni rolę niezależnego nadajnika (P3.1– TxD)
i odbiornika (P3.0–RxD). Dane są przesyłane w następującym formacie:
bit
startu
bity danych
bit
stopu
D0
D1
D2
D3
D4
D5
D6
D7
Rys 9– Format znaku w trybie 1
Nadanie danej: wpis danej do rejestru SBUF inicjuje nadawanie danej szeregowo przez linię
P3.1 (TxD), powoduje to równocześnie wpis jedynki logicznej (bit stopu) do przerzutnika D.
Powoduje to uaktywnienie bloku sterowania nadajnika, który w następnym takcie zegarowym
wymusza zero logiczne na wyjściu TxD – bit startu, następnie wystawia kolejne bity danych
z rejestru przesuwnego SBUF (począwszy od najmłodszego bitu). Równocześnie z bitami
danych przesuwany jest bit stopu (z przerzutnika D). Po wystawieniu bitu stopu ustawiany
jest bit TI oznaczający zakończenie wysyłania słowa, jest to informacja dla procesora,
że do rejestru SBUF może wpisać następne słowo. Bit ten może być odpytany programowo
lub może być źródłem przerwania od portu szeregowego.
Odbiór danej: inicjowany jest sprzętowo, po wykryciu zmiany z 1 na 0 sygnału na linii P3.0
(RxD), pod warunkiem, że w rejestrze SCON jest ustawiony bit REN zezwolenia na odbiór.
Stan linii jest próbkowany z częstotliwością sygnału taktującego odbiornik. Wykrycie bitu
startu powoduje uaktywnienie bloku sterowania odbiornika oraz wyzerowanie dzielnika
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
21
częstotliwości przez 16 (podzielnika częstotliwości). Stan linii RxD jest próbkowany
trzykrotnie w każdym cyklu (podczas odbioru pojedynczego bitu), podczas gdy zawartość
licznika wynosi 7, 8 i 9. Wartość logiczna na wejściu RxD, która wystąpiła przynajmniej
w dwóch próbkach jest wpisywana jako wartość odebranego bitu do rejestru przesuwnego.
Po odebraniu całego słowa może ono zostać przepisane do rejestru SBUF. Warunkiem
przepisania słowa jest wystąpienie prawidłowego bitu stopu oraz RI=0, które oznacza,
że procesor odebrał poprzednie słowo. Po przepisaniu słowa do SBUF ustawiany jest bit RI,
który jest informacją dla procesora, że może odebrać słowo z SBUF. Bit ten może być
odpytany programowo lub może być źródłem przerwania od portu szeregowego.
Rys 10– Zależności czasowe operacji nadawania i odbioru dla łącza szeregowego pracującego w trybie 1
[2,s.71]
W trybie 1 szybkość transmisji jest ustalana programowo przez wpis wartości do licznika T1
(w niektórych procesorach może to również być licznik T2) pracującego jako czasomierz
(C/ T =0) w trybie 2 (z autodoładowaniem).
Szybkość transmisji jest równa:
f
OT1
/32 gdy SMOD=0 lub f
OT1
/64 gdy SMOD=1,
gdzie f
OT1
– częstotliwość przepełnienia licznika T1, SMOD– siódmy bit w rejestrze PCON.
f
OT1=
TH1
-
256
f
T1
gdzie f
T1
oznacza częstotliwość impulsów zliczanych przez licznik T1, czyli f
T1
= f
XTAL
/12.
Przykładowe wartości, jakie należy wpisać do TH1, gdy licznik T1 pracuje jako czasomierz
w trybie 2, a f
XTAL=
12 MHz, SMOD=0 zostały przedstawione w tabeli 4:
Tabela 4 Ustalanie szybkości transmisji
Szybkość transmisji
w bodach
Wartość początkowa
(hex)
9600
FD
4800
FA
2400
F4
1200
E8
600
D0
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
22
Tryb 2
Transmisja asynchroniczna, znaki 9–bitowe, szybkość 1/32 (SMOD=0) lub 1/64
(SMOD=1) częstotliwości zegara.
Format danych:
bit
startu
bity danych
bit
kontr.
bit
stopu
D0
D1
D2
D3
D4
D5
D6
D7
Rys 11– Format znaku w trybie 2
Dziewiąty bit nadawanego słowa jest wpisywany jako bit TB8, a odbieranego słowa jako RB8
w rejestrze SCON. Bit TB8 i RB8 są zmieniane programowo. Mogą pełnić role bitu kontroli
parzystości, dodatkowego bitu stopu oraz mogą być wykorzystane w komunikacji
wieloprocesorowej. Działanie portu podobne jak w trybie 1.
Tryb 3
Transmisja asynchroniczna, znaki 9–bitowe, szybkość określona programowo.
Format danych jak w trybie 2, a taktowanie transmisji jak w trybie 1.
4.2.2. Pytania sprawdzające
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania.
1. Jakie jest zadanie portu szeregowego?
2. W jakich trybach może pracować port szeregowy?
3. Jakie rejestry są związane z pracą portu szeregowego?
4. Na czym polega transmisja synchroniczna, a na czym asynchroniczna?
5. Z jakich bitów składa się ramka w transmisji asynchronicznej?
6. W jaki sposób zaprogramować port szeregowy na określony tryb pracy i zadaną szybkość
transmisji?
7. Jak rozpocząć nadawanie danej?
8. Jak można ustalić prędkość transmisji?
9. Jakie warunki muszą być spełnione, aby dana mogła być odebrana przez łącze
szeregowe?
10. Jak oblicza się bit kontroli parzystości?
11. Jak programowo sprawdzić, czy dana została odebrana poprawnie?
4.2.3. Ćwiczenia
Ćwiczenie 1
Napisz i uruchom program ciągłego wysyłania pojedynczej danej z akumulatora przez
port szeregowy. Wysyłana ma być dana 8– bitowa z szybkością 1200 bodów. Przed
powtórnym wysłaniem danej wprowadź opóźnienie czasowe ok. 200 ms używając licznika
T0. Umożliwi to obserwację wysyłanego znaku na oscyloskopie.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryb pracy portu szeregowego,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
23
2) wybrać tryby pracy dla liczników T0 i T1– licznik T0 służy do opóźnienia czasowego,
licznik T1 będzie taktował transmisję szeregową,
3) obliczyć wartość początkową dla licznika T1– odpowiednią dla zadanej szybkości
transmisji i liczbę przepełnień oraz wartość początkową dla licznika opóźniającego T0,
4) zestawić słowa sterujące,
5) przygotować algorytm programu w postaci schematu blokowego,
6) napisać program w języku asemblera,
7) skompilować program, poprawić ewentualne błędy,
8) uruchomić program używając zestawu uruchomieniowego,
9) sprawdzić poprawność działania programu,
10) zaprezentować wykonane ćwiczenie,
11) dokonać oceny poprawności wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– oscyloskop,
– literatura z rozdziału 6.
Ćwiczenie 2
Napisz i uruchom program przepisania danych 8–bitowych z tablicy w pamięci IRAM
[20H:2FH] do tablicy w pamięci XRAM [0–0FH] za pośrednictwem portu szeregowego (TxD
i RxD połączone). Szybkość transmisji 9600 bodów.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryb pracy portu szeregowego,
2) obliczyć wartość początkową dla licznika T1– odpowiednią dla zadanej szybkości
transmisji,
3) zestawić słowo sterujące,
4) przygotować algorytm programu w postaci schematu blokowego,
5) napisać program w języku asemblera,
6) skompilować program, poprawić ewentualne błędy,
7) uruchomić program używając zestawu uruchomieniowego,
8) sprawdzić poprawność działania programu,
9) zaprezentować wykonane ćwiczenie,
10) dokonać oceny poprawności wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– literatura z rozdziału 6.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
24
4.2.4. Sprawdzian postępów
Czy potrafisz:
Tak Nie
1) opisać pracę portu szeregowego w każdym z trybów pracy?
¨
¨
2) zaprogramować port szeregowy na odpowiedni tryb pracy?
¨
¨
3) ustalać szybkość transmisji przez port szeregowy?
¨
¨
4) napisać program nadawania lub odbierania danych
przez port szeregowy?
¨
¨
5) nadawać daną z bitem kontroli parzystości?
¨
¨
6) sprawdzać, czy dana została odebrana poprawnie?
¨
¨
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
25
4.3. Przetwornik analogowo– cyfrowy
4.3.1.Matriał nauczania
Mikrokontroler SAB80C535 jest wyposażony w przetwornik analogowo–cyfrowy.
Parametry przetwornika:
−
kompensacja wagowa,
−
8 kanałów analogowych AN0–AN7 (P6.0–P6.7),
−
8–bitowa rozdzielczość pomiaru,
−
16 programowalnych podzakresów pomiarowych,
−
programowe wyzwalanie serii pomiarów lub pojedynczego pomiaru,
−
możliwość generowania przerwania po każdym pomiarze,
−
czas przetwarzania przetwornika wynosi 13 cykli maszynowych.
Rys.12 Schemat blokowy przetwornika A/C: [1, s.126]
Przetwornik A/C korzysta z 3 rejestrów specjalnych SFR:
ADCON (adres 0D8h) – wybór kanału pomiarowego i rodzaju przetwarzania:
BD
CLK
–
BSY
ADM MX2
MX1
MX0
BD – bit związany z portem szeregowym,
CLK – bit związany z taktowaniem,
podczas pracy przetwornika A/C nie należy zmieniać ich wartości,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
26
BSY – wskazuje aktualny stan przetwornika, bit tylko do odczytu, ustawiany i kasowany
sprzętowo: BSY=0 – przetwornik po zakończeniu przetwarzania, BSY=1– przetwornik
w trakcie przetwarzania,
ADM – określa rodzaj przetwarzania: ADM=0 – pojedynczy pomiar, ADM=1– seria
pomiarów, aż do chwili gdy ADM=0,
MX2, MX1, MX0 – wybór kanału pomiarowego.
Tabela 5 Wybór kanału pomiarowego:
MX2 MX1 MX0 Kanał
Wejście
0
0
0
0
AN0/P6.0
0
0
1
1
AN1/P6.1
0
1
0
2
AN2/P6.2
0
1
1
3
AN3/P6.3
1
0
0
4
AN4/P6.4
1
0
1
5
AN5/P6.5
1
1
0
6
AN6/P6.6
1
1
1
7
AN7/P6.7
ADDAT (adres 0D9h) – wynik przetwarzania
W rejestrze ADDAT przechowywana jest całkowita wielokrotność poziomów kwantowania:
ΔU
U
ADDAT
x
=
1
2
V
V
ΔU
8
IntAGND
IntAREF
−
−
=
DAPR (adres 0DAh) – wybór zakresu przetwarzania, wpis wartości do tego rejestru
rozpoczyna pomiar i przetwarzanie ac na wybranym kanale.
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
napięcie V
IntAREF
napięcie V
IntAGND
przy czym:
V
IntAREF
– górne wewnętrzne napięcie odniesienia
V
IntAGND
– dolne wewnętrzne napięcie odniesienia
Napięcia te tworzone są przez podział różnicy napięć V
AREF
i V
AGND
zgodnie z wzorami:
(
)
AGND
AREF
7..4
AGND
IntAREF
V
V
16
DAPR
V
V
−
+
=
(
)
AGND
AREF
3..0
AGND
IntAGND
V
V
16
DAPR
V
V
−
+
=
musi być spełniony warunek: V
IntAREF
– V
IntAGND
>1V, stąd DAPR
7..4
> 3h i DAPR
3..0
< Ch
zakładając napięcia odniesienia: V
AREF
=5V i V
AGND
=0V:
5V
16
DAPR
V
7..4
IntAREF
⋅
=
5V
16
DAPR
V
7..4
IntAGND
⋅
=
np. zawartość rejestru DAPR=A4h:
V
3,125
16
50V
5V
16
10
V
IntAREF
=
=
⋅
=
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
27
V
1,25
16
20V
5V
16
4
V
IntAGND
=
=
⋅
=
Czyli dla DAPR=A4h zakres napięć: 1,25V–3,125V
Tabela 6 Wybór podzakresów pomiarowych:
podzakres
pomiarowy
DAPR
7..4
[V]
V
IntAREF
DAPR
3..0
[V]
V
IntAGND
0
0000
5
0000
0
1
0001
–
0001
0,3125
2
0010
–
0010
0,625
3
0011
–
0011
0,9375
4
0100
1,25
0100
1,25
5
0101
1,5625
0101
1,5625
6
0110
1,875
0110
1,875
7
0111
2,1875
0111
2,1875
8
1000
2,5
1000
2,5
9
1001
2,8125
1001
2,8125
10
1010
3,125
1010
3,125
11
1011
3,4375
1011
3,4375
12
1100
3,75
1100
3,75
13
1101
4,0625
1101
–
14
1110
4,375
1110
–
15
1111
4,6875
1111
–
Dokładność przetwarzania przetwornika w pełnym zakresie programowym wynosi:
0,0196V
255
0V
5V
1
2
V
V
ΔU
8
IntAGND
IntAREF
=
−
=
−
−
=
przy pomiarze w zawężonym zakresie np. 0–1,25V:
V
0049
,
0
255
0V
1,25V
1
2
V
V
U
8
IntAGND
IntAREF
=
−
=
−
−
=
∆
Jest to prosty sposób na zwiększenie dokładności przetwornika o dodatkowe dwa bity (wynik
10–bitowy). Należy dokonać pomiaru w pełnym zakresie pomiarowym. Na podstawie
uzyskanego wyniku określić podzakres pomiarowy i dokonać drugiego pomiaru.
Pomiar 10–bitowy:
1. Pierwszy pomiar w zakresie 0–5V
2. Na podstawie 2 najstarszych bitów wyniku należy ustalić podzakres pomiarowy:
Tabela 7 Podzakres pomiarowy dla pomiaru 10– bitowego
dwa najstarsze bity wyniku
zakres pomiarowy
DAPR
00
0–1,25V
40H
01
1,25V–2,5V
84H
10
2.5V–3,75V
C8H
11
3,75V–5V
0CH
3. Do drugiego pomiaru należy wybrać odpowiedni podzakres i właściwą wartość
wpisać do DAPR.
4. Drugi pomiar w wybranym podzakresie pozwoli ustalić 8 młodszych bitów wyniku.
Dla prawidłowej pracy przetwornika A/C wymagane jest spełnienie następujących warunków:
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
28
−
napięcia V
IntAREF
i V
IntAGND
muszą być dołączone do wyprowadzeń mikrokontrolera, jeżeli
napięcia V
IntAREF
i V
IntAGND
są dołączone do napięć zasilających mikrokontroler V
CC
i V
SS
,
to muszą spełniać warunek:
0,2V,
V
V
%
5
V
V
SS
IntAGND
CC
IntAREF
±
=
±
=
−
minimalna różnica napięć
1V
V
V
IntAGND
IntAREF
≥
−
,
−
rezystancja wewnętrzna źródła mierzonego napięcia i napięcia wzorcowego nie może być
większa niż 5k
Ω
.
4.3.2. Pytania sprawdzające
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
1. W jakim zakresie można mierzyć napięcia używając przetwornika A/C?
2. Ilu bitowy jest przetwornik A/C w mikrokontrolerze SAB80C535?
3. Jaki jest kwant napięcia w tym przetworniku podczas pomiaru w pełnym zakresie
pomiarowym?
4. W jaki sposób można wybrać kanał pomiarowy?
5. Jak rozpocząć pomiary?
6. Jak zatrzymać serię pomiarów?
7. W jaki sposób można zwiększyć dokładność pomiaru, jeżeli wiemy, że zakres napięć
mierzonych jest mniejszy niż 0–5V?
8. Z jakiego rejestru należy pobrać wynik pomiaru?
9. Jak sprawdzić, czy przetwornik zakończył przetwarzanie?
4.3.3. Ćwiczenia
Ćwiczenie 1
Uzupełnij tabelę .
U
REF
U
GND
DAPR
wartość
analogowa
napięcia
wartość cyfrowa
napięcia
5V
0V
3,2 V
3,75 V
2,5V
3,2V
E4H
80H
0AH
4,1 V
4 V
1 V
72H
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) dokonać obliczeń kwantów napięcia na podstawie wybranego podzakresu pomiarowego
korzystając z danych napięć odniesienia lub zawartości rejestru DAPR,
2) obliczyć wartość analogową (dziesiętnie) lub cyfrową (szesnastkowo),
3) na podstawie dwóch pierwszych pozycji w tabeli porównaj dokładność pomiaru w pełnym
zakresie pomiarowym i w odpowiednio dobranym podzakresie pomiarowym, zastanów
się w jaki sposób wynik drugiego pomiaru można przedstawić jako wynik 10–bitowy,
4) zaprezentować efekty swojej pracy,
5) dokonać samooceny.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
29
Wyposażenie stanowiska pracy:
−
treść zadania dla każdego ucznia,
−
kalkulator,
−
literatura z rozdziału 6.
Ćwiczenie 2
Napisz i uruchom program ciągłego pomiaru napięcia z wybranego kanału pomiarowego,
wynik pomiaru wysyłaj na diody dołączone do portu.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryb pracy i kanał pomiarowy,
2) zestawić słowo sterujące,
3) opracować algorytm programu i przedstawić go w postaci schematu blokowego,
4) napisać program w języku asemblera,
5) skompilować program, poprawić ewentualne błędy,
6) uruchomić program używając zestawu uruchomieniowego,
7) sprawdzić poprawność działania programu,
8) zaprezentować wykonane ćwiczenie,
9) dokonać oceny poprawności wykonanego ćwiczenia,
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– literatura z rozdziału 6.
Ćwiczenie 3
Napisz i uruchom program monitorowania napięcia z wybranego kanału pomiarowego,
w przypadku przekroczenia napięcia 4V zapal diodę dołączoną do portu.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) wybrać tryb pracy i kanał pomiarowy,
2) zestawić słowo sterujące,
3) obliczyć jaka wartość cyfrowa w rejestrze ADDAT odpowiada napięciu analogowemu
4V,
4) opracować algorytm programu i przedstawić go w postaci schematu blokowego,
5) napisać program w języku asemblera,
6) skompilować program, poprawić ewentualne błędy,
7) uruchomić program używając zestawu uruchomieniowego,
8) sprawdzić poprawność działania programu,
9) zaprezentować wykonane ćwiczenie,
10) dokonać oceny poprawności wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
30
– zestaw uruchomieniowy z oprogramowaniem,
– literatura z rozdziału 6.
4.3.4. Sprawdzian postępów
Czy potrafisz:
Tak Nie
1) omówić pracę przetwornika A/C?
¨
¨
2) zaprogramować przetwornik na pomiar napięć z wybranego kanału?
¨
¨
3) obliczyć wartość analogową napięcia na podstawie wyniku
pomiaru w określonym podzakresie?
¨
¨
4) dobrać odpowiednie wartości do rejestru DAPR na podstawie
znajomości przewidywanego zakresu pomiarowego?
¨
¨
5) obliczyć wartość cyfrową napięcia na podstawie
znajomości podzakresu pomiarowego (zawartości rejestru DPTR)?
¨
¨
6) napisać program pomiaru napięć z wybranego kanału, w wybranym
podzakresie pomiarowym i zapisywania wyników w pamięci?
¨
¨
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
31
4.4. Układ przerwań
4.4.1. Materiał nauczania
Układ przerwań w mikrokontrolerach rodziny ’51 obsługuje następujące przerwania:
Tabela 8 Źródła przerwań
zewnętrzne:
źródło przerwania:
znacznik:
INT0
IE0– TCON.1
INT1
IE1– TCON.1
wewnętrzne:
źródło przerwania:
znacznik:
przepełnienie licznika T0
TF0– TCON.5
przepełnienie licznika T1
TF1– TCON.7
koniec nadawania/odbierania danej przez port szeregowy
TI– SCON.1
RI– SCON.0
Znaczniki są ustawiane sprzętowo w momencie wystąpienia przyczyny przerwania
lub programowo – przez wpis jedynki na odpowiedni bit. Znaczniki są kasowane sprzętowo
po przyjęciu przerwania, mogą być również kasowane programowo. Wyjątkiem jest
przerwanie od portu szeregowego – znaczniki nie są kasowane po przyjęciu przerwania,
aby umożliwić identyfikację źródła przerwania (nadajnik czy odbiornik), muszą być więc
zerowane programowo.
Układ przerwań może być blokowany lub odblokowany globalnie, każde przerwanie
może być maskowane indywidualnie – przez wpis „1” na odpowiednią pozycję rejestru IE:
EA
–
–
ES
ET1 EX1 ET0 EX0
Układ przerwań jest dwupoziomowy. W rejestrze IP można przypisać przerwaniom poziom
wyższy („1” na odpowiedniej pozycji) lub niższy („0”):
–
–
–
PS
PT1 PX1 PT0 PX0
Tabela 9 znaczenie bitów w rejestrach IE i IP
IE
IP
przerwanie
priorytet
EX0
PX0
zewnętrzne INT0
ET0
PT0
od licznika T0
EX1
PX1
zewnętrzne INT1
ET1
PT1
od licznika T1
ES
PS
od portu szeregowego
Jeżeli układ przerwań jest odblokowany (EA=1) w stanie S6 każdego cyklu maszynowego są
przeglądane znaczniki zgłoszenia nie zamaskowanych przerwań. W następnym cyklu
maszynowym układ przerwań przejdzie do obsługi przerwania o najwyższym priorytecie
pod warunkiem, że:
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
32
−
wykonywany cykl maszynowy jest ostatnim w cyklu maszynowym,
−
wykonywany rozkaz nie jest rozkazem RETI lub innym zmieniającym zawartość
rejestrów IP lub IE,
−
nie jest obsługiwany podprogram obsługi przerwania o tym samym lub wyższym
poziomie.
Po przyjęciu przerwania do obsługi mikrokontroler wykonuje następujące czynności:
−
wewnętrzny przerzutnik przerwania odpowiadający poziomowi przyjętego przerwania
zostanie ustawiony, aby w czasie obsługi nie mogło być przyjęte przerwanie z tego
samego lub niższego poziomu,
−
zeruje znacznik przyjętego przerwania (oprócz RI i TI),
−
zapamiętuje na stosie zawartość licznika rozkazów,
−
wpisuje do licznika rozkazów adres początku podprogramu obsługi przerwania.
Tabela 10 Adresy wektorów przerwań
źródło przerwania
znacznik przerwania
adres wektora przerwania
zewnętrzne INT0
IT0
0003H
od przepełnienia T0
TF0
000BH
zewnętrzne INT1
IT1
0013H
od przepełnienia T1
TF1
001BH
od portu szeregowego
RI+TI
0023H
Cykl przyjęcia przerwania jest wykonywany w ciągu 2 cykli maszynowych. Po jego
zakończeniu procesor rozpoczyna realizację podprogramu obsługi przerwania. Podprogram
ten musi być zakończony rozkazem RETI, który spowoduje wyzerowanie przerzutnika
przerwania (następne przerwanie z tego samego lub niższego poziomu może zostać przyjęte)
oraz zdejmuje ze stosu adresu powrotu i wpisanie go do licznika rozkazów PC.
Przerwania zewnętrzne
Przerwania zewnętrzne są zgłaszane opadającym zboczem lub niskim poziomem sygnału
na wejściach INT0 i INT1 (P3.2 i P3.3). Sposób zgłoszenia określa się programowo
w rejestrze TCON:
IE1 IT1 IE0 IT0
bity związane z T1,
T0
IE1– znacznik zgłoszenia przerwania INT1
IT1– ustawienie sposobu zgłaszania przerwania INT1:
IT1=0 – zgłoszenie poziomem niskim sygnału
IT1=1 – zgłoszenie zboczem opadającym sygnału
IE0 – znacznik zgłoszenia przerwania INT0
IT0 – ustawienie sposobu zgłaszania przerwania INT0
Znacznik IE1/IE0 jest zerowany sprzętowo w chwili przyjęcia przerwania.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
33
System przerwań w mikrokontrolerze SAB 80C535
Ze względu na dodatkowe zasoby mikrokontroler SAB 80C535 identyfikuje 12 źródeł
przerwań: 5 omówionych powyżej oraz:
−
przerwanie od przepełnienia licznika T2 oraz od przeładowania licznika T2 sygnałem
zewnętrznym,
−
przerwanie od przetwornika A/C,
−
5 przerwań zewnętrznych INT2..INT6.
Każdy sygnał mogący wywołać przerwanie związany jest z odpowiednim znacznikiem,
który jest ustawiany, gdy sygnał wywołujący przerwanie jest aktywny. Znaczniki są
kasowane sprzętowo po przyjęciu przerwania. Wyjątkiem są znaczniki przerwań od licznika
T2: TF2 i EXF2 (oraz omawiane poprzednio RI i TI), które muszą być zerowane
programowo.
Znaczniki są ustawiane w rejestrze IRCON:
EXF2 TF2
IEX6
IEX5
IEX4
IEX3
IEX2
IADC
EXF2
–
znacznik ustawiany zewnętrznym sygnałem od przeładowania licznika T2,
TF2 –
znacznik od przepełnienia licznika T2,
IEX6 – znacznik od zewnętrznego sygnału INT6 lub od sygnału wyjściowego
z komparatora 3,
IEX5 – znacznik od zewnętrznego sygnału INT5 lub od sygnału wyjściowego
z komparatora 2,
IEX4 – znacznik od zewnętrznego sygnału INT4 lub od sygnału wyjściowego
z komparatora 1,
IEX3 – znacznik od zewnętrznego sygnału INT3 lub od sygnału wyjściowego
z komparatora 0,
IEX2 – znacznik od zewnętrznego sygnału INT2,
IADC
–
znacznik od przetwornika A/C ustawiany na 4 cykle przed końcem przetwarzania.
W związku z większą liczbę źródeł przerwań rejestr maskowania przerwań IE został
zastąpiony przez 2 rejestry IEN0 i IEN1.
Wpis „0” na odpowiednią pozycję rejestru powoduje zablokowanie przerwania,
wpis „1”– odblokowanie
IEN0:
EAL
–
ET2
ES
ET1
EX1
ET0
EX0
EAL –
odblokowanie wszystkich przerwań (odpowiednik bitu EA w rejestrze IE) ,
ET2 –
przerwanie od licznika T2,
pozostałe bity mają znaczenie takie samo jak w rejestrze IE.
IEN1:
EXEN2
–
EX6
EX5
EX4
EX3
EX2
EADC
EXEN2 –
przerwanie od licznika T2 wywołane zewnętrznym sygnałem przeładowania
licznika,
EX6 –
przerwanie zewnętrzne INT6 lub od komparatora 3
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
34
EX5 –
przerwanie zewnętrzne INT5 lub od komparatora 2
EX4 –
przerwanie zewnętrzne INT4 lub od komparatora 1
EX3 –
przerwanie zewnętrzne INT3 lub od komparatora 0
EX2 –
przerwanie zewnętrzne INT2
EADC –
przerwanie od przetwornika A/C
Przerwania zewnętrzne INT2 i INT3 mogą być zgłaszane zboczem opadającym
lub narastającym zależnie od ustawienia bitów I2FR i I3FR w rejestrze T2CON („0”– zbocze
opadające, „1” zbocze narastające”). Pozostałe przerwania zewnętrzne INT4..INT6 mogą być
zgłaszane tylko zboczem narastającym.
Przyjęcie przerwania powoduje przejście do podprogramu obsługi przerwania.
Tabela 11 Adresy wektorów przerwań
źródło przerwania
znacznik przerwania
adres wektora
przerwania
zewnętrzne INT0
IT0
0003H
od przepełnienia T0
TF0
000BH
zewnętrzne INT1
IT1
0013H
od przepełnienia T1
TF1
001BH
od portu szeregowego
RI+TI
0023H
licznik T2
TF2+EXF2
002BH
przetwornik A/C
IADC
0043H
przerw. zewn. INT2
IEX2
004BH
przerw. zewn. INT3
IEX3
0053H
przerw. zewn. INT4
IEX4
005BH
przerw. zewn. INT5
IEX5
0063H
przerw. zewn. INT6
IEX6
006BH
W przypadku jednoczesnych zgłoszeń przerwań o kolejności obsługi decyduje priorytet.
Tabela 12 Priorytety przerwań
Źródło przerwania
Znacznik
Priorytet
przerw. zewn. INT0
IE0
najwyższy
przetwornik A/C
IADC
licznik T0
TF0
przerw. zewn. INT2
IEX2
przerw. zewn. INT1
IE1
przerw. zewn. INT3
IEX3
licznik T1
TF1
przerw. zewn. INT4
IEX4
port szeregowy
RI+TI
przerw. zewn. INT5
IEX5
licznik T2
TF2+EXF2
przerw. zewn. INT6
IEX6
najniższy
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
35
Mikrokontroler SAB 80C535 wyposażony jest w czteropoziomowy system przerwań.
Poziom przerwania jest ustalany przez ustawienie odpowiednich bitów w rejestrach IP0 i IP1:
IP0:
–
–
IP0.5
IP0.4
IP0.3
IP0.2
IP0.1
IP0.0
IP1:
–
–
IP1.5
IP1.4
IP1.3
IP1.2
IP1.1
IP1.0
Tabela 13 Poziomy przerwań:
znaczniki
IP1.x
IP0.x
poziom
przerwania
0
0
0
0
1
1
1
0
2
1
1
3
Poziom przerwania można przypisać dla pary przerwań.
Tabela 14 Przyporządkowanie przerwań do określonych znaczników:
znaczniki przerwań
źródła przerwań
IP1.0
IP0.0
IE0
IADC
IP1.1
IP0.1
TF0
IEX2
IP1.2
IP0.2
IE1
IEX3
IP1.3
IP0.3
TF1
IEX4
IP1.4
IP0.4
RI+TI
IEX5
IP1.5
IP0.5
TF2+EXF2
IEX6
4.4.2. Pytania sprawdzające
Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.
1. Jakie są źródła przerwań w mikrokontrolerze 8051?
2. Jakie jest znaczenie bitów w rejestrze IE?
3. Jakie jest znaczenie bitów w rejestrze IP?
4. Które ze znaczników przerwań są kasowane sprzętowo po przejściu do obsługi
przerwania, a które trzeba kasować programowo?
5. Jak programowo wywołać przerwanie z dowolnego źródła?
6. Od czego zależy kolejność obsługi przerwań podczas jednoczesnych zgłoszeń?
7. Jakie są warunki przyjęcia przerwania?
8. Jakie czynności wykonuje mikrokontroler po przyjęciu przerwania?
9. Jakie dodatkowe źródła przerwań występują w mikrokontrolerze 80C535?
10. Jakie rejestry zastępują rejestr IE w mikrokontrolerze 80C535?
11. Ile jest poziomów przerwań w mikrokontrolerze 80C535?
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
36
4.4.3. Ćwiczenia
Ćwiczenie 1
Przedstaw na wykresie kolejność obsługi przerwań, gdy IE=10010011b, IP=00000010,
czas trwania każdego podprogramu obsługi przerwania – 4 jednostki.
pr
ior
y
tet
INT0
T0
INT1
T1
port sz.
pr. gł.
t
RI
IE1
TF1, IE0
TI
TF0
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) na podstawie stanu rejestrów IE określić, które z przerwań są odblokowane i mogą być
przyjęte do obsługi,
2) na podstawie stanu rejestru IP określić, które z przerwań mają priorytet wyższy,
a które niższy,
3) narysować wykres kolejności obsługi zgłoszeń, uwzględniając kolejne zgłoszenia
i zawartość rejestrów IE i IP,
4) zaprezentować wykonane ćwiczenie,
5) dokonać oceny poprawności i estetyki wykonanego ćwiczenia.
Wyposażenie stanowiska pracy:
– treść zadania dla każdego ucznia
– literatura z rozdziału 6.
Ćwiczenie 2
Zaprogramuj układ przerwań w mikrokontrolerze SAB 80C535 tak, aby obsługiwał
przerwania od licznika T0, przetwornika A/C, portu szeregowego i przerwania zewnętrzne
INT1 i INT5. Przerwanie INT1 może przerwać obsługę każdego przerwania, a przerwanie
INT5 może przerwać obsługę przerwań od licznika T0, przetwornika A/C i portu
szeregowego.
Sposób wykonania ćwiczenia
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
37
Aby wykonać ćwiczenie powinieneś:
1) ustalić wartości, które mają być wpisane do rejestrów IE0 i IE1 w celu odblokowania
odpowiednich przerwań,
2) przypisać odpowiednie poziomy przerwaniom, na tej podstawie ustalić wartości, które
będą wpisane do rejestrów IP0 i IP1
3) zaprezentować wykonane ćwiczenie,
4) dokonać oceny poprawności wykonanego ćwiczenia,
Wyposażenie stanowiska pracy:
– treść zadania dla każdego ucznia,
– literatura z rozdziału 6.
Ćwiczenie 3
Napisz i uruchom program zapalania i gaszenia diody dołączonej do portu
z częstotliwością 0,5Hz i wypełnieniem ½ używając przerwania od licznika.
Sposób wykonania ćwiczenia
Aby wykonać ćwiczenie powinieneś:
1) dokonać obliczeń dotyczących ilości przepełnień i wartości początkowej do licznika,
2) opracować algorytm programu i przedstawić go w postaci schematu blokowego programu
głównego i schematu blokowego podprogramu obsługi przerwania,
3) napisać program w języku asemblera,
4) skompilować program, poprawić ewentualne błędy,
5) uruchomić program używając zestawu uruchomieniowego,
6) sprawdzić poprawność działania programu,
7) zaprezentować wykonane ćwiczenie,
8) dokonać oceny poprawności wykonanego ćwiczenia,
Wyposażenie stanowiska pracy:
– komputer PC,
– oprogramowanie umożliwiające kompilowanie i debbugowanie programu,
– zestaw uruchomieniowy z oprogramowaniem,
– literatura z rozdziału 6.
4.4.4. Sprawdzian postępów
Czy potrafisz:
Tak Nie
1) omówić źródła przerwań w mikrokontrolerze SAB 80C535?
¨
¨
2) definiować pojęcia priorytet i poziom?
¨
¨
3) odblokować i zablokować poszczególne przerwania?
¨
¨
4) ustalić określone poziomy dla przerwań?
¨
¨
5) określić warunki przyjęcia przerwania?
¨
¨
6) wymienić jakie czynności są wykonywane po przyjęciu przerwania?
¨
¨
7) napisać program obsługi zasobów modułów wewnętrznych
mikrokontrolera używając przerwań?
¨
¨
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
38
5. SPRAWDZIAN OSIĄGNIĘĆ
INSTRUKCJA DLA UCZNIA
1. Przeczytaj uważnie instrukcję.
2. Podpisz imieniem i nazwiskiem kartę odpowiedzi.
3. Zapoznaj się z zestawem zadań testowych.
4. Test zawiera 20 zadań o różnym stopniu trudności. Zadania: 1–16 są to zadania
wielokrotnego wyboru i tylko jedna odpowiedź jest prawidłowa; zadania: 17–20
to zadania z luką.
5. Udzielaj odpowiedzi tylko na załączonej karcie odpowiedzi:
−
w zadaniach wielokrotnego wyboru zaznacz prawidłową odpowiedź X (w przypadku
pomyłki należy błędną odpowiedź zaznaczyć kółkiem, a następnie ponownie
zakreślić odpowiedź prawidłową),
−
w zadaniach do uzupełnienia wpisz brakujące wyrazy lub liczby.
6. Test składa się z dwóch części o różnym stopniu trudności: I część – poziom
podstawowy, II część – poziom ponadpodstawowy.
7. Pracuj samodzielnie, bo tylko wtedy będziesz miał satysfakcję z wykonanego zadania.
8. Kiedy udzielenie odpowiedzi będzie Ci sprawiało trudność, wtedy odłóż jego
rozwiązanie na później i wróć do niego, gdy zostanie Ci czas wolny.
Trudności mogą
przysporzyć Ci zadania: 15– 20, gdyż są one na poziomie trudniejszym niż pozostałe.
Przeznacz na ich rozwiązanie więcej czasu.
9. Na rozwiązanie testu masz 90 min.
Powodzenia
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
39
ZESTAW ZADAŃ TESTOWYCH
I część
1. Która z odpowiedzi charakteryzuje pracę licznika T1 w trybie 1:
a) licznik 8–bitowy liczący w przód,
b) licznik 8–bitowy liczący w tył,
c) licznik 16–bitowy liczący w przód,
d) licznik 16–bitowy liczący w tył.
2. W celu odmierzenia odcinków czasu po 0,1 ms użyty został układ czasowy T1 pracujący
w trybie 2 (f
XTAL
=12MHz). Jaką wartość należy wpisać do rejestru TH1?
a) 156,
b) 246,
c) 10,
d) 100.
3. Przedstawiony program pozwala na odmierzenie czasu 1 s. Jaki rozkaz należy dopisać
jako ostatni?
SEK0: MOV TMOD,#00010000B
SEK1: MOV TH1,#HIGH(48576)
SEK2: MOV TL1,#LOW(48576)
SEK3: MOV R7,#16
SEK4: SETB TR1
SEK5: JNB TF1,$
SEK6: CLR TF1
…………..
a)
JNC SEK4,
b)
JNC SEK3,
c)
DJNZ R7,SEK5,
d)
DJNZ R7,SEK3.
4. Jaka może być maksymalna częstotliwość impulsów zewnętrznych doprowadzonych do
układu czasowego T0 (f
XTAL
=12MHz):
a) 12 MHz,
b) 1 MHz,
c) 500 kHz,
d) 50 kHz.
5. Zaprogramowanie licznika T2 na pracę w trybie autodoładowania i zapamiętania wartości
chwilowej wymaga ustawienia odpowiednich bitów w rejestrach:
a) CRC i T2CON,
b) CRC i CCEN,
c) T2CON i CC1,
d) T2CON i CCEN.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
40
6. Przedstawiony poniżej program pozwala na wygenerowanie przebiegu prostokątnego na
wyjściu P1.1. Jaka będzie częstotliwość i wypełnienie sygnału?
a) f=20 kHz, wypełnienie ½,
b) f=200 kHz, wypełnienie ½,
c) f=20 kHz, wypełnienie ¼,
d) f=200 kHz, wypełnienie ¼.
MOV TMOD,#00000010B
;zaprogramowanie licznika T0 na zliczanie impulsów
;wewnętrznych (C/ T =0) w trybie 2 (M1M0=10)
MOV TH0,#231
;załadowanie wartości początkowej do starszej części
;licznika T0 (wartość autodoładowywana)
MOV TL0,#231
;załadowanie wartości początkowej do młodszej
;części licznika T0
SETB TR0
;start zliczania impulsów zewnętrznych
CYKL: JNB TF0,$
;oczekiwanie na przepełnienie licznika T0
CLR TF0
CPL P1.0
;zmiana stanu P1.0 na przeciwny
LJMP CYKL
7. Jakim rozkazem należy uzupełnić następujący program odbioru danej przez port
szeregowy, aby możliwe było odebranie następnej danej?
MOV SCON,#01010000B
ODBIOR: JNB RI,$
…………
MOV A,SBUF
a) CLR TI
b) CLR RI,
c) SETB TI,
d) SETB RI.
8. Transmisja szeregowa podczas pracy portu w trybie 3 odbywa się według następującego
protokołu: jest to transmisja :
a) synchroniczna, znak 8–bitowy, szybkość transmisji stała,
b) asynchroniczna, znaki 8–bitowe, szybkość transmisji
określona programowo,
c) asynchroniczna, znaki 9–bitowe, szybkość transmisji stała,
d) asynchroniczna, znaki 9–bitowe, szybkość transmisji określona programowo.
9. Jaki jest warunek rozpoczęcia odbioru danych przez port szeregowy pracujący w trybie 2
po pojawieniu się bitu startu?
a) REN=1, RI=1,
b) REN=1, RI=0,
c) REN=0, RI=1,
d) REN=0, RI=0.
10. Jakie będą dwa pierwsze bity, które pojawią się na wyjściu TxD po bicie startu podczas
nadawania słowa A3H:
a) 00,
b) 01,
c) 10,
d) 11.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
41
11. Który rozkaz spowoduje rozpoczęcie nadawania danej przez wyjście TxD:
a) SETB REN,
b) MOV A,SBUF,
c) MOV SBUF,A,
d) CLR REN.
12. Jakim słowem należy zaprogramować przetwornik A/C, aby wykonać serię pomiarów z
kanału 6?
a) ADCON=06H
b) ADCON=0EH
c) ADDAT=06H
d) ADDAT=0EH
13. Jak jest wartość analogowa sygnału zmierzonego przetwornikiem A/C w
mikrokontrolerze SAB80C835, gdy zawartości rejestrów: DAPR=0, ADDAT=99H,
ADCON=0AH. Z jakiego kanału nastąpił pomiar?
a) 3V, kanał 2,
b) 2V, kanał 3,
c) 3V, kanał 3,
d) 2V, kanał 2.
14. W jaki sposób programowo zatrzymać serię pomiarów w przetworniku A/C ?
a) CLR BSY,
b) SETB BSY,
c) CLR ADM,
d) SETB ADM.
II część
15. Zbocze opadające doprowadzone do wejścia P3.5 może spowodować inkrementację
licznika T1 pod warunkiem, że do rejestru TMOD zostało wpisane następujące słowo:
a) 00010000b,
b) 01010000b,
c) 00100000b,
d) 00110000b.
16. Jaka będzie zawartość licznika T0 po 5 ms, jeżeli jest do TMOD została wpisana wartość:
00000101b, a do wejścia P3.4 został doprowadzony sygnał prostokątny częstotliwości 10
kHz i wypełnieniu ½:
a) 50,
b) 25,
c) 500,
d) 250.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
42
17. Port szeregowy odbiera dane 8–bitowe przez port szeregowy z szybkością 9600 bodów i
zapisuje do pamięci IRAM od adresu 30H. Uzupełnij program:
ORG 0:
LJMP START
ORG 100
START: MOV SCON,#.............b
;zaprogramowanie portu szeregowego
MOV
TMOD,#00100000b
;zaprogramowanie licznika T1
MOV …….,#0FDH
;ustalenie szybkości transmisji
MOV R0,#30H
;adres początku tablicy danych
SETB EA
;odblokowanie układu przerwań
SETB……..
;odblokowanie przerwania od portu
;szeregowego
ORG 23H
;podprogram obsługi przerwania
CLR ………
;skasowanie znacznika przerwania
MOV @R0,………
;zapis odebranej danej do tablicy
INC R0
;zwiększenie adresu
…………..
;powrót z podprogramu obsługi
;przerwania
18. Na wyjściu P1.2 ma być wygenerowany przebieg o częstotliwości 1 kHz (f
XTAL
=12MHz)
i wypełnieniu 80%. Licznik T2 pracuje w trybie autodoładowania i porównywania
wartości chwilowej. Wartość autodoładowywana jest przechowywana w rejestrze
…….…. i wynosi ……….,a wartość porównywana w ….…. i wynosi………..
19. W rejestrze IE jest wpisana wartość 99H, a w rejestrze IP wartość 10H. W przypadku
jednoczesnego wystąpienia zgłoszeń od przepełnienia licznika T1, od portu szeregowego
i obu przerwań zewnętrznych jako pierwsze zostanie obsłużone ………………………...,
a przerwanie ……. … w ogóle nie zostanie obsłużone. Tylko przerwanie od ……………
może przerwać obsługę innego przerwania.
20. Uzupełnij program pomiaru 5 napięć z kanału 3 w pełnym zakresie pomiarowym
przetwornika A/C. Wyniki pomiaru mają być zapisane do IRAM od adresu 30H.
MOV………….,#00001011b
;pomiar ciągły ADM=1, kanał 3
MOV R0,#30h
;adres początku tablicy
MOV R7,#5
;licznik pomiarów
MOV DAPR,#............
;pełny zakres, start serii pomiarów
POM:
JB BSY,$
;oczekiwanie na zakończenie pomiaru
MOV @R0,…………
;zapis danej
INC R0
;zwiększenie adresu
DJNZ R7,POM
;następny pomiar
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
43
KARTA ODPOWIEDZI
Imię i nazwisko ……………………………………………………..
Badanie modułów wewnętrznych mikrokontrolera
Zakreśl poprawną odpowiedź lub wpisz brakujące części zdania.
Nr
zadania
Odpowiedź
Punkty
1.
a
b
c
d
2.
a
b
c
d
3.
a
b
c
d
4.
a
b
c
d
5.
a
b
c
d
6.
a
b
c
d
7.
a
b
c
d
8.
a
b
c
d
9.
a
b
c
d
10.
a
b
c
d
11.
a
b
c
d
12.
a
b
c
d
13.
a
b
c
d
14.
a
b
c
d
15.
a
b
c
d
16.
a
b
c
d
17.
18.
19.
20.
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
44
6. LITERATURA
1.
Dyrcz K., Kowalski C. T., Zarczyński Z.: Podstawy techniki mikroprocesorowej,
Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław1999
2.
Janiczek J., Stępień A.: Mikrokontroler 80(C)51/52, Wydawnictwo Elektronicznych
Zakładów Naukowych, Wrocław 1995
3.
Janiczek J., Stępień A.: Laboratorium systemów mikroprocesorowych cz. I i II,
Wydawnictwo Elektronicznych Zakładów Naukowych, Wrocław 1995
4.
Rydzewski A.: Mikrokomputery jednoukładowe rodziny MCS–51,Wydawnictwa
Naukowo– Techniczne, Warszawa 1992
5.
Starecki T.: Mikrokontrolery 8051 w praktyce, Wydawnictwo BTC, Warszawa 2002