Badanie modułów wewnętrznych mikrokontrolera

background image

„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

background image

„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

background image

„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

background image

„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

background image

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

background image

„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

background image

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

background image

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

background image

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

8

4. MATERIAŁ NAUCZANIA

4.1. Układy czasowe T0, T1 i T2

4.1.1. Materiał nauczania

Jednym z podstawowych rodzajów układów peryferyjnych umieszczanych wewnątrz

mikrokontrolera są układy czasowo licznikowe. Układy takie zliczają impulsy zewnętrzne,
spełniając funkcję licznika (counter) lub impulsy wewnętrzne w celu odmierzania opóźnień
lub generowania przebiegów o zadanej częstotliwości i wypełnieniu, spełniają wówczas role
czasomierza (timer).

Mikrokontrolery rodziny ’51 są wyposażone w dwa 16– bitowe układy czasowe. Mogą

one zliczać impulsy zegarowe lub zewnętrzne doprowadzane do wejść T0–P3.4 lub T1–
P3.5. Liczniki mogą pracować w jednym z czterech trybów.
W celu programowego sterowania układów czasowych stosowane są rejestry TMOD (adres
89H) i TCON (adres 88H– dostępny bitowo).
TMOD:

GATE

T

C/

M1

M0

GATE

T

C/

M1

M0

T1

T0


znaczenie bitów:
M1,M0– ustawienie trybu pracy:

00- tryb 0,
01- tryb 1,
10– tryb 2,
11– tryb 3.

T

C/ – realizowana funkcja:

T

C/ =1– funkcja licznika impulsów zewnętrznych,

T

C/ =0– funkcja czasomierza.

GATE– uaktywnienie bramkowania zliczania zewnętrznym sygnałem INT0 lub INT1

np. zaprogramowanie T0 zliczającego impulsy wewnętrzne w trybie pracy 2, a licznika T1
zliczającego impulsy zewnętrzne w trybie 1, wymaga wpisania do rejestru TMOD
następującego słowa:

0

0

1

0

0

1

0

1


TCON:

TF1

TR1

TF0

TR0

bity związane z przerwaniami

zewnętrznymi

znaczenie bitów:
TF1– bit przepełnienia od licznika T1, wywołuje przerwanie,
TR1– bit włączający (1) lub wyłączający (0) licznik T1,
TF0– bit przepełnienia od licznika T0, wywołuje przerwanie,
TR0– bit włączający (1) lub wyłączający (0) licznik T0.

background image

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

9

Tryby pracy układów czasowo– licznikowych:
Tryb 0– układ czasowy pracuje jako 13–bitowy licznik/ czasomierz liczący w przód,
po przepełnieniu (same jedynki) ustawia znacznik TFi i liczy dalej od 0, pojemność licznika
2

13

=8192.

Rys. 1 Układ czasowy T0 w trybie 0: [5,s.37]

Tryb 1– układ czasowy pracuje tak jak w trybie 0, ale jako licznik/ czasomierz 16– bitowy,
pojemność licznika 2

16

=65536.

Rys. 2 Układ czasowy T0 w trybie 1: [5,s.37]

Tryb 2– praca z autodoładowaniem – liczy tylko część TLi (8– bitowy), część THi
przechowuje wartość początkową, która jest przepisywana do części TLi po każdorazowym
przepełnieniu licznika, jednocześnie ustawiany jest znacznik TFi, pojemność licznika 2

8

=256.

R

ys. 3 Układ czasowy T0 w trybie 2: [5,s.38]


background image

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

10

Tryb 3– jest różny dla liczników T0 i T1. Licznik T0 pracuje jako dwa niezależne liczniki
8– bitowe TH0 i TL0 (tak jak w trybie 0 i 1), Część TL0 jest sterowana bitami sterującymi
związanymi z licznikiem T1, a część TH0– z licznikiem T0; tryb ten jest używany wówczas,
gdy licznik T1 jest wykorzystany do taktowania transmisji szeregowej, a potrzebne są dwa
niezależne liczniki.

Rys. 4 Układ czasowy T0 w trybie 3 [5,s.38]

Jeżeli realizowana jest funkcja czasomierza (

T

C/ =0), to zawartość licznika jest

