Przerwania w architekturze mikrokontrolera X51



Podobne dokumenty
Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Hardware mikrokontrolera X51

Instytut Teleinformatyki

Instytut Teleinformatyki

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

Wstępdo assemblera MA51

Pracownia elektryczno-elektroniczna klasa IV

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

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

SYSTEM PRZERWA Ń MCS 51

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

architektura komputerów w 1 1

Politechnika Warszawska

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

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie

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

Struktura programu w asemblerze mikrokontrolera 8051

LABORATORIUM. TIMERY w mikrokontrolerach MCS 51

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

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

Programowanie mikrokontrolera 8051

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

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

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

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

Zerowanie mikroprocesora

Start Bity Bit Stop 1 Bit Par Rys. 1

MIKROKONTROLERY I MIKROPROCESORY

Technika mikroprocesorowa I Wykład 4

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

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

Wstęp do assemblera MA51

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

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

CPU architektura i rejestry

Programowanie mikrokontrolerów. 8 listopada 2007

TECHNIKA MIKROPROCESOROWA

Lista rozkazów mikrokontrolera 8051

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

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

2. Architektura mikrokontrolerów PIC16F8x... 13

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

Asembler - język maszynowy procesora

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

architektura komputerów w 1 1

Techniki mikroprocesorowe i systemy wbudowane

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny

Programowanie mikrokontrolerów. 5 grudnia 2007

Ćwiczenie 7 Matryca RGB

Dyrektywy asemblerowe

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

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

Programowany układ czasowy APSC

Wstęp. do języka C na procesor (kompilator RC51)

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

ZAPOZNANIE SIĘ Z ZESTAWEM DYDAKTYCZNYM ZD537, OPROGRAMOWANIEM µvision 2 ORAZ OPERACJE NA PAMIĘCIACH

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

Przykład oprogramowania protokołu komunikacyjnego dla łącza równoległego pomiędzy procesorem master i wieloma procesorami slave

Ćwiczenie 2 Transmisja a szeregowa µc 8051(8052) - PC

PMiK Programowanie Mikrokontrolera 8051

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

MIKROKOMPUTERY JEDNOUKŁADOWE RODZINY MCS - 51

Programowanie Niskopoziomowe

Mikrokontrolery. Wrocław 2003

Opis mikrokontrolera AT89C2051

Programowany układ czasowy

Pracownia elektryczno-elektroniczna klasa IV

Opis mikrokontrolera 8051 Lista rozkazowa Timery

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

Programowanie mikrokontrolerów (CISC)

Metody obsługi zdarzeń

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Instytut Teleinformatyki

Przerwania, polling, timery - wykład 9

PROGRAMOWALNE SYSTEMY MECHATRONIKI

PROGRAMY REZYDENTNE Terminate and State Resident, TSR

Mikrokontrolery? To takie proste...

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym cd...

Instytut Teleinformatyki

Organizacja typowego mikroprocesora

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

Informacje ogólne o układzie 8051.

Ćwiczenie 6 Komunikacja z komputerem (łącze RS232)

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd)

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Architektura komputerów. Asembler procesorów rodziny x86

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

Mikrokontrolery 8 bit - wprowadzenie

Praktyka Techniki Mikroprocesorowej. Mikrokontroler ADuC834

Transkrypt:

Przerwania w architekturze mikrokontrolera X51 (przykład przerwanie zegarowe) Ryszard J. Barczyński, 2009 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego

Przerwanie jest niczym innym, jak wywołaniem specjalnej procedury. Procedura ta jest umieszczona pod odpowiednim, stałym adresem. Obsługa przerwania kończy się specjalnym rozkazem RETI. Procedura przerwania musi zadbać o zachowanie używanych zasobów. Często używa się do tego celu alternatywnych banków rejestrów.

przykład oprogramowania przerwania zegarowego Napiszemy obsługę przerwania zegarowego, które liczy czas rzeczywisty Założymy, że procesor pracuje z zegarem 12 Mhz. Zaprogramujemy timer tak, by generował przerwanie co 10ms. Obsługa przerwania będzie: liczyła sekundy, minuty i godziny ustawiała flagę informującą o zmianie czasu (o pełnych sekundach) Program główny wyśle czas na port szeregowy gdy flaga zostanie ustawiona.

Przerwanie jest niczym innym, jak wywołaniem specjalnej procedury. Procedura ta jest umieszczona pod odpowiednim, stałym adresem. Obsługa przerwania kończy się specjalnym rozkazem RETI. Procedura przerwania musi zadbać o zachowanie używanych zasobów. Często używa się do tego celu alternatywnych banków rejestrów.

