SlideShare a Scribd company logo
1 of 45
Download to read offline
„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 TC/ M1 M0 GATE TC/ M1 M0
T1 T0
znaczenie bitów:
M1,M0– ustawienie trybu pracy:
00- tryb 0,
01- tryb 1,
10– tryb 2,
11– tryb 3.
TC/ – realizowana funkcja:
TC/ =1– funkcja licznika impulsów zewnętrznych,
TC/ =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
213
=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 216
=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 28
=256.
Rys. 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 ( TC/ =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 ( TC/ =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
fXTAL/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 fXTAL/12,
T2PS
T2PS=1 – taktowanie licznika sygnałem fXTAL/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ą fXTAL/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:
fOT1/32 gdy SMOD=0 lub fOT1/64 gdy SMOD=1,
gdzie fOT1– częstotliwość przepełnienia licznika T1, SMOD– siódmy bit w rejestrze PCON.
fOT1=
TH1-256
fT1
gdzie fT1 oznacza częstotliwość impulsów zliczanych przez licznik T1, czyli fT1= fXTAL/12.
Przykładowe wartości, jakie należy wpisać do TH1, gdy licznik T1 pracuje jako czasomierz
w trybie 2, a fXTAL= 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
=
12
VV
ΔU 8
IntAGNDIntAREF
−
−
=
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 VIntAREF napięcie VIntAGND
przy czym:
VIntAREF – górne wewnętrzne napięcie odniesienia
VIntAGND – dolne wewnętrzne napięcie odniesienia
Napięcia te tworzone są przez podział różnicy napięć VAREF i VAGND zgodnie z wzorami:
( )AGNDAREF
7..4
AGNDIntAREF VV
16
DAPR
VV −+=
( )AGNDAREF
3..0
AGNDIntAGND VV
16
DAPR
VV −+=
musi być spełniony warunek: VIntAREF– VIntAGND>1V, stąd DAPR7..4 > 3h i DAPR3..0 < Ch
zakładając napięcia odniesienia: VAREF=5V i VAGND=0V:
5V
16
DAPR
V 7..4
IntAREF ⋅=
5V
16
DAPR
V 7..4
IntAGND ⋅=
np. zawartość rejestru DAPR=A4h:
V3,125
16
50V
5V
16
10
VIntAREF ==⋅=
„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego”
27
V1,25
16
20V
5V
16
4
VIntAGND ==⋅=
Czyli dla DAPR=A4h zakres napięć: 1,25V–3,125V
Tabela 6 Wybór podzakresów pomiarowych:
podzakres
pomiarowy
DAPR7..4
[V]
VIntAREF DAPR3..0
[V]
VIntAGND
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
0V5V
12
VV
ΔU 8
IntAGNDIntAREF
=
−
=
−
−
=
przy pomiarze w zawężonym zakresie np. 0–1,25V:
V0049,0
255
0V1,25V
12
VV
U 8
IntAGNDIntAREF
=
−
=
−
−
=∆
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 VIntAREF i VIntAGND muszą być dołączone do wyprowadzeń mikrokontrolera, jeżeli
napięcia VIntAREF i VIntAGND są dołączone do napięć zasilających mikrokontroler VCC i VSS,
to muszą spełniać warunek:
0,2V,VV
%5VV
SSIntAGND
CCIntAREF
±=
±=
− minimalna różnica napięć 1VVV IntAGNDIntAREF ≥− ,
− 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ę .
UREF UGND 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.
priorytet
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

More Related Content

What's hot

32. Instalowanie i programowanie urządzeń wideo
32. Instalowanie i programowanie urządzeń wideo32. Instalowanie i programowanie urządzeń wideo
32. Instalowanie i programowanie urządzeń wideoLukas Pobocha
 
29. Badanie odbiornika telewizyjnego
29. Badanie odbiornika telewizyjnego29. Badanie odbiornika telewizyjnego
29. Badanie odbiornika telewizyjnegoLukas Pobocha
 
21. Pisanie i uruchamianie programów w asemblerze
21. Pisanie i uruchamianie programów w asemblerze21. Pisanie i uruchamianie programów w asemblerze
21. Pisanie i uruchamianie programów w asemblerzeLukas Pobocha
 
36. Montowanie i badanie instalacji domofonowej
36. Montowanie i badanie instalacji domofonowej36. Montowanie i badanie instalacji domofonowej
36. Montowanie i badanie instalacji domofonowejLukas Pobocha
 
40. badanie układów sterowania z regulatorami nieciągłymi
40. badanie układów sterowania z regulatorami nieciągłymi40. badanie układów sterowania z regulatorami nieciągłymi
40. badanie układów sterowania z regulatorami nieciągłymiLukas Pobocha
 
10. Badanie generatorów
10. Badanie generatorów10. Badanie generatorów
10. Badanie generatorówLukas Pobocha
 
26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i mier...
26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i  mier...26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i  mier...
26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i mier...Lukas Pobocha
 
28. Badanie odbiornika radiowego
28. Badanie odbiornika radiowego28. Badanie odbiornika radiowego
28. Badanie odbiornika radiowegoLukas Pobocha
 
41. montowanie i uruchamianie komputera
41. montowanie i uruchamianie komputera41. montowanie i uruchamianie komputera
41. montowanie i uruchamianie komputeraLukas Pobocha
 
7. Badanie elementów i układów automatyki
7. Badanie elementów i układów automatyki7. Badanie elementów i układów automatyki
7. Badanie elementów i układów automatykiLukas Pobocha
 
44. Instalowanie urządzeń peryferyjnych
44. Instalowanie urządzeń peryferyjnych44. Instalowanie urządzeń peryferyjnych
44. Instalowanie urządzeń peryferyjnychLukas Pobocha
 
30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej
30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej
30. Montowanie i badanie instalacji do odbioru telewizji satelitarnejLukas Pobocha
 
13. Badanie układów uzależnień czasowych
13. Badanie układów uzależnień czasowych13. Badanie układów uzależnień czasowych
13. Badanie układów uzależnień czasowychLukas Pobocha
 
33. Montowanie i badanie antenowej instalacji zbiorczej
33. Montowanie i badanie antenowej instalacji zbiorczej33. Montowanie i badanie antenowej instalacji zbiorczej
33. Montowanie i badanie antenowej instalacji zbiorczejLukas Pobocha
 
17. Badanie elementów i urządzeń wykonawczych
17. Badanie elementów i urządzeń wykonawczych17. Badanie elementów i urządzeń wykonawczych
17. Badanie elementów i urządzeń wykonawczychLukas Pobocha
 
31. Instalowanie i programowanie urządzeń audio
31. Instalowanie i programowanie urządzeń audio31. Instalowanie i programowanie urządzeń audio
31. Instalowanie i programowanie urządzeń audioLukas Pobocha
 
25. Eksploatowanie oscyloskopów
25. Eksploatowanie oscyloskopów25. Eksploatowanie oscyloskopów
25. Eksploatowanie oscyloskopówLukas Pobocha
 
45. Testowanie, diagnozowanie i wymiana podzespołów
45. Testowanie, diagnozowanie i wymiana podzespołów 45. Testowanie, diagnozowanie i wymiana podzespołów
45. Testowanie, diagnozowanie i wymiana podzespołów Lukas Pobocha
 
37. Montowanie i badanie systemu telewizji użytkowej
37. Montowanie i badanie systemu telewizji użytkowej37. Montowanie i badanie systemu telewizji użytkowej
37. Montowanie i badanie systemu telewizji użytkowejLukas Pobocha
 
42. instalowanie i konfigurowanie systemu operacyjnego
42. instalowanie i konfigurowanie systemu operacyjnego42. instalowanie i konfigurowanie systemu operacyjnego
42. instalowanie i konfigurowanie systemu operacyjnegoLukas Pobocha
 

What's hot (20)

32. Instalowanie i programowanie urządzeń wideo
32. Instalowanie i programowanie urządzeń wideo32. Instalowanie i programowanie urządzeń wideo
32. Instalowanie i programowanie urządzeń wideo
 
29. Badanie odbiornika telewizyjnego
29. Badanie odbiornika telewizyjnego29. Badanie odbiornika telewizyjnego
29. Badanie odbiornika telewizyjnego
 
21. Pisanie i uruchamianie programów w asemblerze
21. Pisanie i uruchamianie programów w asemblerze21. Pisanie i uruchamianie programów w asemblerze
21. Pisanie i uruchamianie programów w asemblerze
 
36. Montowanie i badanie instalacji domofonowej
36. Montowanie i badanie instalacji domofonowej36. Montowanie i badanie instalacji domofonowej
36. Montowanie i badanie instalacji domofonowej
 
40. badanie układów sterowania z regulatorami nieciągłymi
40. badanie układów sterowania z regulatorami nieciągłymi40. badanie układów sterowania z regulatorami nieciągłymi
40. badanie układów sterowania z regulatorami nieciągłymi
 
10. Badanie generatorów
10. Badanie generatorów10. Badanie generatorów
10. Badanie generatorów
 
26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i mier...
26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i  mier...26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i  mier...
26. Eksploatowanie częstościomierzy, generatorów pomiarowych, mostków i mier...
 
28. Badanie odbiornika radiowego
28. Badanie odbiornika radiowego28. Badanie odbiornika radiowego
28. Badanie odbiornika radiowego
 
41. montowanie i uruchamianie komputera
41. montowanie i uruchamianie komputera41. montowanie i uruchamianie komputera
41. montowanie i uruchamianie komputera
 
7. Badanie elementów i układów automatyki
7. Badanie elementów i układów automatyki7. Badanie elementów i układów automatyki
7. Badanie elementów i układów automatyki
 
44. Instalowanie urządzeń peryferyjnych
44. Instalowanie urządzeń peryferyjnych44. Instalowanie urządzeń peryferyjnych
44. Instalowanie urządzeń peryferyjnych
 
30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej
30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej
30. Montowanie i badanie instalacji do odbioru telewizji satelitarnej
 
13. Badanie układów uzależnień czasowych
13. Badanie układów uzależnień czasowych13. Badanie układów uzależnień czasowych
13. Badanie układów uzależnień czasowych
 
33. Montowanie i badanie antenowej instalacji zbiorczej
33. Montowanie i badanie antenowej instalacji zbiorczej33. Montowanie i badanie antenowej instalacji zbiorczej
33. Montowanie i badanie antenowej instalacji zbiorczej
 
17. Badanie elementów i urządzeń wykonawczych
17. Badanie elementów i urządzeń wykonawczych17. Badanie elementów i urządzeń wykonawczych
17. Badanie elementów i urządzeń wykonawczych
 
31. Instalowanie i programowanie urządzeń audio
31. Instalowanie i programowanie urządzeń audio31. Instalowanie i programowanie urządzeń audio
31. Instalowanie i programowanie urządzeń audio
 
25. Eksploatowanie oscyloskopów
25. Eksploatowanie oscyloskopów25. Eksploatowanie oscyloskopów
25. Eksploatowanie oscyloskopów
 
45. Testowanie, diagnozowanie i wymiana podzespołów
45. Testowanie, diagnozowanie i wymiana podzespołów 45. Testowanie, diagnozowanie i wymiana podzespołów
45. Testowanie, diagnozowanie i wymiana podzespołów
 
37. Montowanie i badanie systemu telewizji użytkowej
37. Montowanie i badanie systemu telewizji użytkowej37. Montowanie i badanie systemu telewizji użytkowej
37. Montowanie i badanie systemu telewizji użytkowej
 
42. instalowanie i konfigurowanie systemu operacyjnego
42. instalowanie i konfigurowanie systemu operacyjnego42. instalowanie i konfigurowanie systemu operacyjnego
42. instalowanie i konfigurowanie systemu operacyjnego
 

Viewers also liked

Drabina rozwoju po zmianach
Drabina rozwoju po zmianachDrabina rozwoju po zmianach
Drabina rozwoju po zmianachwiosenka
 
Základy marketingu na internetu
Základy marketingu na internetuZáklady marketingu na internetu
Základy marketingu na internetuBESTETO
 
Budowa narodowej architektury korporacyjnej w Polsce - zarys problematyki
Budowa narodowej architektury korporacyjnej w Polsce - zarys problematykiBudowa narodowej architektury korporacyjnej w Polsce - zarys problematyki
Budowa narodowej architektury korporacyjnej w Polsce - zarys problematykiAndrzej Sobczak
 
Zasady pozyskiwania dofinansowania z funduszy europejskich
Zasady pozyskiwania dofinansowania z funduszy europejskichZasady pozyskiwania dofinansowania z funduszy europejskich
Zasady pozyskiwania dofinansowania z funduszy europejskichOdzyskenergii
 
Using Online Advertising To Build Brands
Using Online Advertising To Build BrandsUsing Online Advertising To Build Brands
Using Online Advertising To Build BrandsKantar
 
Wynagrodzenie brutto a netto
Wynagrodzenie brutto a nettoWynagrodzenie brutto a netto
Wynagrodzenie brutto a nettoUCMS Group Poland
 
Nm.2012.003,dorenda zaborowicz
Nm.2012.003,dorenda zaborowiczNm.2012.003,dorenda zaborowicz
Nm.2012.003,dorenda zaborowiczMarcin Janowski
 
D03 Poddzialanie 8.1.2
D03 Poddzialanie 8.1.2D03 Poddzialanie 8.1.2
D03 Poddzialanie 8.1.2UM Łódzkie
 
Poziom zaangażowania w zespołach
Poziom zaangażowania w zespołachPoziom zaangażowania w zespołach
Poziom zaangażowania w zespołachRyszard Krakowiak
 
iFIN24 – nowe spojrzenie na e-dokumenty
iFIN24 – nowe spojrzenie na e-dokumentyiFIN24 – nowe spojrzenie na e-dokumenty
iFIN24 – nowe spojrzenie na e-dokumentyMichal Zylinski
 
Presco wyniki 2012
Presco wyniki 2012Presco wyniki 2012
Presco wyniki 2012Kamil Gemra
 
Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...
Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...
Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...Wojciech Boczoń
 
Rozwój wspólnot europejskich
Rozwój wspólnot europejskichRozwój wspólnot europejskich
Rozwój wspólnot europejskichDawidRosol
 
Blogerzy w Polsce 2013 - znajomość - wizerunek - znaczenie
Blogerzy w Polsce 2013 - znajomość - wizerunek - znaczenieBlogerzy w Polsce 2013 - znajomość - wizerunek - znaczenie
Blogerzy w Polsce 2013 - znajomość - wizerunek - znaczenieNewspoint Sp. z o.o.
 
Organizowanie stanowiska pracy
Organizowanie stanowiska pracyOrganizowanie stanowiska pracy
Organizowanie stanowiska pracySebastian Bończyk
 

Viewers also liked (20)

Drabina rozwoju po zmianach
Drabina rozwoju po zmianachDrabina rozwoju po zmianach
Drabina rozwoju po zmianach
 
Visio 2002 dla każdego
Visio 2002 dla każdegoVisio 2002 dla każdego
Visio 2002 dla każdego
 
Základy marketingu na internetu
Základy marketingu na internetuZáklady marketingu na internetu
Základy marketingu na internetu
 
Budowa narodowej architektury korporacyjnej w Polsce - zarys problematyki
Budowa narodowej architektury korporacyjnej w Polsce - zarys problematykiBudowa narodowej architektury korporacyjnej w Polsce - zarys problematyki
Budowa narodowej architektury korporacyjnej w Polsce - zarys problematyki
 
Zasady pozyskiwania dofinansowania z funduszy europejskich
Zasady pozyskiwania dofinansowania z funduszy europejskichZasady pozyskiwania dofinansowania z funduszy europejskich
Zasady pozyskiwania dofinansowania z funduszy europejskich
 
Using Online Advertising To Build Brands
Using Online Advertising To Build BrandsUsing Online Advertising To Build Brands
Using Online Advertising To Build Brands
 
Wynagrodzenie brutto a netto
Wynagrodzenie brutto a nettoWynagrodzenie brutto a netto
Wynagrodzenie brutto a netto
 
Nm.2012.003,dorenda zaborowicz
Nm.2012.003,dorenda zaborowiczNm.2012.003,dorenda zaborowicz
Nm.2012.003,dorenda zaborowicz
 
D03 Poddzialanie 8.1.2
D03 Poddzialanie 8.1.2D03 Poddzialanie 8.1.2
D03 Poddzialanie 8.1.2
 
Poziom zaangażowania w zespołach
Poziom zaangażowania w zespołachPoziom zaangażowania w zespołach
Poziom zaangażowania w zespołach
 
iFIN24 – nowe spojrzenie na e-dokumenty
iFIN24 – nowe spojrzenie na e-dokumentyiFIN24 – nowe spojrzenie na e-dokumenty
iFIN24 – nowe spojrzenie na e-dokumenty
 
Presco wyniki 2012
Presco wyniki 2012Presco wyniki 2012
Presco wyniki 2012
 
Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...
Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...
Ogolnopolski Raport O Kredytach Mieszkaniowych I Cenach Transakcyjnych Nieruc...
 
Emauel Swedenborg
Emauel SwedenborgEmauel Swedenborg
Emauel Swedenborg
 
Rozwój wspólnot europejskich
Rozwój wspólnot europejskichRozwój wspólnot europejskich
Rozwój wspólnot europejskich
 
Blogerzy w Polsce 2013 - znajomość - wizerunek - znaczenie
Blogerzy w Polsce 2013 - znajomość - wizerunek - znaczenieBlogerzy w Polsce 2013 - znajomość - wizerunek - znaczenie
Blogerzy w Polsce 2013 - znajomość - wizerunek - znaczenie
 
Agresja w sporcie
Agresja w sporcieAgresja w sporcie
Agresja w sporcie
 
Organizowanie stanowiska pracy
Organizowanie stanowiska pracyOrganizowanie stanowiska pracy
Organizowanie stanowiska pracy
 
Czas na e-biznes
Czas na e-biznesCzas na e-biznes
Czas na e-biznes
 
Rekrutacja
RekrutacjaRekrutacja
Rekrutacja
 

Similar to 22. Badanie modułów wewnętrznych mikrokontrolera

6. Montowanie układów cyfrowych i pomiary ich parametrów
6. Montowanie układów cyfrowych i pomiary ich  parametrów6. Montowanie układów cyfrowych i pomiary ich  parametrów
6. Montowanie układów cyfrowych i pomiary ich parametrówLukas Pobocha
 
Technik.mechatronik 311[50] z2.03_u
Technik.mechatronik 311[50] z2.03_uTechnik.mechatronik 311[50] z2.03_u
Technik.mechatronik 311[50] z2.03_uKubaSroka
 
(1) Wykonywanie regulacji mechanizmów zegarowych
(1) Wykonywanie regulacji mechanizmów zegarowych(1) Wykonywanie regulacji mechanizmów zegarowych
(1) Wykonywanie regulacji mechanizmów zegarowychSebastian Bończyk
 
Technik.technologii.drewna 311[32] z2.08_u
Technik.technologii.drewna 311[32] z2.08_uTechnik.technologii.drewna 311[32] z2.08_u
Technik.technologii.drewna 311[32] z2.08_uEmotka
 
9. Badanie liniowych układów scalonych
9. Badanie liniowych układów scalonych9. Badanie liniowych układów scalonych
9. Badanie liniowych układów scalonychLukas Pobocha
 
11. Badanie zasilaczy
11. Badanie zasilaczy11. Badanie zasilaczy
11. Badanie zasilaczyLukas Pobocha
 
Technik.mechatronik 311[50] o1.06_u
Technik.mechatronik 311[50] o1.06_uTechnik.mechatronik 311[50] o1.06_u
Technik.mechatronik 311[50] o1.06_uKubaSroka
 
16. Badanie czujników i przetworników przemysłowych
16. Badanie czujników i przetworników przemysłowych16. Badanie czujników i przetworników przemysłowych
16. Badanie czujników i przetworników przemysłowychLukas Pobocha
 
Technik.mechatronik 311[50] z1.04_u
Technik.mechatronik 311[50] z1.04_uTechnik.mechatronik 311[50] z1.04_u
Technik.mechatronik 311[50] z1.04_uKubaSroka
 
7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania
7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania
7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowaniaAdam Osa
 
6. Odwzorowywanie elementów maszyn
6. Odwzorowywanie elementów maszyn6. Odwzorowywanie elementów maszyn
6. Odwzorowywanie elementów maszynAdam Osa
 
Wykonywanie napraw czasomierzy elektrycznych i elektronicznych
Wykonywanie napraw czasomierzy elektrycznych i elektronicznychWykonywanie napraw czasomierzy elektrycznych i elektronicznych
Wykonywanie napraw czasomierzy elektrycznych i elektronicznychSebastian Bończyk
 
Technik.urzadzen.sanitarnych
Technik.urzadzen.sanitarnych Technik.urzadzen.sanitarnych
Technik.urzadzen.sanitarnych Emotka
 
Technik.mechatronik 311[50] z3.01_u
Technik.mechatronik 311[50] z3.01_uTechnik.mechatronik 311[50] z3.01_u
Technik.mechatronik 311[50] z3.01_uKubaSroka
 
24. Eksploatowanie uniwersalnych przyrządów pomiarowych
24. Eksploatowanie uniwersalnych przyrządów pomiarowych24. Eksploatowanie uniwersalnych przyrządów pomiarowych
24. Eksploatowanie uniwersalnych przyrządów pomiarowychLukas Pobocha
 
Technik.technologii.drewna 311[32] o1.05_u
Technik.technologii.drewna 311[32] o1.05_uTechnik.technologii.drewna 311[32] o1.05_u
Technik.technologii.drewna 311[32] o1.05_uEmotka
 
5. Montowanie układów analogowych i pomiary ich parametrów
5. Montowanie układów analogowych i pomiary ich parametrów5. Montowanie układów analogowych i pomiary ich parametrów
5. Montowanie układów analogowych i pomiary ich parametrówLukas Pobocha
 
Slusarz 722[03] o1.03_u
Slusarz 722[03] o1.03_uSlusarz 722[03] o1.03_u
Slusarz 722[03] o1.03_uEmotka
 

Similar to 22. Badanie modułów wewnętrznych mikrokontrolera (20)

6. Montowanie układów cyfrowych i pomiary ich parametrów
6. Montowanie układów cyfrowych i pomiary ich  parametrów6. Montowanie układów cyfrowych i pomiary ich  parametrów
6. Montowanie układów cyfrowych i pomiary ich parametrów
 
Technik.mechatronik 311[50] z2.03_u
Technik.mechatronik 311[50] z2.03_uTechnik.mechatronik 311[50] z2.03_u
Technik.mechatronik 311[50] z2.03_u
 
(1) Wykonywanie regulacji mechanizmów zegarowych
(1) Wykonywanie regulacji mechanizmów zegarowych(1) Wykonywanie regulacji mechanizmów zegarowych
(1) Wykonywanie regulacji mechanizmów zegarowych
 
Technik.technologii.drewna 311[32] z2.08_u
Technik.technologii.drewna 311[32] z2.08_uTechnik.technologii.drewna 311[32] z2.08_u
Technik.technologii.drewna 311[32] z2.08_u
 
9. Badanie liniowych układów scalonych
9. Badanie liniowych układów scalonych9. Badanie liniowych układów scalonych
9. Badanie liniowych układów scalonych
 
11. Badanie zasilaczy
11. Badanie zasilaczy11. Badanie zasilaczy
11. Badanie zasilaczy
 
Technik.mechatronik 311[50] o1.06_u
Technik.mechatronik 311[50] o1.06_uTechnik.mechatronik 311[50] o1.06_u
Technik.mechatronik 311[50] o1.06_u
 
16. Badanie czujników i przetworników przemysłowych
16. Badanie czujników i przetworników przemysłowych16. Badanie czujników i przetworników przemysłowych
16. Badanie czujników i przetworników przemysłowych
 
Technik.mechatronik 311[50] z1.04_u
Technik.mechatronik 311[50] z1.04_uTechnik.mechatronik 311[50] z1.04_u
Technik.mechatronik 311[50] z1.04_u
 
7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania
7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania
7. Wykonywanie rysunków z wykorzystaniem komputerowego wspomagania projektowania
 
6. Odwzorowywanie elementów maszyn
6. Odwzorowywanie elementów maszyn6. Odwzorowywanie elementów maszyn
6. Odwzorowywanie elementów maszyn
 
Wykonywanie napraw czasomierzy elektrycznych i elektronicznych
Wykonywanie napraw czasomierzy elektrycznych i elektronicznychWykonywanie napraw czasomierzy elektrycznych i elektronicznych
Wykonywanie napraw czasomierzy elektrycznych i elektronicznych
 
Lakiernik 714[03] l2.04_u
Lakiernik 714[03] l2.04_uLakiernik 714[03] l2.04_u
Lakiernik 714[03] l2.04_u
 
3
33
3
 
Technik.urzadzen.sanitarnych
Technik.urzadzen.sanitarnych Technik.urzadzen.sanitarnych
Technik.urzadzen.sanitarnych
 
Technik.mechatronik 311[50] z3.01_u
Technik.mechatronik 311[50] z3.01_uTechnik.mechatronik 311[50] z3.01_u
Technik.mechatronik 311[50] z3.01_u
 
24. Eksploatowanie uniwersalnych przyrządów pomiarowych
24. Eksploatowanie uniwersalnych przyrządów pomiarowych24. Eksploatowanie uniwersalnych przyrządów pomiarowych
24. Eksploatowanie uniwersalnych przyrządów pomiarowych
 
Technik.technologii.drewna 311[32] o1.05_u
Technik.technologii.drewna 311[32] o1.05_uTechnik.technologii.drewna 311[32] o1.05_u
Technik.technologii.drewna 311[32] o1.05_u
 
5. Montowanie układów analogowych i pomiary ich parametrów
5. Montowanie układów analogowych i pomiary ich parametrów5. Montowanie układów analogowych i pomiary ich parametrów
5. Montowanie układów analogowych i pomiary ich parametrów
 
Slusarz 722[03] o1.03_u
Slusarz 722[03] o1.03_uSlusarz 722[03] o1.03_u
Slusarz 722[03] o1.03_u
 

More from Lukas Pobocha

3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennego3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennegoLukas Pobocha
 
2. badanie obwodów prądu stałego
2. badanie obwodów prądu stałego2. badanie obwodów prądu stałego
2. badanie obwodów prądu stałegoLukas Pobocha
 
1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracy1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracyLukas Pobocha
 
1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracy1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracyLukas Pobocha
 
2. Badanie obwodów prądu stałego
2. Badanie obwodów prądu stałego2. Badanie obwodów prądu stałego
2. Badanie obwodów prądu stałegoLukas Pobocha
 
3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennego3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennegoLukas Pobocha
 
4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...
4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...
4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...Lukas Pobocha
 
8. Badanie wzmacniaczy tranzystorowych
8. Badanie wzmacniaczy tranzystorowych8. Badanie wzmacniaczy tranzystorowych
8. Badanie wzmacniaczy tranzystorowychLukas Pobocha
 
15. Badanie układów transmisji sygnałów
15. Badanie układów transmisji sygnałów15. Badanie układów transmisji sygnałów
15. Badanie układów transmisji sygnałówLukas Pobocha
 
20. Badanie regulatorów nieliniowych
20. Badanie regulatorów nieliniowych20. Badanie regulatorów nieliniowych
20. Badanie regulatorów nieliniowychLukas Pobocha
 

More from Lukas Pobocha (10)

3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennego3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennego
 
2. badanie obwodów prądu stałego
2. badanie obwodów prądu stałego2. badanie obwodów prądu stałego
2. badanie obwodów prądu stałego
 
1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracy1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracy
 
1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracy1. Przygotowanie do bezpiecznej pracy
1. Przygotowanie do bezpiecznej pracy
 
2. Badanie obwodów prądu stałego
2. Badanie obwodów prądu stałego2. Badanie obwodów prądu stałego
2. Badanie obwodów prądu stałego
 
3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennego3. Badanie obwodów prądu przemiennego
3. Badanie obwodów prądu przemiennego
 
4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...
4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...
4. Analizowanie działania oraz stosowanie podstawowych maszyn i urządzeń elek...
 
8. Badanie wzmacniaczy tranzystorowych
8. Badanie wzmacniaczy tranzystorowych8. Badanie wzmacniaczy tranzystorowych
8. Badanie wzmacniaczy tranzystorowych
 
15. Badanie układów transmisji sygnałów
15. Badanie układów transmisji sygnałów15. Badanie układów transmisji sygnałów
15. Badanie układów transmisji sygnałów
 
20. Badanie regulatorów nieliniowych
20. Badanie regulatorów nieliniowych20. Badanie regulatorów nieliniowych
20. Badanie regulatorów nieliniowych
 

22. Badanie modułów wewnętrznych mikrokontrolera

  • 1. „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
  • 2. „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
  • 3. „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
  • 4. „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
  • 5. „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.
  • 6. „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
  • 7. „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.
  • 8. „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.
  • 9. „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 TC/ M1 M0 GATE TC/ M1 M0 T1 T0 znaczenie bitów: M1,M0– ustawienie trybu pracy: 00- tryb 0, 01- tryb 1, 10– tryb 2, 11– tryb 3. TC/ – realizowana funkcja: TC/ =1– funkcja licznika impulsów zewnętrznych, TC/ =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.
  • 10. „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 213 =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 216 =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 28 =256. Rys. 3 Układ czasowy T0 w trybie 2: [5,s.38]
  • 11. „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 ( TC/ =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 ( TC/ =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 fXTAL/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.
  • 12. „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
  • 13. „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
  • 14. „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.
  • 15. „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 fXTAL/12, T2PS T2PS=1 – taktowanie licznika sygnałem fXTAL/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
  • 16. „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,
  • 17. „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,
  • 18. „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.
  • 19. „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? ¨ ¨
  • 20. „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ą fXTAL/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
  • 21. „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
  • 22. „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: fOT1/32 gdy SMOD=0 lub fOT1/64 gdy SMOD=1, gdzie fOT1– częstotliwość przepełnienia licznika T1, SMOD– siódmy bit w rejestrze PCON. fOT1= TH1-256 fT1 gdzie fT1 oznacza częstotliwość impulsów zliczanych przez licznik T1, czyli fT1= fXTAL/12. Przykładowe wartości, jakie należy wpisać do TH1, gdy licznik T1 pracuje jako czasomierz w trybie 2, a fXTAL= 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
  • 23. „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,
  • 24. „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.
  • 25. „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? ¨ ¨
  • 26. „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,
  • 27. „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 = 12 VV ΔU 8 IntAGNDIntAREF − − = 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 VIntAREF napięcie VIntAGND przy czym: VIntAREF – górne wewnętrzne napięcie odniesienia VIntAGND – dolne wewnętrzne napięcie odniesienia Napięcia te tworzone są przez podział różnicy napięć VAREF i VAGND zgodnie z wzorami: ( )AGNDAREF 7..4 AGNDIntAREF VV 16 DAPR VV −+= ( )AGNDAREF 3..0 AGNDIntAGND VV 16 DAPR VV −+= musi być spełniony warunek: VIntAREF– VIntAGND>1V, stąd DAPR7..4 > 3h i DAPR3..0 < Ch zakładając napięcia odniesienia: VAREF=5V i VAGND=0V: 5V 16 DAPR V 7..4 IntAREF ⋅= 5V 16 DAPR V 7..4 IntAGND ⋅= np. zawartość rejestru DAPR=A4h: V3,125 16 50V 5V 16 10 VIntAREF ==⋅=
  • 28. „Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 27 V1,25 16 20V 5V 16 4 VIntAGND ==⋅= Czyli dla DAPR=A4h zakres napięć: 1,25V–3,125V Tabela 6 Wybór podzakresów pomiarowych: podzakres pomiarowy DAPR7..4 [V] VIntAREF DAPR3..0 [V] VIntAGND 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 0V5V 12 VV ΔU 8 IntAGNDIntAREF = − = − − = przy pomiarze w zawężonym zakresie np. 0–1,25V: V0049,0 255 0V1,25V 12 VV U 8 IntAGNDIntAREF = − = − − =∆ 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:
  • 29. „Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 28 − napięcia VIntAREF i VIntAGND muszą być dołączone do wyprowadzeń mikrokontrolera, jeżeli napięcia VIntAREF i VIntAGND są dołączone do napięć zasilających mikrokontroler VCC i VSS, to muszą spełniać warunek: 0,2V,VV %5VV SSIntAGND CCIntAREF ±= ±= − minimalna różnica napięć 1VVV IntAGNDIntAREF ≥− , − 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ę . UREF UGND 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.
  • 30. „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,
  • 31. „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? ¨ ¨
  • 32. „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:
  • 33. „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.
  • 34. „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
  • 35. „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
  • 36. „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?
  • 37. „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. priorytet 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
  • 38. „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ń? ¨ ¨
  • 39. „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
  • 40. „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.
  • 41. „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.
  • 42. „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.
  • 43. „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
  • 44. „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.
  • 45. „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