SYSTEM PRZERWA Ń MCS 51

Podobne dokumenty
LABORATORIUM. TIMERY w mikrokontrolerach MCS 51

LABORATORIUM UKŁADY WY Ś WIETLANIA INFORMACJI Z WY Ś WIETLACZAMI 7-SEGMENTOWYMI LED

Instytut Teleinformatyki

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Przerwania w architekturze mikrokontrolera X51

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

Pracownia elektryczno-elektroniczna klasa IV

Politechnika Warszawska

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

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Instytut Teleinformatyki

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

architektura komputerów w 1 1

Instytut Teleinformatyki

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Hardware mikrokontrolera X51

Metody obsługi zdarzeń

TECHNIKA MIKROPROCESOROWA

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

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

SYSTEM PRZERWAŃ ATmega 32

Zerowanie mikroprocesora

Ćw. 5: Bramki logiczne

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

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

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

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

Przerwania, polling, timery - wykład 9

Timery w mikrokontrolerach STM32F3

Pracownia elektryczno-elektroniczna klasa IV

Instytut Teleinformatyki

Instytut Teleinformatyki

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie mikrokontrolera 8051

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

MIKROPROCESORY architektura i programowanie

Ż ś ś

Struktura programu w asemblerze mikrokontrolera 8051

MIKROPROCESORY architektura i programowanie

Systemy wbudowane Mikrokontrolery

ASEMBLER MCS-51 Podstawowe informacje

LABORATORIUM STEROWANIE SILNIKA KROKOWEGO

LABORATORIUM UKŁADY STYKOWE ZL3AVR

Ćwiczenie 7 Matryca RGB

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

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

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

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

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

Ę ś

ć Ż ć Ż ń Ż Ź ć Ż ć ć Ź ń ń Ś

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

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

Spis procedur i programów

Regulamin prowadzenia rokowa po II przetargu na zbycie nieruchomo ci stanowi cych własno Gminy Strzy ewice

Wykład 3. Ruch w obecno ś ci wię zów

imei Instytut Metrologii, Elektroniki i Informatyki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

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

ć ć ź Ń Ś ŚĆ ź

Ę

Mikrokontrolery 8 bit - wprowadzenie

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Analizowanie działania układów mikroprocesorowych 311[50].O1.06

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

Lista rozkazów mikrokontrolera 8051


ć ź ź ź ź ć ć

ć ć Ść

Ś Ó ń ń ć ć ć ń ń ń ź ź ń Ó

ż ż Ń Ś ż Ł Ł Ł ż ź

ź Ź ź Ń Ą Ś Ą

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1

Ę ć ń ń Ń Ę ń ź ć ć ć ć

ć Ż Ń ź Ź ć Ą Ś

ć

ć ć ć ź ć ć ć ć

Ś ć

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


ś Ń Ó Ż ś Ó Ó ż ś ś Ś ż ż Ć ż Ż ś ś Ó ż ż ż

Mikrokontroler 80C51

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Ę Ę Ę Ś Ł Ł Ł Ś

2. Architektura mikrokontrolerów PIC16F8x... 13

Ę Ł ź ź ć ź ć Ń ć ź ź Ł

WSPÓŁPRACA UKŁADÓW ISD33XXX/4002/4003

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

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

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Scenariusz lekcji. Wojciech Dindorf Elżbieta Krawczyk

Komputery klasy PC. Dariusz Chaberski

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

Transkrypt:

Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Zakład Cybernetyki i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA SYSTEM PRZERWA Ń MCS 51 Opracował: mgr inŝ. Andrzej Biedka

