5115


WYDZIAŁ ELEKTRYCZNY POLITECHNIKI LUBELSKIEJ

LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH

Imię i Nazwisko: SZYMANEK MARIUSZ

Grupa ED 5.3

Data wyk. ćwicz. 30.10.96

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 3

„odliczanie czasu w timerze mikrokontrolera”

Uzupełnić treść programu l11_p10.hex tak , aby timer 0 powtarzał odmierzanie odcinka czasu o długości 50 ms. Zadaniem programu jest włączenie i wyłączenie LED co 20*50 ms.=1 s.

Uwaga: Okres zegara zliczanego przez timery wynosi 1.085 μs.

Po dokonaniu korekty ,asemblacji program wykonujący to zadanie ,gotowy do uruchomienia na DSM-51 ma postać:

;*************************************************

;ĆWICZENIE 3 -TIMERY MIKROKONTROLERA

;ZADANIE 3 - ODLICZANIE CZASU

*************************************************

;LED EQU P1.7

;**************USTAWIENIE TIMERÓW************

;TMOD_SET EQU 01H

;50[ms]=50000[μs]*(11.0592[MHz]/12)= 46 080 cykli=180*256

THO_SET EQU 256-180

TLO_SET EQU 0

;*************************************************

LJMP START

ORG 100H

START:

MOV TMOD,#TMOD_SET ;TIMER 0 LICZY CZAS

MOV TH0,#TH0_SET ;TIMER 0 NA 50 ms

MOD TL0,#TL0_SET

SETB TR0 ;START TIMERA

LOOP: ; PĘTLA MRUGANIA DIODY TEST

CPL LED

MOV A,#20 ;ODCZEKAJ CZAS 20*50mS=1s

TIME_N50:

JNB TF0,$ ;CZEKAJ, AŻ TIMER 0 ODLICZY 50MS

MOV TH0,#TH0_SET ; TH0 NA 50MS

CLR TF0 ; ZEROWANIE FLAGI TIMERA 0

DJNZ ACC,TIME_N50 ; ODCZEKANIE N*50MS

SJMP LOOP

Zadanie nr 4

„przerwania, odliczanie czasu w timerze mikrokontrolera”

Uruchom na DSM-51 program l12_p7.hex.Zadaniem programu jest pobieranie znaku 0...7 z klawiatury i wysyłanie na wyświetlacz oraz jednoczesne (w tle) włączanie i wyłączanie LED co okres odmierzany w timerze.

Należy zmodyfikować program tak, aby prawidłowo wprowadzał znaki na wyświetlacz.

;*********************************************

;LEKCJA 12 -SYSTEM PRZERWAŃ 8051

;PRZYKŁAD 7 -TIMERY

;*********************************************

LED EQU P1.7

;**********************************

;TIMER 0

T0_G EQU 0 ;GATE

T0_C EQU 0 ;COUNTER/-TIMER

T0_M EQU 1 ;MODE(0...3)

TIM0 EQU T0_M+T0_C*4+T0_G*8

;TIMER 1

T1_G EQU 0 ;GATE

T1_C EQU 0 ;COUNTER/-TIMER

T1_M EQU 0 ;MODE(0...3)

TIM1 EQU T1_M+T1_C*4+T1_G*8

TMOD_SET EQU TIM0+TIM1*16

;50[ms]=50 000[μs]*(11.0592[MHz]/12)=46 080 cykli=180*256

TH0_SET EQU 256-180

TL0_SET EQU 0

;****************************

LJMP START

;****PRZERWANIE TIMER 0***

ORG 0BH

PUSH PSW ;przechowanie rejestrów

PUSH ACC ;na stosie

MOV TH0,#TH0_SET ;TH0 na 50ms

DJNZ ACC,NO_1SEK ;czy minęło 200ms

CPL LED ; mruganie diody TEST

MOV A,#4 ;czekaj kolejny czas 4*50ms=200ms

NO_1SEK:

POP ACC

POP PSW

RETI

;********************

ORG 100H

START:

MOV TMOD,#TMOD_SET ;timer 0 liczy czas

MOV TH0,#TH0_SET ; timer 0 na 50 ms

MOV TL0,#TLO_SET

SETB TR0 ;start timera 0

LCALL LCD_CLR ;czyści wyświetlacz

SETB EA ; włącz zezwolenie ogólne na przerwanie

SETB ET0 ;włącz zezwolenie na przerwanie od timera 0

MOV R1,#16

LOOP:

;czyta/pisze znak

LCALL WAIT_KEY ;czyta klawisz

ADD A,#30H

MOV R0,#LCDWD

MOVX @R0,A ;znak na wyświetlcz

DJNZ R1,KONIEC

LCALL LCD_CLR

MOV R1,# 16

KONIEC:

SJMP LOOP ; koniec pracy głównego programu

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.

RGOEL\Energo~4.doc

IIIIII

Standardowy

Nagłówek 1

Domyślna czcionka akapitu

drhmms

;0x#-+'`'`.,,RC

AUTOR

KOMENTARZE

DATAUTWORZENIA

CZASEDYCJI

NAZWAPLIKU

ROZMIARPLIKU

SŁOWAKLUCZOWE

OSTATNIOZAPISANYPRZEZ

LICZBAZNAKÓW

LICZBASTRON

LICZBAWYRAZÓW DATADRUKU

PRYWATNE

SPISŁĄCZONYDOK

NUMERWERSJI

DATAZAPISANIA

HASŁOSPISUTREŚCI

SZABLON

HASŁOINDEKSU

WŁAŚCIWOŚĆDOK

ALFABETYCZNA

ARABSKA

JAKWTYTULE

LICZEBGŁÓW

FORMATZNAKU

SŁOWNIE

WIELKĄLITERĄ

SZESNASTKOWA

MAŁELITERY

FORMAT

PORZĄDKOWA

LICZEBPORZ

RZYMSKA

WIELKIELITERY

ROUND

DEFINED

MOD

AVERAGE

OR

PRODUCT

Jadczuk

C:\MOJE\PIOTR\OKL_MIKR.DOC

Jadczuk

C:\MOJE\PIOTR\OKL_MIKR.DOC

Jadczuk

C:\MOJE\PIOTR\OKL_MIKR.DOC

Jadczuk

C:\MOJE\PIOTR\OKL_MIKR.DOC

Jadczuk

C:\MOJE\PIOTR\OKL_MIKR.DOC

Jadczuk

C:\MOJE\PIOTR\4MKR_PIO.DOC

Jadczuk

C:\A_PIOTR\4MKR_PIO.DOC

Jadczuk

C:\A_PIOTR\4MKR_PIO.DOC

ADAM JADCZUK

C:\MOJE\ADAM\4MKR_PIO.DOC

Rafał Pogonowski.D:\UZYTKI\MAGAZYN\SPRAWOZD\MIKROP\4MKR_PIO.DOC˙@Star LC-20

STAR9E

Star LC-20

Star LC-20

Star LC-20

Star LC-20

Star LC-20

Times New Roman CE

Symbol

Arial CE

metrologia ćw.11 sem.V

Pomiar mocy prądu jednofazowego

Jadczuk

Rafał Pogonowski

.NIC\ACCNT\Nt35.txt

TUZYTKI\NT40.INS\DRVLIB.NIC\NIWRAS\Release.txt

Root Entry

WordDocument

WordDocument

CompObj

CompObj

ąSummaryInformation

SummaryInformation

Dokument Microsoft Word

MSWordDoc

Word.Document.6

metrologia ćw.11 sem.V

Pomiar mocy prądu jednofazowego

Jadczuk

Normal

Rafał Pogonowski

DocumentSummaryInformation

DocumentSummaryInformation

metrologia ćw.11 sem.V

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Auto_cze.xls @

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Szczepan.xls—@

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Aut111.xlsf

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Auto11.xlsŢha@

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Bhprob.xlsU t@

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Rtest50.xls÷'@

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Silchar.xls´Ŕ@

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Twn1.xlsż

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Twn18.xls

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Twn4.xlsż

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Twn5a.xls

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Z2.xls

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Zab1.xlsż