zwiększana w każdym cyklu maszynowym. Cykl maszynowy jest wykonywany w ciągu 12
taktów zegarowych.

Jeżeli realizowana jest funkcja licznika (

T

C/ =1) odpowiednie wejście T0 lub T1 jest

próbkowane w każdym cyklu maszynowym. Jeżeli w dwóch kolejnych próbkach zostanie
wykryta zmiana 1 na 0 na wejściu (opadające zbocze impulsu) to w następnym cyklu
maszynowym nastąpi zwiększenie zawartości licznika o 1. Do wykrycia zmiany na wejściu
potrzeba 2 cykli maszynowych, czyli maksymalna częstotliwość zliczanych impulsów wynosi
f

XTAL

/24.


W niektórych sytuacjach przydatne jest zastosowanie mikrokontrolera wyposażonego

w dodatkowy układ czasowy T2. Taka konieczność pojawia się na przykład wtedy, kiedy
licznik T1 taktuje transmisję szeregową, a potrzebne są 2 dodatkowe liczniki. Zamiast
korzystać z trybu 3 pracy licznika T0 można wykorzystać dodatkowy licznik T2. Licznik T2
posiada dodatkowo kilka bardzo użytecznych funkcji, które zostaną opisane poniżej.
Układ czasowo– licznikowy T2 jest dodatkowym zasobem wielu mikrokontrolerów
rodziny ’51, na przykład mikrokontrolera SAB 80C535. Oprócz układu czasowego T2
mikrokontroler ten, w stosunku do podstawowej rodziny ’51, posiada dodatkowe porty
równoległe oraz wbudowany przetwornik A/C. W związku z dodatkowymi zasobami
rozbudowany został również układ przerwań. Będzie o tym mowa w dalszej części poradnika.







background image

„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

background image

„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

background image

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

background image

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

14

Znacznik ten musi być kasowany programowo ponieważ to samo przerwanie może być
również wywołane zewnętrznym sygnałem doprowadzonym do wejścia P1.5/T2EX
– ustawiany jest wówczas znacznik EXF2.
Programowanie pracy licznika T2 dokonywane jest przez wpis odpowiedniej wartości
do rejestru T2CON:
T2PS

I3FR

I2FR

T2R1

T2R0

T2CM

T2I1

T2I0

– włączenie dodatkowego dzielnika wstępnego dla wewnętrznego źródła
taktowania,
T2PS=0

– taktowanie licznika sygnałem f

XTAL

/12,

T2PS

T2PS=1

– taktowanie licznika sygnałem f

XTAL

/24,

– wybór aktywnego zbocza sygnału przerwania zewnętrznego INT3#, wyjścia
komparatora CRC, wpisu wartości początkowej,
I3FR=0

– zbocze opadające,

I3FR

I3FR=1

– zbocze narastające,

I2FR

– w T2 nie używany,
– wybór trybu autodoładowania licznika,
0x

– zablokowane funkcje autodoładowania,

10

– tryb 0 autodoładowania,

T2R1, T2R0

11

– tryb 1 autodoładowania,

– wybór trybu porównywania,
T2CM=0 – tryb 0,

T2CM

T2CM=1 – tryb 1,
wybór źródła sygnału taktującego,
00

– zatrzymanie zliczania,

01

– taktowanie sygnałem wewnętrznym,

10

– taktowanie sygnałem zewnętrznym,

T2I1, T2I0

11

– bramkowanie wewnętrznego sygnału taktującego (blokowanie
licznika niskim poziomem sygnału doprowadzonego do P1.7).


Programowanie trybów pracy rejestrów CRC, CC1, CC2, CC3 jest dokonywane w rejestrze
CCEN:

COCAH3 COCAL3 COCAH2 COCAL2 COCAH1 COCAL1 COCAH0 COCAL0


Tabela 2 Sterowanie komparatorami

Rejestr

Znacznik

Przeznaczenie

COCAH0 COCAL0

0

0

zablokowany tryb porównywania/ wpisu wartości
początkowej

CRC

0

1

tryb 0 zapamiętywania

1

0