Uwolnienie procesora od cią głego sprawdzania stanu bitu flagi przepełnienia timera/licznika (TF0 lub TF1) jest moŝ liwe przy wykorzystaniu przerwania. Uruchomienie systemu przerwań wymaga jego zaprogramowania inicjalizacji. Ze wzglę du na lokalizację wektorów przerwań w począ tkowym obszarze pamię ci ROM i fabryczne przypisanie ich adresów struktura programu wykorzystują cego przerwania powinna mieć nastę pują cą postać : 1 ; LISTING 3-1 2 ; Struktura programu z wykorzystaniem przerwań 3 4 WEKTOR_T0 EQU 0BH 5 WEKTOR_T1 EQU 01BH 6 7 ORG 0 8 9 LJMP START 10 ; ******************************** 11 ORG WEKTOR_T0 12 LJMP OBSLUGA_T0 13 14 ORG WEKTOR_T1 15 LJMP OBSLUGA_T1 16 ;******************************** 17 START: 18 ; Program główny 19 Inicjalizacja timerów i przerwań 20 PETLA: 21 instrukcja 1 22 instrukcja 2 23... 24 instr n 25 LJMP PETLA 26 27 ;******************************** 28 OBSLUGA_T0: 29 ; Program obsługi przerwania timera T0 30 xxx 31 xxx 32 RETI 33 34 ;******************************** 35 OBSLUGA_T1: 36 ; Program obsługi przerwania timera T1 37 yyy 38 yyy 39 RETI 40 41 END Pierwszą instrukcją w programie jest rozkaz skoku do etykiety START, omijają cy obszar wektorów przerwań. Obszar wektorów przerwań zorganizowany jest w postaci tablicy skoków poś rednich do właś ciwych procedur obsługi tych przerwań. Koniecznoś ć stosowania skoków poś rednich wynika z tylko oś miobajtowego odstę pu mię dzy poszczególnymi wektorami, co najczę ś ciej nie pozwala na zmieszczenie kodu programu obsługi przerwania.

Nastę pnie znajduje się kod programu głównego tworzą cy pę tlę. Wobec zastosowania skoków długich (LJMP adres) kolejnoś ć umieszczenia programów obsługi przerwań i programu głównego jest dowolna. Jeś li w danym programie wykorzystane jest tylko jedno ź ródło przerwań strukturę programu moŝ na uproś cić do postaci: 1 ; LISTING 3-2 2 ; Struktura programu z wykorzystaniem jednego przerwania 3 4 WEKTOR_T0 EQU 0BH 5 6 ORG 0 7 8 LJMP START 9 ; ********************************* 10 ORG WEKTOR_T0 11 ; Program obslugi przerwania timera T0 12 xxx 13 xxx 14 RETI 15 16 ;******************************** 17 START: 18 ; Program glowny 19 Inicjalizacja timera 0 i jego przerwania 20 21 PETLA: 22 instr 1 23 instr 2 24... 25 instr n 26 LJMP PETLA 27 28 END W powyŝ szym przykładzie struktury nie są potrzebne skoki poś rednie, poniewaŝ moŝ e wystą pić co najwyŝ ej tylko jedno przerwanie. Zatem moŝ na wykorzystać pamię ć programu obszaru innych wektorów na umieszczenie kodu obsługi jednego przerwania w tym wypadku od przepełnienia timera 0. Przykładowy program generowania przebiegu prostoką tnego o czę obserwowanego na diodzie LED linii P2.0 przedstawia listing 3-3. stotliwoś ci 10 Hz,

1: ; LISTING 3-3 2: ; Program generatora przebiegu prostoką tnego 10Hz 3: ; z wykorzystaniem przerwań 4: 5: WEKTOR_T0 EQU 0BH 6: PODZIELNIK EQU 19456 ; 65536 - (50msek/1,08507usek) 7: ; Kwarc = 11,0592MHz 8: 9: ORG 0 10: 11: LJMP START 12: 13: ORG WEKTOR_T0 14: ; Program obsługi przerwania timera T0 15: 16: MOV TL0, LOW PODZIELNIK ; odtworzenie zadanego czasu 17: MOV TH0, HIGH PODZIELNIK 18: CPL P2.0 ; neguj stan diody LED 19: RETI ; powrót z przerwania 20: 21: ;******************************** 22: START: 23: ; Program główny 24: MOV P2,#1 ; zerowanie linii P2.7 - P2.0 25: 26:; Inicjalizacja TIMERA 0 27: 28: MOV TMOD,#00000001B ; ustawienie trybu 1 29: MOV TH0,HIGH PODZIELNIK ; Ładowanie starszego bajtu 30: MOV TL0,LOW PODZIELNIK ; Ładowanie mlodszego bajtu 31: 32: SETB TR0 ; Start timera T0 33: 34: ; Inicjalizacja PRZERWANIA 35: 36: SETB ET0 ; Zezwolenie na przerwanie od timera 0 37: SETB EA ; Globalne zezwolenie na przerwanie 38: 39: SJMP $ ; "Pę tla główna" programu 40: 41: END W programie obsługi przerwania, który zostaje wykonany po przepełnieniu timera (linie 13 19) nie ma instrukcji kasowania flagi TF0, poniewaŝ zadanie to wykonywane jest automatycznie przez jednostkę sterują cą mikrokontrolera w chwili przyję cia przerwania. Jest to zachowanie odmienne od wystę pują cego przy obsłudze timera przez sprawdzanie stanu bitu flagi przepełnienia czyli przez tzw. polling.