UZYTKI\MAGAZYN\SPRAWOZD\SPR_XLS\Zabez.xls

TUZYTKI\NT40.INS\Eula.txt

TUZYTKI\NT40.INS\Excel.xl_

TUZYTKI\NT40.INS\Excel4.xl_X

TUZYTKI\NT40.INS\Probrep.txt

TUZYTKI\NT40.INS\Setup.txt

TUZYTKI\NT40.INS\Unattend.txt

TUZYTKI\NT40.INS\DRVLIB.NIC\ACCNT\Nt35.txt

TUZYTKI\NT40.INS\DRVLIB.NIC\NIWRAS\Release.txtÜč»

TUZYTKI\NT40.INS\DRVLIB.NIC\OCTK32\Readme.txtfH

TUZYTKI\NT40.INS\DRVLIB.NIC\QUADENET\Readme.txtč»

TUZYTKI\NT40.INS\DRVLIB.NIC\SKETHNT\Skethnt.txtč»

TUZYTKI\NT40.INS\DRVLIB.NIC\SKFENT\Skfent.txtf@

TUZYTKI\NT40.INS\DRVLIB.NIC\SKFINT\Skfint.txtf@

TUZYTKI\NT40.INS\DRVLIB.NIC\SKFMNT\Skfmnt.txtf@

TUZYTKI\NT40.INS\DRVLIB.NIC\SKFPNT\Skfpnt.txtfH

UZYTKI\NT40.INS\DRVLIB.NIC\SMCPCI\Install.docÜč»

TUZYTKI\NT40.INS\DRVLIB.NIC\SMCPCI\Readme.txtfH

UZYTKI\NT40.INS\DRVLIB.NIC\SMCPCI\Release.docÜč»

TUZYTKI\NT40.INS\DRVLIB.NIC\TKXP16\Readme.txtf@

TUZYTKI\NT40.INS\DRVLIB.NIC\TKXP32\Readme.txtfH

TUZYTKI\NT40.INS\DRVLIB.NIC\USRBRI\Rlsnotes.txtč»

TUZYTKI\NT40.INS\DRVLIB.NIC\USRBRI\Tools.txtëf8

TUZYTKI\NT40.INS\INFO.NT4\Kod.txtżp˘A

TUZYTKI\NAUKAPIS\Info1.txt)´

TUZYTKI\NAUKAPIS\Test1.txt4¶

TUZYTKI\NAUKAPIS\Test10.txt'

TUZYTKI\NAUKAPIS\Test11.txtą

TUZYTKI\NAUKAPIS\Test12.txtą

TUZYTKI\NAUKAPIS\Test13.txtK

TUZYTKI\NAUKAPIS\Test14.txtL

TUZYTKI\NAUKAPIS\Test15.txtR

TUZYTKI\NAUKAPIS\Test16.txtR

TUZYTKI\NAUKAPIS\Test17.txtS

TUZYTKI\NAUKAPIS\Test18.txtT

TUZYTKI\NAUKAPIS\Test19.txt!

TUZYTKI\NAUKAPIS\Test2.txtÍą

TUZYTKI\NAUKAPIS\Test20.txtY

TUZYTKI\NAUKAPIS\Test21.txtZ

TUZYTKI\NAUKAPIS\Test22.txt]

TUZYTKI\NAUKAPIS\Test3.txt2

TUZYTKI\NAUKAPIS\Test4.txt©ą

TUZYTKI\NAUKAPIS\Test5.txt

TUZYTKI\NAUKAPIS\Test6.txtĂ

TUZYTKI\NAUKAPIS\Test7.txt1

N\SPRAWOZD\SPRAW\Ter.doc

;žMicrosoft Word for Windows 95

metrologia ćw.11 sem.V



Wyszukiwarka

Podobne podstrony:
04 NoZ organizowanieid 5115 Nieznany
5115
5115
511

więcej podobnych podstron