Instytut Teleinformatyki

Podobne dokumenty
Instytut Teleinformatyki

Instytut Teleinformatyki

Instytut Teleinformatyki

MIKROPROCESORY architektura i programowanie

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Pracownia elektryczno-elektroniczna klasa IV

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Instytut Teleinformatyki

Przerwania w architekturze mikrokontrolera X51

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

SYSTEM PRZERWA Ń MCS 51

Instytut Teleinformatyki

architektura komputerów w 1 1

Zerowanie mikroprocesora

Instytut Teleinformatyki

Instytut Teleinformatyki

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

MIKROPROCESORY architektura i programowanie

Hardware mikrokontrolera X51

Instytut Teleinformatyki

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

TECHNIKA MIKROPROCESOROWA

Instytut Teleinformatyki

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

Ćw. 5. Obsługa portu szeregowego UART w mikrokontrolerach 8051.

Instytut Teleinformatyki

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

PROGRAMOWALNE SYSTEMY MECHATRONIKI

2. Architektura mikrokontrolerów PIC16F8x... 13

Instytut Teleinformatyki

Instytut Teleinformatyki

Instytut Teleinformatyki

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51

Instytut Teleinformatyki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MIKROPROCESORY architektura i programowanie

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

LABORATORIUM nr 2. Temat: Obsługa wyświetlacza siedmiosegmentowego LED

Politechnika Warszawska

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Instytut Teleinformatyki

Struktura programu w asemblerze mikrokontrolera 8051

Lista rozkazów mikrokontrolera 8051

Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Ćwiczenie 1 Wędrujące światełko

Instytut Teleinformatyki

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51.

Metody obsługi zdarzeń

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

Technika mikroprocesorowa I Wykład 4

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Start Bity Bit Stop 1 Bit Par Rys. 1

SYSTEM PRZERWAŃ ATmega 32

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Ćwiczenie 7 Matryca RGB

Programowanie mikrokontrolera 8051

Technika mikroprocesorowa I Wykład 2

Programowanie mikrokontrolerów (CISC)

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

LABORATORIUM. TIMERY w mikrokontrolerach MCS 51

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Przykładowe pytania DSP 1

Informacje ogólne o układzie 8051.

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Asembler - język maszynowy procesora

Przerwania, polling, timery - wykład 9

Programowanie mikrokontrolerów. 5 grudnia 2007

Systemy Czasu Rzeczywistego FPGA

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

architektura komputerów w 1 1

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

MIKROKONTROLERY I MIKROPROCESORY

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle

Przerwania w systemie mikroprocesorowym

Programowanie w językach asemblera i C

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

imei Instytut Metrologii, Elektroniki i Informatyki

PMiK Programowanie Mikrokontrolera 8051

Transkrypt:

Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Przerwania laboratorium: 04 autor: mgr inż. Michał Lankosz dr hab. Zbisław Tabor, prof. PK Kraków, 2014

04. Mikroprocesory i mikrokontrolery Przerwania 2 Spis treści Spis treści...2 1. Wiadomości wstępne...3 2. Przebieg laboratorium...7 2.1. Zadanie 1. Na ocenę 3.0 (dst)...7 2.2. Zadanie 2. Na ocenę 4.0 (db)...8 2.3. Zadanie 3. Na ocenę 5.0 (bdb)...9

04. Mikroprocesory i mikrokontrolery Przerwania 3 1. Wiadomości wstępne Pierwsza część niniejszej instrukcji zawiera podstawowe wiadomości teoretyczne dotyczące omawianego tematu. Poznanie tych wiadomości umożliwi prawidłowe zrealizowanie praktycznej części laboratorium. Niezbędne wiadomości Pamięć programu, wewnętrzna pamięć RAM.mapa pamięci, rejestry, tryby adresowania: http://www.8052.com/tut8051. Lista instrukcji asemblera 8051: http://www.keil.com/support/man/docs/is51/is51_instructions.htm Obsługa timerów Obsługa przerwań Przerwania umożliwiają szybkie reagowanie na zdarzenia zewnętrzne bez zbędnego angażowania programu głównego do sprawdzania stanu wybranych układów peryferyjnych. Działanie systemu przerwań opiera się na zbiorze flag, które są ustawiane w chwili wystąpienia danego zdarzenia. Możliwość przerwania sekwencyjnego wykonywania instrukcji programu po wystąpieniu zdarzenia pozwala w znacznie bardziej elastyczny sposób obsługiwać takie zdarzenia programowo. Dla przykładu, gdyby celem było sprawdzanie, czy w timerze wystąpiło przepełnienie lub czy na porcie szeregowym pojawił się nowy znak do odczytu, manualna obsługa wymagałaby wprowadzenia do kodu programu odpowiednich instrukcji testujących, które wykonywane byłyby w każdej iteracji, niezależnie od tego czy zdarzenie faktycznie zaszło, czy nie. Obsługa zdarzenia polega na oddelegowaniu instrukcji wykonywanych po zajściu zdarzenia do procedury obsługi zdarzenia i odblokowaniu przerwania, na które program ma reagować. Każda procedura obsługi przerwania kończy się rozkazem RETI. Szkielet programu obsługującego przerwanie INT1 (zdarzenia na linii P3.3 portu P3) przedstawiono na Listingu 1. Listing 1 Szkielet programu obsługującego przerwania na INT1 CSEG AT 0 AJMP start ;po resecie wykonujemy skok do początku programu CSEG AT 13h AJMP Obsluga_int1 ;pod adresem 13h z pamięci programu umieszczamy ;instrukcję skoku do procedury obsługi przerwania