odblokowany tryb porównywania/ wpisu wartości
początkowej

1

1

tryb 1 zapamiętywania

COCAH1 COCAL1

0

0

zablokowany tryb porównywania/ wpisu wartości
początkowej

CC1

0

1

tryb 0 zapamiętywania

1

0

odblokowany tryb porównywania/ wpisu wartości
początkowej

1

1

tryb 1 zapamiętywania

background image

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

background image

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

background image

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

background image

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

¨

¨

background image

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

19

4.2. Port szeregowy

4.2.1. Materiał nauczania

Wbudowany port szeregowy pozwala na wczytywanie danych szeregowych przez

wejście RxD (P3.0) i wysyłanie danych szeregowych przez wyjście TxD (P3.1). Port może
pracować w jednym z czterech trybów:

Tabela 3 Tryby pracy portu szeregowego

Tryb SM0 SM1 Opis

0

0

0

Transmisja synchroniczna, znaki 8–bitowe, taktowane sygnałem
zegarowym

1

0

1

Transmisja asynchroniczna, znaki 8–bitowe, szybkość określona
programowo

2

1

0

Transmisja asynchroniczna, znaki 9–bitowe, szybkość 1/32 lub 1/64
częstotliwości zegara

3

1

1

Transmisja asynchroniczna, znaki 9–bitowe, szybkość określona
programowo

Zamiana postaci danej z szeregowej na równoległą (odbiór danej) lub równoległej

na szeregową (nadawanie danej) oraz sterowanie transmisji odbywa się automatycznie. Dane
odebrane przez port szeregowy są wpisywane do rejestru SBUF, dane wysyłane są pobierane
z rejestru SBUF. Oba rejestry mają tę samą nazwę i są umieszczone w przestrzeni adresowej
pamięci pod tym samym adresem 99H.

SCON– słowo sterujące układu transmisji szeregowej:
SM0

SM1

SM2

REN

TB8

RB8

TI

RI


SM0 SM1

tryb pracy,

SM2

bit sterujący przejściem do komunikacji wieloprocesorowej,

REN

bit zezwolenia na odbiór danych przez port szeregowy, bit ustawiany

i zerowany programowo ,

TB8

dziewiąty bit nadawanego słowa,

RB8

dziewiąty bit odbieranego słowa,

TI

znacznik zakończenia nadawania danych, może wywołać przerwanie,

kasowany programowo,

RI

znacznik zakończenia odbierania danych, może wywołać przerwanie,

kasowany programowo.


Tryby pracy:
Tryb 0

Transmisja synchroniczna, przesyłane są słowa 8–bitowe ze stałą szybkością f

XTAL

/12.

Nadanie danej: wpis danej do rejestru SBUF inicjuje nadawanie danej szeregowo przez linię
P3.1 (RxD) oraz taktu przez P3.0 (TxD), po wysłaniu 8 bitów ustawiany jest bit TI – sygnał
dla procesora, że słowo zostało wysłane. Bit TI może generować przerwanie.
Odbiór danej: odczyt danej przez linię P3.1 (RxD) odbywa się, gdy REN=1 i RI=0
(poprzednio odebrana dana została odczytana przez procesor), bity danej są wpisywane
do rejestru przesuwnego, a po zgromadzeniu całego słowa jest ono przepisywane do rejestru

background image

„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

background image

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

21

częstotliwości przez 16 (podzielnika częstotliwości). Stan linii RxD jest próbkowany
trzykrotnie w każdym cyklu (podczas odbioru pojedynczego bitu), podczas gdy zawartość
licznika wynosi 7, 8 i 9. Wartość logiczna na wejściu RxD, która wystąpiła przynajmniej
w dwóch próbkach jest wpisywana jako wartość odebranego bitu do rejestru przesuwnego.
Po odebraniu całego słowa może ono zostać przepisane do rejestru SBUF. Warunkiem
przepisania słowa jest wystąpienie prawidłowego bitu stopu oraz RI=0, które oznacza,
że procesor odebrał poprzednie słowo. Po przepisaniu słowa do SBUF ustawiany jest bit RI,
który jest informacją dla procesora, że może odebrać słowo z SBUF. Bit ten może być
odpytany programowo lub może być źródłem przerwania od portu szeregowego.

