3088


WYDZIAŁ ELEKTRYCZNY POLITECHNIKI LUBELSKIEJ

LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH

Imię i Nazwisko Gajdziński Radosław

Czopek Michał

Grupa ED 5.3

Data wyk. ćwicz. 99.11.09

Numer ćwiczenia

4

Temat ćwiczenia: Timery mikrokontrolera 8051. System przerwań.

Ocena

1. Cel ćwiczenia.

Celem ćwiczenia było zapoznanie się systemem timerów i przerwań mikrokontrolera, a także zapoznanie z zawartością rejestrów sterujących timerami , oraz wpływem zawartości bitów tych rejestrów na tryb pracy timerów.

2. Wykonanie ćwiczenia

Zadanie 1.a

Ustawienia timerów:

Tryb pracy timera 1 - 4 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 0010 praca szybka

stan początkowy T2 = 0000

Przy danych ustawieniach timer zlicza impulsy z klawiatury sekwencyjnej. Rejestr TCON zmienił po naciśnięciu klawisza klawiatury ze stanu 0000 na stan 0100 .Stan wyświetlacza zmienił się w tym momencie o 4 w górę czyli na 0014. Po dalszym naciskaniu klawiszy zauważamy , że wyższy bajt licznika zwiększa się o 1 po zwiększeniu się młodszego bajtu o wartość 20H .Początkowe wartości wskazywane przez wyświetlacz : 0010 ; 0014 ; 0018 ; 001C ; 0120 ; 0124 ; 0128 ; 012C ... itd.

Zadanie 1.b

Ustawienia timerów:

Tryb pracy timera 1 - 4 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FEFF praca szybka

stan początkowy T2 = 0000

Stan rejestru TCON = 0000 po wciśnięciu klawisza zmienia się na 0100.Na wyświetlaczu obserwujemy kolejno : FFF3 ; FFF7 ; FFFB ; FFFF ; 0020 ; 0024 ; 0028.. ITD.

W tym punkcie obserwujemy przepełnienie licznika w momencie zmiany stanu z FFFF na 0020 zapala się dioda i stan Rej. TCON zmienia się na 1100.

Zadanie 1.c

Ustawienia timerów:

Tryb pracy timera 1 - 4 Tr1 = 0

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FEFF praca szybka

stan początkowy T2 = 0000

Przy powyższych ustawieniach układ nie reaguje na nic - żaden timer nie startuje.

Zadanie 1.d

Ustawienia timerów:

Tryb pracy timera 1 - 0 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 0000 praca wolna

stan początkowy T2 = 0000

Licznik liczy co 4. Zwiększenie TH1 następuje co każde 20H odliczone na TL1. Timer nie reaguje na klawiaturę.

Zadanie 1.e

Ustawienia timerów:

Tryb pracy timera 1 - 0 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FA00 praca szybka

stan początkowy T2 = 0000

Przepełnienie T1 występuje po osiągnięciu wartości większej od 0000, tzn. gdy wpisana jest wartość 0004 , wtedy też TCOM zmienia się z 0100 na 1100.

Praktycznie można to wytłumaczyć tym , że w programie przez nas używanym wprowadzono opóźnienia czasowe , aby możliwe było odczytywanie danych z wyświetlacza. Tak więc faktycznie TCOM przyjmuje swoją nową wartość jednocześnie z nastąpieniem przepełnienia.

Zadanie 1.f

Ustawienia timerów:

Tryb pracy timera 1 - 0 Tr1 = 0

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FA00 praca szybka

stan początkowy T2 = 0000

Licznik nie zlicza impulsów. ( Wyłączony bo Tr1 = 0 )

Zadanie 2.a

Ustawienia timerów:

Tryb pracy timera 1 - 1 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 0000 praca wolna

stan początkowy T2 = 0000

Stan na wyświetlaczu zmienia się co 4 . TH1 zwiększa się po osiągnięciu przez TL1 wartości FF.

TCOM zmienia się po naciśnięciu klawisza z 0000 na 0001.

Zadanie 2.b

Ustawienia timerów:

Tryb pracy timera 1 - 1 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FE00 praca wolna

stan początkowy T2 = 0000