04. Mikroprocesory i mikrokontrolery Przerwania 4 CSEG AT 30h start: SETB IT1 SETB EX1 SETB EA loop: AJMP loop Obsluga_int1: ; ; RETI ;program główny zaczyna się od adresu 30h ;(za tablicą wektorów przerwań) ;Konfiguracja układu przerwań: ;przerwanie INT1 aktywowane zboczem ;zezwolenie na zewnętrzne przerwanie INT1 ;globalne odblokowanie przerwań ;główna pętla programu ;procedura obsługi przerwania END Zdarzenia, które mogą być obsługiwane przez procedury obsługi przerwań to: przepełnienie timera 0 (0Bh) przepełnienie timera 1 (1Bh) zdarzenie zewnętrzne INT0 (03h) zdarzenie zewnętrzne INT1 (13h) znak do odczytu/transmisji na złączu szeregowym (23h) Adresy wektorów przerwań odpowiadających danym przerwaniom podane są w nawiasach. W przypadku obsługi konkretnego przerwania należy w kodzie programu umieścić instrukcje: CSEG AT Adres_Wektora AJMP interrupthandler gdzie Adres_Wektora to jeden z powyższych adresów, a interrupthandler to procedura obsługi zakończona rozkazem RETI. Obsługę przerwań konfiguruje się poprzez odpowiednie ustawianie bitów rejestru IE (A8h), co przedstawiono w Tablicy 1. Tablica 1 Konfiguracja przerwań 8051 Bit Nazwa Adres Funkcja 7 EA AFh Globalne zablokowanie/odblokowanie przerwań 6 - AEh Nie używane 5 - ADh Nie używane 4 ES ACh Odblokowanie przerwań na porcie szeregowym

04. Mikroprocesory i mikrokontrolery Przerwania 5 3 ET1 ABh Odblokowanie przerwań na timerze 1 2 EX1 AAh Odblokowanie przerwań na INT1 1 ET0 A9h Odblokowanie przerwań na timerze 0 0 EX0 A8h Odblokowanie przerwań na INT0 W sytuacji gdy w trakcie obsługi przerwania dochodzi do zgłoszenia kolejnego przerwania, o kolejności obsługi decyduje priorytet przerwania. Przerwania mogą mieć dwa priorytety - niski i wysoki. Procedura obsługi przerwania o niskim priorytecie może być przerwana przez przerwanie o priorytecie wysokim. Procedura obsługi przerwania o wysokim priorytecie nie może być przerwana przez inne przerwanie. Priorytet przerwań jest konfigurowany przez odpowiednie ustawienie bitów rejestru IP (B8h), zgodnie z Tabelą 2. Tabela 2 Konfiguracja priorytetów przerwań Bit Nazwa Adres Funkcja 7 - - - 6 - - - 5 - - - 4 PS BCh Priorytet przerwania szeregowego 3 PT1 BBh Priorytet przerwania timera 1 2 PX1 BAh Priorytet przerwania INT1 1 PT0 B9h Priorytet przerwania timera 0 0 PX0 B8h Priorytet przerwania INT0 Warto wspomnieć, że flagi przepełnienia timerów należy przy ręcznej obsłudze zerować odpowiednią instrukcją w kodzie programu. W przypadku obsługi wykorzystującej przerwania flagi te są kasowane sprzętowo po przyjęciu obsługi przerwania. Warto również podać znaczenie pierwszych czterech bitów rejestru TCON (ostatnie cztery służą do zarządzania timerami, jak to opisano w odpowiednim miejscu). Flagi te opisano w Tabeli 3. Tabela 3 Pierwsze cztery bity rejestru TCON (88h) Bit Nazwa Adres Funkcja 3 IE1 Znacznik zgłoszenia przerwania zewnętrznego INT1 ustawiany 8Bh sprzętowo, zerowany przy przyjęciu przerwania 2 IT1 Bit określający wyzwalanie przerwania na INT1 poziomem 8Ah niskim 0 lub zboczem 1 1 IE0 89h 0 IT0 88h Znacznik zgłoszenia przerwania zewnętrznego INT0 ustawiany sprzętowo, zerowany przy przyjęciu przerwania Bit określający wyzwalanie przerwania na INT0 poziomem niskim 0 lub zboczem 1

