45
„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

22. Badanie modułów wewnętrznych mikrokontrolera

Embed Size (px)

Citation preview

Page 1: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 2: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 3: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 4: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 5: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 6: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 7: 22. Badanie modułów wewnę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.

Page 8: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 9: 22. Badanie modułów wewnętrznych 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.

Page 10: 22. Badanie modułów wewnętrznych mikrokontrolera

„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]

Page 11: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 12: 22. Badanie modułów wewnętrznych mikrokontrolera

„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 przetwornik A/C

T2

P6 P5 P4

we ac

we/wy

we/wy

T0

T1

RAM 256x8

CPU 8051

UART

ROM 8kx8

P0

P1

P2

P3

we/wy we/wy we/wy we/wy

Page 13: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 14: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 15: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 16: 22. Badanie modułów wewnętrznych mikrokontrolera

„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,

Page 17: 22. Badanie modułów wewnętrznych mikrokontrolera

„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,

Page 18: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 19: 22. Badanie modułów wewnętrznych mikrokontrolera

„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? ¨ ¨

Page 20: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 21: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 22: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 23: 22. Badanie modułów wewnętrznych mikrokontrolera

„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,

Page 24: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 25: 22. Badanie modułów wewnętrznych mikrokontrolera

„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? ¨ ¨

Page 26: 22. Badanie modułów wewnętrznych mikrokontrolera

„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,

Page 27: 22. Badanie modułów wewnętrznych mikrokontrolera

„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:

ΔUUADDAT x=

12VVΔ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:

( )AGNDAREF7..4

AGNDIntAREF VV16

DAPRVV −+=

( )AGNDAREF3..0

AGNDIntAGND VV16

DAPRVV −+=

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:

5V16

DAPRV 7..4IntAREF ⋅=

5V16

DAPRV 7..4IntAGND ⋅=

np. zawartość rejestru DAPR=A4h:

V 3,12516

50V5V1610VIntAREF ==⋅=

Page 28: 22. Badanie modułów wewnętrznych mikrokontrolera

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 27

V 1,2516

20V5V164VIntAGND ==⋅=

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,0196V255

0V5V12

VVΔU 8IntAGNDIntAREF =

−=

−−

=

przy pomiarze w zawężonym zakresie np. 0–1,25V:

V0049,0255

0V1,25V12

VVU 8IntAGNDIntAREF =

−=

−−

=∆

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:

Page 29: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 30: 22. Badanie modułów wewnętrznych mikrokontrolera

„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,

Page 31: 22. Badanie modułów wewnętrznych mikrokontrolera

„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? ¨ ¨

Page 32: 22. Badanie modułów wewnętrznych mikrokontrolera

„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:

Page 33: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 34: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 35: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 36: 22. Badanie modułów wewnętrznych mikrokontrolera

„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?

Page 37: 22. Badanie modułów wewnętrznych mikrokontrolera

„Projekt współfinansowany ze środków Europejskiego Funduszu Społecznego” 36

4.4.3. Ćwiczenia Ćwiczenie 1

Przedstaw na wykresie kolejność obsługi przerwań, gdy IE=10010011b, IP=00000010, czas trwania każdego podprogramu obsługi przerwania – 4 jednostki. pr

iory

tet

INT0 T0 INT1 T1 port sz. pr. gł.

t RI IE1 TF1, IE0 TI TF0

Sposób wykonania ćwiczenia Aby wykonać ćwiczenie powinieneś:

1) na podstawie stanu rejestrów IE określić, które z przerwań są odblokowane i mogą być przyjęte do obsługi,

2) na podstawie stanu rejestru IP określić, które z przerwań mają priorytet wyższy, a które niższy,

3) narysować wykres kolejności obsługi zgłoszeń, uwzględniając kolejne zgłoszenia i zawartość rejestrów IE i IP,

4) zaprezentować wykonane ćwiczenie, 5) dokonać oceny poprawności i estetyki wykonanego ćwiczenia.

Wyposażenie stanowiska pracy: – treść zadania dla każdego ucznia – literatura z rozdziału 6. Ćwiczenie 2

Zaprogramuj układ przerwań w mikrokontrolerze SAB 80C535 tak, aby obsługiwał przerwania od licznika T0, przetwornika A/C, portu szeregowego i przerwania zewnętrzne INT1 i INT5. Przerwanie INT1 może przerwać obsługę każdego przerwania, a przerwanie INT5 może przerwać obsługę przerwań od licznika T0, przetwornika A/C i portu szeregowego.

Sposób wykonania ćwiczenia

Page 38: 22. Badanie modułów wewnętrznych mikrokontrolera

„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ń? ¨ ¨

Page 39: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 40: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 41: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 42: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 43: 22. Badanie modułów wewnętrznych mikrokontrolera

„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

Page 44: 22. Badanie modułów wewnętrznych mikrokontrolera

„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.

Page 45: 22. Badanie modułów wewnętrznych mikrokontrolera

„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