Rys 10– Zależności czasowe operacji nadawania i odbioru dla łącza szeregowego pracującego w trybie 1

[2,s.71]

W trybie 1 szybkość transmisji jest ustalana programowo przez wpis wartości do licznika T1
(w niektórych procesorach może to również być licznik T2) pracującego jako czasomierz

(C/ T =0) w trybie 2 (z autodoładowaniem).
Szybkość transmisji jest równa:
f

OT1

/32 gdy SMOD=0 lub f

OT1

/64 gdy SMOD=1,

gdzie f

OT1

– częstotliwość przepełnienia licznika T1, SMOD– siódmy bit w rejestrze PCON.

f

OT1=

TH1

-

256

f

T1

gdzie f

T1

oznacza częstotliwość impulsów zliczanych przez licznik T1, czyli f

T1

= f

XTAL

/12.

Przykładowe wartości, jakie należy wpisać do TH1, gdy licznik T1 pracuje jako czasomierz
w trybie 2, a f

XTAL=

12 MHz, SMOD=0 zostały przedstawione w tabeli 4:

Tabela 4 Ustalanie szybkości transmisji

Szybkość transmisji

w bodach

Wartość początkowa

(hex)

9600

FD

4800

FA

2400

F4

1200

E8

600

D0

background image

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

background image

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




background image

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

¨

¨

background image

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

background image

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

26

BSY – wskazuje aktualny stan przetwornika, bit tylko do odczytu, ustawiany i kasowany
sprzętowo: BSY=0 – przetwornik po zakończeniu przetwarzania, BSY=1– przetwornik
w trakcie przetwarzania,
ADM – określa rodzaj przetwarzania: ADM=0 – pojedynczy pomiar, ADM=1– seria
pomiarów, aż do chwili gdy ADM=0,
MX2, MX1, MX0 – wybór kanału pomiarowego.


Tabela 5
Wybór kanału pomiarowego:

MX2 MX1 MX0 Kanał

Wejście

0

0

0

0

AN0/P6.0

0

0

1

1

AN1/P6.1

0

1

0

2

AN2/P6.2

0

1

1

3

AN3/P6.3

1

0

0

4

AN4/P6.4

1

0

1

5

AN5/P6.5

1

1

0

6

AN6/P6.6

1

1

1

7

AN7/P6.7


ADDAT (adres 0D9h) – wynik przetwarzania
W rejestrze ADDAT przechowywana jest całkowita wielokrotność poziomów kwantowania:

ΔU

U

ADDAT

x

=

1

2

V

V

ΔU

8

IntAGND

IntAREF

=

DAPR (adres 0DAh) – wybór zakresu przetwarzania, wpis wartości do tego rejestru
rozpoczyna pomiar i przetwarzanie ac na wybranym kanale.

bit 7

bit 6

bit 5

bit 4

bit 3

bit 2

bit 1

bit 0

napięcie V

IntAREF

napięcie V

IntAGND

przy czym:
V

IntAREF

– górne wewnętrzne napięcie odniesienia

V

IntAGND

– dolne wewnętrzne napięcie odniesienia

Napięcia te tworzone są przez podział różnicy napięć V

AREF

i V

AGND

zgodnie z wzorami:

(

)

AGND

AREF

7..4

AGND

IntAREF

V

V

16

DAPR

V

V

+

=

(

)

AGND

AREF

3..0

AGND

IntAGND

V

V

16

DAPR

V

V

+

=

musi być spełniony warunek: V

IntAREF

– V

IntAGND

>1V, stąd DAPR

7..4

> 3h i DAPR

3..0

< Ch

zakładając napięcia odniesienia: V

AREF

=5V i V

AGND

=0V:

5V

16

DAPR

V

7..4

IntAREF

=

5V

16

DAPR

V

7..4

IntAGND

=

np. zawartość rejestru DAPR=A4h:

V

3,125

16

50V

5V

16

10

V

IntAREF

=

=

=

background image

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

27

V

1,25

16

20V

5V

16

4

V

IntAGND

=

=

=

Czyli dla DAPR=A4h zakres napięć: 1,25V–3,125V