W nastę pnym przykładzie programu w pę tli głównej (linie 39-46) znajduje się procedura generowania przebiegu prostoką tnego w linii portu P2.7. Zastosowane do wytworzenia zwłoki czasowej dwa rejestry pracują ce z maksymalną wpisywana wartoś cią 255 umoŝ liwiają wzrokową obserwację efektu migania diody P2.7. W programie pracują niezaleŝ nie dwa procesy: 1. sterowane przez pę tlę programu głównego miganie diody P2.7 2. sterowane przez przerwanie timera 0 miganie diody P2.0 1: ; LISTING 3-4 2: ; Program generatora przebiegu prostoką tnego 10Hz 3: ; z wykorzystaniem przerwań 4: 5: WEKTOR_T0 EQU 0BH 6: PODZIELNIK EQU 19456 ; 65536 - (50msek/1,08507usek) 7: ; Kwarc = 11,0592MHz 8: 9: ORG 0 10: 11: LJMP START 12: 13: ORG WEKTOR_T0 14: ; Program obsługi przerwania timera T0 15: 16: MOV TL0, LOW PODZIELNIK ; odtworzenie zadanego czasu 17: MOV TH0, HIGH PODZIELNIK 18: CPL P2.0 ; neguj stan diody LED 19: RETI ; powrót z przerwania 20: 21: ;******************************** 22: START: 23: ; Program główny 24: MOV P2,#1 ; zerowanie linii P2.7 - P2.0 25: 26: ; INICJALIZACJA TIMERA 0 27: 28: MOV TMOD,#00000001B ; ustawienie trybu 1 29: MOV TH0, HIGH PODZIELNIK ; Ładowanie starszego bajtu 30: MOV TL0, LOW PODZIELNIK ; Ładowanie młodszego bajtu 31: 32: SETB TR0 ; Start timera T0 33: 34: ; INICJALIZACJA PRZERWANIA 35: 36: SETB ET0 ; Zezwolenie na przerwanie od timera 0 37: SETB EA ; Globalne zezwolenie na przerwanie 38: 39: PETLA: ; "Pę tla główna", pulsowanie diody P2.7 40: MOV R7,#255 41: PETLA1: 42: MOV R6,#255 43: DJNZ R6,$ 44: DJNZ R7,PETLA1 45: CPL P2.7 46: SJMP PETLA 47: 48: END

ZADANIA: 5. Napisać program generatora przebiegu prostoką tnego o parametrach przedstawionych na poniŝ szym rysunku, z wykorzystaniem przerwania. Obserwacji przebiegu dokonać przy pomocy wybranej diody LED portu P2. 1sek. 50 msek. Rys. 2-3 6. Napisać program generatora przebiegu prostoką tnego o parametrach przedstawionych na rysunku 2-3 z wykorzystaniem timera pracują cego w trybie 0 z obsługą przerwań. 7. Napisać program generatora przebiegu prostoką tnego o parametrach przedstawionych na rysunku 2-3 z wykorzystaniem 2 timerów pracują trybie 1 z obsługą przerwań. cych w 8. Napisać program generatora przebiegu prostoką tnego o parametrach przedstawionych na rysunku 2-3 z wykorzystaniem 2 timerów, jednego pracują cego w trybie 0, drugiego pracują cego w trybie 1 z obsługą przerwań. 9. Wyznaczyć czas niezbę dny do przyję cia i zakoń czenia obsługi przerwania, uwzglę dnić ten czas w stałych ładowania rejestrów timerów.