szkielet procedury obsługi przerwania TINTER: PUSH ACC zachowujemy akumulator PUSH PSW i słowo stanu procesora MOV PSW,#018h 3 bank rejestrów [... tu będzie nasz kod...] POP PSW odtwarzamy rejestry POP ACC RETI koniec przerwania

przykład oprogramowania przerwania zegarowego Zrobimy jeszcze parę założeń... Zdublujemy rejestry nazwami zmiennych... R0=Clk100, R1=ClkSec, R2=ClkMin, R3=ClkHrs Nie jest to konieczne, ale ułatwi i przyspieszy dostęp do danych DSEG ORG 018h adres 3 banku rejestrów Clk100: DS 1 ClkSec: DS 1 ClkMin: DS 1 ClkHrs: DS 1

przykład oprogramowania przerwania zegarowego Zrobimy jeszcze parę założeń... Flaga informująca o zmianie stanu zegara może być bitowa BSEG Display: DBIT 1

przykład oprogramowania przerwania zegarowego Zrobimy jeszcze parę założeń... Ponieważ timer T1 jest wykorzystywany do taktowania portu szeregowego... użyjemy timera T0. Tryb pracy T1 będzie 8 bitowy z automatycznym załadowaniem. Nad jego wartością nie będziemy się zastanawiać jest w dokumentacji. Tryb pracy T0 wybieramy 16 bitowy (potrzebujemy liczenia do 10000). TMOD zaprogramujemy jako więc jako 00100001B (021h). Musimy policzyć wartość początkową do załadowania...

przykład oprogramowania przerwania zegarowego Zrobimy jeszcze parę założeń... Musimy policzyć wartość początkową do załadowania... 0FFFFh 10000 = 0D8EFh Starszy bajt (TH0) załadujemy wartością 0D8h Młodszy bajt (TL0) załadujemy wartością 0EFh ValTH0 EQU 0D8h ValTL0 EQU 0EFh Ładować licznik trzeba będzie każdorazowo po przyjściu przerwania... oraz na początku

szkielet procedury obsługi przerwania TINTER: MOV TH0,#ValTH0 MOV TL0,#ValTL0 PUSH ACC zachowujemy akumulator PUSH PSW i słowo stanu procesora MOV PSW,#018h 3 bank rejestrów [... tu będzie nasz kod...] POP PSW odtwarzamy rejestry POP ACC RETI koniec przerwania

Przerwanie jest niczym innym, jak wywołaniem specjalnej procedury. Procedura ta jest umieszczona pod odpowiednim, stałym adresem. Obsługa przerwania kończy się specjalnym rozkazem RETI. Procedura przerwania musi zadbać o zachowanie używanych zasobów. Często używa się do tego celu alternatywnych banków rejestrów.

początek naszego kodu CSEG ORG 0 JMP Start ORG 0Bh JMP TINTER Przerwanie IE0 TF0 IE1 TF1 RI oraz TI Adres wektora 0003h 000Bh 0013h 001Bh 0023h

część funkcjonalna procedury obsługi przerwania INC R0 CJNE R0,#100,TIMEND SETB Display MOV R0,#0 INC R1 Pełna sekunda CJNE R1,#60,TIMEND MOV R1,#0 INC R2 Pełna minuta CJNE R2,#60,TIMEND MOV R2,#0 INC R3 Pełna godzina CJNE R3,#24,TIMEND MOV R3,#0 TIMEND:

co robimy na początku... Start: MOV SP,#Stack Starannie analizujemy położenie stosu!!! CALL InitHard Programujemy hardware MOV ClkMin,#0 Nie mam lepszego pomysłu MOV ClkSec,#0 na początkow ą godzin ę... MOV Clk100,#0 MOV ClkHrs,#0 Startuj przerwania i timerki SETB et0 Timer 0 interrupt SETB tr0 Timer 0 SETB TR1 Baud generator SETB ea Enable interrupts...

programowanie drutów... InitHard: MOV TMOD,#ValTMOD MOV TH0,#ValTH0 Wstępne załadowanie MOV TL0,#ValTL0 MOV TH1,#BaudH MOV PCON,#0 SMOD = 0 (baud dzielony przez 2) MOV SCON,#52H Port szeregowy mode 1 RET

główna pętla programu... Loop: Jeżeli czas si ę zmieni ł to wyświetl co ś. JNB Display,Loop CLR Display MOV DPTR,#MsgSec CALL SendStr JMP Loop

Pełny tekst omawianego dzisiaj programu znajdzie się na naszej stronie WWW. (ciekawy jestem czy zadziała?...)