Tabela 6 Wybór podzakresów pomiarowych:

podzakres

pomiarowy

DAPR

7..4

[V]

V

IntAREF

DAPR

3..0

[V]

V

IntAGND

0

0000

5

0000

0

1

0001

0001

0,3125

2

0010

0010

0,625

3

0011

0011

0,9375

4

0100

1,25

0100

1,25

5

0101

1,5625

0101

1,5625

6

0110

1,875

0110

1,875

7

0111

2,1875

0111

2,1875

8

1000

2,5

1000

2,5

9

1001

2,8125

1001

2,8125

10

1010

3,125

1010

3,125

11

1011

3,4375

1011

3,4375

12

1100

3,75

1100

3,75

13

1101

4,0625

1101

14

1110

4,375

1110

15

1111

4,6875

1111


Dokładność przetwarzania przetwornika w pełnym zakresie programowym wynosi:

0,0196V

255

0V

5V

1

2

V

V

ΔU

8

IntAGND

IntAREF

=

=

=

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

V

0049

,

0

255

0V

1,25V

1

2

V

V

U

8

IntAGND

IntAREF

=

=

=

Jest to prosty sposób na zwiększenie dokładności przetwornika o dodatkowe dwa bity (wynik
10–bitowy). Należy dokonać pomiaru w pełnym zakresie pomiarowym. Na podstawie
uzyskanego wyniku określić podzakres pomiarowy i dokonać drugiego pomiaru.
Pomiar 10–bitowy:

1. Pierwszy pomiar w zakresie 0–5V
2. Na podstawie 2 najstarszych bitów wyniku należy ustalić podzakres pomiarowy:

Tabela 7 Podzakres pomiarowy dla pomiaru 10– bitowego

dwa najstarsze bity wyniku

zakres pomiarowy

DAPR

00

0–1,25V

40H

01

1,25V–2,5V

84H

10

2.5V–3,75V

C8H

11

3,75V–5V

0CH

3. Do drugiego pomiaru należy wybrać odpowiedni podzakres i właściwą wartość

wpisać do DAPR.

4. Drugi pomiar w wybranym podzakresie pozwoli ustalić 8 młodszych bitów wyniku.


Dla prawidłowej pracy przetwornika A/C wymagane jest spełnienie następujących warunków:

background image

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

28

napięcia V

IntAREF

i V

IntAGND

muszą być dołączone do wyprowadzeń mikrokontrolera, jeżeli

napięcia V

IntAREF

i V

IntAGND

są dołączone do napięć zasilających mikrokontroler V

CC

i V

SS

,

to muszą spełniać warunek:

0,2V,

V

V

%

5

V

V

SS

IntAGND

CC

IntAREF

±

=

±

=

minimalna różnica napięć

1V

V

V

IntAGND

IntAREF

,

rezystancja wewnętrzna źródła mierzonego napięcia i napięcia wzorcowego nie może być

większa niż 5k

.

4.3.2. Pytania sprawdzające


Odpowiadając na pytania, sprawdzisz, czy jesteś przygotowany do wykonania ćwiczeń.

1. W jakim zakresie można mierzyć napięcia używając przetwornika A/C?
2. Ilu bitowy jest przetwornik A/C w mikrokontrolerze SAB80C535?
3. Jaki jest kwant napięcia w tym przetworniku podczas pomiaru w pełnym zakresie

pomiarowym?

4. W jaki sposób można wybrać kanał pomiarowy?
5. Jak rozpocząć pomiary?
6. Jak zatrzymać serię pomiarów?
7. W jaki sposób można zwiększyć dokładność pomiaru, jeżeli wiemy, że zakres napięć

mierzonych jest mniejszy niż 0–5V?

8. Z jakiego rejestru należy pobrać wynik pomiaru?
9. Jak sprawdzić, czy przetwornik zakończył przetwarzanie?

4.3.3. Ćwiczenia

Ćwiczenie 1

Uzupełnij tabelę .

U

REF

U

GND

DAPR

wartość

analogowa

napięcia

wartość cyfrowa

napięcia

5V

0V

3,2 V

3,75 V

2,5V

3,2V