04. Mikroprocesory i mikrokontrolery Przerwania 6 Literatura: [1] http://www.8052.com/tut8051 [2] http://www.keil.com/support/man/docs/is51/is51_instructions.htm

04. Mikroprocesory i mikrokontrolery Przerwania 7 2. Przebieg laboratorium Druga część instrukcji zawiera zadania do praktycznej realizacji, które demonstrują zastosowanie technik z omawianego zagadnienia. 2.1. Zadanie 1. Na ocenę 3.0 (dst) Należy przeanalizować pracę mikrokontrolera poprzez wykonanie symulacji krokowej na podstawie programu przedstawionego na Listingu 1. Listing 1 CSEG AT 0 AJMP reset CSEG AT 03h AJMP INT0service CSEG AT 30h reset: SETB EX0 SETB EA loop: ACALL delay CPL P2.7 SJMP loop INT0service: ;PUSH ACC ;PUSH PSW CPL P2.0 ;POP PSW ;POP ACC RETI ; skok do procedury obsługi przerwania ; zewnętrznego INT0 ; wlaczenie przerwania INT0 ; odblokowanie wszystkich przerwan ; przykładowy program główny ; procedura obslugi przerwania INT0 ; zapamiętanie akumulatora ; i rejestru stanu ; powrót z przerwania delay: MOV R0,#100 del2: MOV R1,#255 del1: NOP NOP DJNZ R1,del1 DJNZ R0,del2 RET END

04. Mikroprocesory i mikrokontrolery Przerwania 8 a) Proszę sprawdzić działanie programu w symulatorze. Przerwanie należy uaktywnić przez ustawienie 0 na wejściu Pins portu P3 bit 2. Następnie sprawdzić działanie rzeczywistego układu. W tym przypadku przerwanie jest aktywowane wciśnięciem przycisku S2. b) Proszę dopisać procedurę obsługi przerwania zewnętrznego INT1 i odpowiednio skonfigurować rejestry kontrolne. Proszę sprawdzić jak będzie wykonywany program: - w przypadku wystąpienia jednocześnie obu sygnałów przerwań- podczas wykonywania obsługi przerwania INT0 sygnał przerwania INT1 znika na kilka cykli rozkazowych przed rozkazem RETI obsługi INT0 c) Proszę zmienić priorytet przerwania INT1 na wyższy i sprawdź oba podpunkty pytania b), proszę zamienić priorytety INT0 i INT1 na przeciwne i sprawdzić podpunkty pytania b) d) Proszę zmienić sposób reakcji na przerwania zewnętrzne tak, aby były one wyzwalane zboczem opadającym. 2.2. Zadanie 2. Na ocenę 4.0 (db) Należy przeanalizować pracę mikrokontrolera poprzez wykonanie symulacji krokowej na podstawie programu przedstawionego na Listingu 2. Listing 2 CSEG AT 0 AJMP reset CSEG AT 30h reset: MOV TMOD,#00000010b MOV TH0,#-25 SETB TR0 loop: ACALL delay CPL P2.7 JBC TF0,Przelacz SJMP loop Przelacz: CPL P2.0 SJMP loop delay: MOV R0,#2 del2: DJNZ R0,del2 RET ; tryb 2 licznik sygnału taktującego ; załadowanie wartości początkowej ; podłączenie sygnału do licznika ; przykładowy program główny ; sprawdzenie flagi przepełnienia timera ; zmiana stanu linii portu na przeciwny END Proszę podczas symulacji zaobserwować reakcję na wystawienie flagi przepełnienia licznika. Docelowo program ma zmieniać stan wyprowadzenia portu P2.0 w stałych,

04. Mikroprocesory i mikrokontrolery Przerwania 9 ściśle określonych interwałach czasowych wyznaczanych przez czasomierz T0. Przy okazji mają być realizowane dodatkowe zadania nie krytyczne w czasie. Czy zmiana stanu P2.0 odbywa się w regularnych chwilach czasowych? Proszę zmodyfikować program tak, aby w momencie przepełnienia licznika następowało przerwanie, a zmiana stanu P2.0 odbywała się w procedurze jego obsługi. 2.3. Zadanie 3. Na ocenę 5.0 (bdb) Proszę napisać program, który będzie zliczać sekundy. Liczba sekund ma być prezentowana w postaci binarnej za pomocą diod świecących podłączonych do portu P2.