Obserwujemy sytuację podobną jak w punkcie 2.a tylko po można zaobserwować przepełnienie licznika przez zapalenie diody i ustalenie w TCOM wartości 0011.

Zadanie 2.c

Ustawienia timerów:

Tryb pracy timera 1 - 1 Tr1 = 0

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FE00 praca wolna

stan początkowy T2 = 0000

Licznik nie zlicza.

Zadanie 2.d

Ustawienia timerów:

Tryb pracy timera 1 - 5 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 00DA praca szybka

stan początkowy T2 = 0000

Tryb pracy timera1 = 5 powoduje zliczanie impulsów wprowadzanych z klawiatury , wartość zmienia się co 1. Starszy bit TH1 zmienia swoją wartość po osiągnięciu przez TL1 wartości FF.

Zadanie 2.e

Ustawienia timerów:

Tryb pracy timera 1 - 5 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FFF0 praca szybka

stan początkowy T2 = 0000

Timer zlicza impulsy wprowadzane z klawiatury , każde naciśnięcie zwiększa wartość o 1.

Przepełnienie występuje po wartości FFFF , przy stanie 0000 zapala się dioda .

Zadanie 2.f

Ustawienia timerów:

Tryb pracy timera 1 - 5 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FFF0 praca szybka

stan początkowy T2 = 0000

Nic się nie zmienia.

Zadanie 3.a

Ustawienia timerów:

Tryb pracy timera 1 - 2 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 5511 praca wolna

stan początkowy T2 = 0000

TL1 zmienia się co 4 , TH1 nie zmienia się .Przy stanie 5556 zapala się dioda , przepełnienie sygnalizowane jest przy wartości 555B.

Zadanie 3.b

Ustawienia timerów:

Tryb pracy timera 1 - 4 Tr1 = 0

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = FE00 praca wolna

stan początkowy T2 = 0000

Timer T1 nie odlicza.

Zadanie 3.c

Ustawienia timerów:

Tryb pracy timera 1 - 6 Tr1 = 1

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 55FA praca szybka

stan początkowy T2 = 0000

wartość licznika

TCON

55FF

0100

5555

0100

5556

1100

Zliczanie naciskanych klawiszy , licznik zmienia się co jeden.TH1 nie zmienia się. TL1 przed przepełnieniem 55, po przepełnieniu 56.

Zadanie 3.d

Ustawienia timerów:

Tryb pracy timera 1 - 6 Tr1 = 0

Tryb pracy timera 0 - 0 Tr0 = 0

stan początkowy T1 = 55FA praca szybka

stan początkowy T2 = 0000

Brak reakcji.

Zadanie 4.a , 4.b - brak reakcji timerów.

Zadanie 5,6,7 są podobne odpowiednio do 1,2,3 z tą różnicą że timer T1 nie reaguje na naciskanie klawiszy sekwencyjnych , tzn. punkty 5.a ... 7.d nie powodują uruchomienia timera T0.

Zadanie 8

Ustawienia timerów:

Tryb pracy timera 1 - 0 Tr1 = 1

Tryb pracy timera 0 - 3 Tr0 = 0

stan początkowy T1 = FFE0 praca wolna

stan początkowy T2 = 0000

Wartość bitu TF1 nie sygnalizuje przepełnienia timera T1. Bit TF1 sygnalizuje przepełnienie po zmianie z FC na 00. Licznik 0 w tym trybie zachowuje się tak jakgdyby oba jego bajty były oddziełnymi licznikami : zlicza o 0404 tzn. oba bajty zwiększa o 4.Wartość maksymalną licznik 0 osiąga przy wartości FCFC , dla T1 trudno zauważyć maksymalną wartość. Po przepełnieniu zapalane są obie diody.Dla zmiany trybu T1 na 4 , sygnalizacja przepełnienia odbywa się za pomocą diod ale nie jednocześnie. Najpierw dioda sygnalizująca przep. T1 , a następnie druga sygnalizująca przep. T0.



Wyszukiwarka

Podobne podstrony:
010 Dzieje komunikacji międzyludzkiej IIid 3088
3088
3088
3088
3088
3088

więcej podobnych podstron