E4H

80H

0AH

4,1 V

4 V

1 V

72H

Sposób wykonania ćwiczenia

Aby wykonać ćwiczenie powinieneś:

1) dokonać obliczeń kwantów napięcia na podstawie wybranego podzakresu pomiarowego

korzystając z danych napięć odniesienia lub zawartości rejestru DAPR,

2) obliczyć wartość analogową (dziesiętnie) lub cyfrową (szesnastkowo),
3) na podstawie dwóch pierwszych pozycji w tabeli porównaj dokładność pomiaru w pełnym

zakresie pomiarowym i w odpowiednio dobranym podzakresie pomiarowym, zastanów
się w jaki sposób wynik drugiego pomiaru można przedstawić jako wynik 10–bitowy,

4) zaprezentować efekty swojej pracy,
5) dokonać samooceny.

background image

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

background image

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

¨

¨

background image

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

background image

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


background image

„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

background image

„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

background image

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

background image

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

36

4.4.3. Ćwiczenia

Ćwiczenie 1

Przedstaw na wykresie kolejność obsługi przerwań, gdy IE=10010011b, IP=00000010,

czas trwania każdego podprogramu obsługi przerwania – 4 jednostki.

pr

ior

y

tet

INT0

T0

INT1

T1

port sz.

pr. gł.

t

RI

IE1

TF1, IE0

TI

TF0

Sposób wykonania ćwiczenia

Aby wykonać ćwiczenie powinieneś:

1) na podstawie stanu rejestrów IE określić, które z przerwań są odblokowane i mogą być

przyjęte do obsługi,

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

a które niższy,

3) narysować wykres kolejności obsługi zgłoszeń, uwzględniając kolejne zgłoszenia

i zawartość rejestrów IE i IP,

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

Wyposażenie stanowiska pracy:

– treść zadania dla każdego ucznia
– literatura z rozdziału 6.

Ćwiczenie 2

Zaprogramuj układ przerwań w mikrokontrolerze SAB 80C535 tak, aby obsługiwał

przerwania od licznika T0, przetwornika A/C, portu szeregowego i przerwania zewnętrzne
INT1 i INT5. Przerwanie INT1 może przerwać obsługę każdego przerwania, a przerwanie
INT5 może przerwać obsługę przerwań od licznika T0, przetwornika A/C i portu
szeregowego.



Sposób wykonania ćwiczenia

background image

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

¨

¨

background image

„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

background image

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




background image

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

background image

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

background image

„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

background image

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


background image

„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


Wyszukiwarka

Podobne podstrony:
22 Badanie modułów wewnętrznych mikrokontrolera
Badanie modulow wewnetrznych mi Nieznany (2)
Praktyki - Badanie Modułów Odkształcenia Płytą Stalową, BUDOWNICTWO, Fundamenty, Fundamentowanie i M
Praktyki Badanie Modulow Odksztalcenia Plyta Stalowa
23 Badanie układów zewnętrznych mikrokontrolera
Badanie układów zewnętrznych mikrokontrolera
Badanie wewnętrzne
Raki szyjki macicy, MEDYCYNA VI rok, Choroby wewnętrzne, Wywiad + badanie fizykalne, Interna abstrak
GIN, Badanie przedmiotowe obejmuje badanie zewnętrzne i badanie wewnętrzne przez pochwę
Groźne i niegroźne pałeczki Klebsiella, MEDYCYNA VI rok, Choroby wewnętrzne, Wywiad + badanie fizyka
Badanie wewnętrzne amnioskopia
7 Badania kosztów i korzyści rynku wewnętrznego (2), EKONOMIA, Rok 2, Ekonomia Integracji
Mikroangiopatia cukrzycowa, MEDYCYNA VI rok, Choroby wewnętrzne, Wywiad + badanie fizykalne, Interna
Rak płuca, MEDYCYNA VI rok, Choroby wewnętrzne, Wywiad + badanie fizykalne, Interna abstrakty
KOMPENDIUM ONKOLOGII DZIECIĘCEJ, MEDYCYNA VI rok, Choroby wewnętrzne, Wywiad + badanie fizykalne, In

więcej podobnych podstron