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