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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 Ćwiczenie 1 Wędrujące światełko Program = Data structures + Algorithm -- Niklaus Wirth Warszawa,

2 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z wykorzystywanym w Laboratorium Systemem Uruchomieniowym a także ze Zintegrowanym Środowiskiem Uruchomieniowym Keil µvision 2. W części praktycznej należy zmodyfikować otrzymane programy w taki sposób, aby uzyskać efekt "wędrującego" światełka. 2. Część pierwsza - opóźnienie programowe 2.1. Początek programu Początek programu należy umieścić na początku pamięci programu pod adresem 0000H. Odpowiednia dyrektywa asemblera określająca adres początku programu to: cseg at 0000H Powoduje ona, że program użytkownika zostanie umieszczony w pamięci programu począwszy od adresu 0000H. UWAGA! Litera 'H' lub 'h' na końcu liczby oznacza, że stosowany jest zapis heksadecymalny. Litera 'B' lub 'b' oznacza zapis binarny. Jeżeli na końcu liczby nie ma informacji o zapisie, albo też występuje litera D lub d, liczba jest uważana za dziesiętną. Inne elementy programu, których początek wymaga umieszczenia pod określonym adresem pamięci programu to procedury obsługi przerwań. W przypadku klasycznego kontrolera 8052 adresy (tzw. wektory przerwań), pod którymi należy umieścić początki procedur obsługi przerwań są następujące: Tabela1. Adresy procedury obsługi przerwania w mikrokontrolerze 8052 Wektor przerwania Rodzaj przerwania 0003H Przerwanie zewnętrzne 0 (INT0) 000BH Przerwanie licznika T0 0013H Przerwanie zewnętrzne 1 (INT1) 001BH Przerwanie licznika T1 0023H Przerwanie portu szeregowego 002BH Przerwanie licznika T2 W programie użytkowym fragment programu odpowiadający za właściwe umieszczenie w pamięci programu początku programu i procedur obsługi przerwań wygląda następująco: cseg at 0000H ; po włączeniu napięcia zasilania lub zerowaniu (RESET) procesora wykonywanie programu rozpoczyna się od adresu 0000H jmp Start ; instrukcja skoku do rzeczywistego początku programu org 0003H ; dyrektywa asemblera umieszczająca następujący po niej fragment programu pod adresem 0003H 2

3 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -3- jmp INT0_HANDLER ; skok do rzeczywistego początku procedury obsługi przerwania zewnętrznego INT0 org 000BH ; dyrektywa asemblera umieszczająca następujący po niej fragment programu pod adresem 000BH jmp T0_HANDLER ; skok do rzeczywistego początku procedury obsługi przerwania licznika T0 org 0013H ; dyrektywa asemblera umieszczająca następujący po niej fragment programu pod adresem 0013H jmp INT1_HANDLER ; skok do rzeczywistego początku procedury obsługi przerwania zewnętrznego INT1 org 001BH ; dyrektywa asemblera umieszczająca następujący po niej fragment programu pod adresem 001BH jmp T1_HANDLER ; skok do rzeczywistego początku procedury obsługi przerwania licznika T1 org 0023H ; dyrektywa asemblera umieszczająca następujący po niej fragment programu pod adresem 0003H jmp RS_HANDLER ; skok do rzeczywistego początku procedury obsługi przerwania portu szeregowego org 002BH ; dyrektywa asemblera umieszczająca następujący po niej fragment programu pod adresem 002BH jmp T2_HANDLER ; skok do rzeczywistego początku procedury obsługi przerwania licznika T Konfiguracja mikrokontrolera C8051F060 Mikrokontroler C8051F060 zastosowany w systemie uruchomieniowym jest znacznie bardziej skomplikowany niż klasyczny układ Posiada m.in. watchdog, tj. licznik, który po przepełnieniu powoduje zerowanie procesora. Dzięki temu można zabezpieczyć system przed niewłaściwym działaniem np. w wyniku zakłócenia elektromagnetycznego. W ćwiczeniu watchdog nie jest nam potrzebny, dlatego wyłączamy go zapisując do rejestru specjalnego WDTCN odpowiednie wartości: mov mov WDTCN, #0DEH WDTCN, #0ADH UWAGA! Jeżeli przy zapisie heksadecymalnym liczby najstarszym znakiem jest litera, to musi być ona poprzedzona cyfrą 0. W przeciwnym przypadku asembler potraktuje liczbę jak symbol w powyższym przypadku jako symbol DEH, a potem ADH. UWAGA! Znak "#" oznacza, że do rejestru WDTCN zostaje wpisana wartość 0DEH (w przypadku pierwszej instrukcji). Gdybyśmy opuścili znak "#", czyli gdyby nasza instrukcja wyglądała następująco: mov WDTCN, 0DEH, to do rejestru specjalnego WDTCN zostałaby załadowana zawartość bajtu wewnętrznej pamięci danych o adresie 0DEH (byłaby to zawartość jakiegoś rejestru specjalnego. Wówczas drugi argument byłby także przypadkiem adresowania bezpośredniego). Innymi słowy #0DEH jest w tej instrukcji argumentem bezpośrednim, tzn. jest umieszczony w sposób jawny w treści rozkazu. 3

4 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -4- Rejestry specjalne w klasycznym układzie 8051 zajmują 128 bajtów. Mikrokontroler C8051 potrzebuje znacznie większej liczby rejestrów specjalnych, aby skonfigurować wszystkie zintegrowane urządzenia peryferyjne (liczniki, porty, przetworniki AC, CA, itd.). Kompatybilność programowa ze starszymi wersjami rodziny MCS51 narzuca ograniczenie liczby rejestrów specjalnych dostępnych jednocześnie do 128. W mikrokontrolerze C8051F060 wprowadzono zatem przełączanie stron SFR za pomocą rejestru SFRPAGE. Klasyczny układ 8051 ma tylko 4 porty (P0-P3). Aby możliwe było wykorzystanie portów P7 i P5 konieczne jest włączenie odpowiedniej strony rejestrów specjalnych za pomocą instrukcji: mov SFRPAGE, #CONFIG_PAGE Wartość CONFIG_PAGE (0FH) zdefiniowano w pliku nagłówkowym 8051F060.INC W mikrokontrolerze C8051F060 istnieją ograniczone możliwości przypisania pewnych funkcji (np. linie drugiego portu szeregowego lub interfejsu I2CBUS) do wybranego portu. Przypisania tego dokonuje się poprzez konfigurację krosownicy (crossbar). W naszym przypadku konfiguracja krosownicy ma następującą postać: mov XBR2, #040H 2.2. Inicjalizacja wskaźnika stosu Po włączeniu zasilania mikrokontrolera (RESET) wskaźnik stosu SP (rejestr specjalny SFR) ma wartość 07, czyli wskazuje na rejestr R7 w Banku 0 rejestrów. Ponieważ rejestry R będą nam potrzebne w programie jako rejestry robocze, przesuniemy początek stosu w inne, dogodniejsze miejsce. Najwygodniej będzie umieścić początek stosu na początku adresowanego bajtowo obszaru wewnętrznej pamięci danych, czyli pod adresem 30H. Aby dokonać inicjalizacji stosu najpierw zdefiniujemy symbol (definiowanie symbolicznych nazw stałych i zmiennych nie jest to konieczne, ale jest bardzo wygodne i eleganckie): TOS equ 30H ; Top Of Stack (wierzchołek stosu) Definicje symboli umieszcza się w pliku źródłowym powyżej dyrektywy cseg at 0000H UWAGA! wszystko to, co znajduje się w linii po średniku, to komentarz ignorowany w procesie asemblacji. W programie nadajemy wskaźnikowi stosu wartość symbolu TOS: mov SP, #TOS Stos jest specjalną strukturą danych typu LIFO (Last In First Out) obsługiwaną sprzętowo, występującą we wszystkich mikroprocesorach. Będzie nam on potrzebny co najmniej w trzech przypadkach: 4

5 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -5- przy wywoływaniu i powrocie z podprogramów do odkładania adresu powrotu przy wywoływaniu podprogramu instrukcją call i pobierania adresu powrotu przy kończeniu podprogramu instrukcją, przy obsłudze przerwań do odkładania adresu powrotu przy skoku do procedury obsługi przerwania i pobierania adresu powrotu przy kończeniu procedury obsługi przerwania instrukcją i, do tzw. przełączania kontekstu przejściowego odkładania zawartości rejestrów roboczych na stos (instrukcja push) w procedurze obsługi przerwania w celu ochrony ich zawartości, wykorzystania tych rejestrów dla realizacji procedury, odtworzenia oryginalnej zawartości rejestrów (instrukcja pop) przed powrotem z procedury. UWAGA! Należy pamiętać, że dane ze stosu pobiera się w odwrotnej kolejności niż zostały odłożone (LIFO). Dlatego też wewnątrz procedury liczba instrukcji odkładania danych na stos musi być dokładnie równa liczbie instrukcji zdejmowania ze stosu. Co więcej każda instrukcja zdejmowania danej ze stosu musi być poprzedzona instrukcją odkładania danej na stos. W przeciwnym razie w trakcie wychodzenia z procedury za pomocą instrukcji lub i zamiast adresu powrotu (odłożonego w trakcie wykonywania instrukcji call) ze stosu zostanie pobrana wartość, która spowoduje skok do przypadkowego miejsca w pamięci programu, a tym samy błędne działanie programu. Takie błędy są trudne do wykrycia Komunikacja z urządzeniami WE/WY (modułami peryferyjnymi) Urządzenia zewnętrzne podłączono do portów mikrokontrolera, które programista widzi jako odpowiednie rejestry specjalne (SFR special-function register). Diody LED obsługiwane w ćwiczeniu nr 1 podłączono do portu P7 poprzez 8-krotny przerzutnik 74HCT574 wyzwalany zboczem narastającym (port P7 obsługuje również wyświetlacz ciekłokrystaliczny, toteż potrzebna jest możliwość zapamiętania danych wysłanych do diod LED). W systemie uruchomieniowym diody te stanowią dodatkową (6-tą) pozycję wyświetlacza 7- segmentowego. Wybraną pozycję wyświetlacza steruje się (włącza/wyłącza) odpowiednim bitem portu P2 (w przypadku diod LED jest to bit P2.5). Zapamiętanie danych wysłanych do przerzutnika 74HCT574 następuje po pojawieniu się zbocza narastającego na wejściu sterującym (P5.6). Dioda jest wyłączana, jeżeli na odpowiadającym jej bicie portu P7 wystawimy 0, a włączana, jeżeli wystawimy 1. Program powinien być możliwie jak najbardziej czytelny, toteż zdefiniujemy następujące symbole (definicje symboli umieszcza się w pliku źródłowym powyżej dyrektywy cseg at 0000H): LEDs equ P2.5 ; bit aktywujący diody LED CK_D equ P5.6 ; sygnał sterujący przerzutnikiem D zapamiętującym dane dla diod LED Fragment programu włączający wszystkie diody LED wygląda następująco: clr LEDs ; uaktywnienie diod LED mov P7, #0FFH ; zapis danych dla LED do przerzutnika clr CK_D ; generacja dodatniego zbocza na wejściu sterującym setb CK_D ; przerzutnika (zapamiętanie danych w przerzutniku) Schemat elektryczny obwodu z diodami LED zamieszczono na rys. 1, uproszczone rozmieszczenie elementów na płytce drukowanej na rys. 2. 5

6 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -6- Rys. 1. Schemat elektryczny podłączenia wyświetlacza 7-segmentowego oraz diod LED. Rys. 2. Rozmieszczenie elementów na płytce Przypisanie linii portu P7 do poszczególnych diod przedstawiono w Tabeli 2. Tabela 2. Przypisanie linii portu P7 do poszczególnych diod Dioda Kolor Bit sterujący D1 niebieska P7.0 D2 niebieska P7.1 D3 czerwona P7.4 D4 czerwona P7.5 D5 zielona P7.6 D6 zielona P7.7 D7 żółta P7.2 D8 żółta P7.3 6

7 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko Algorytm Program startowy cyklicznie zapala i gasi wszystkie diody. Ponieważ mikrokontroler jest bardzo szybki w stosunku do czasu reakcji ludzkiego oka, pomiędzy kolejne operacje zapalania i gaszenia LED-ów należy wprowadzić opóźnienie, w przeciwnym razie ludzkie oko będzie widziało światło ciągłe, chociaż trochę mniej intensywne. Algorytm programu wygląda następująco: inicjalizacja, zapalenie diody, opóźnienie, zgaszenie diody, opóźnienie, itd. Opóźnienie, równe w przybliżeniu 460 ms, jest zrealizowane programowo z wykorzystaniem trzech rejestrów roboczych: R5, R6 i R7. Procedura (podprogram) poczekaj wygląda następująco: poczekaj: ; generacja opoznienia mov R5, #07H ; 2 cykle duze: mov R6, #0FFH ; 2 cykle srednie: mov R7, #0FFH ; 2 cykle male: djnz R7, male ; 3 cykle, jeżeli skok wykonywany, 2 cykle, jeżeli skok nie wykonywany djnz R6, srednie ; 3 cykle, jeżeli skok wykonywany, 2 cykle, jeżeli skok nie wykonywany djnz R5, duze ; 3 cykle, jeżeli skok wykonywany, 2 cykle, jeżeli skok nie wykonywany ; 5 cykli Wykonanie pętli male trwa = 764 cykle (254 razy instrukcja djnz wykonuje skok, toteż czas trwania wynosi 3 cykle, za 255. razem skoku nie wykonuje, a jej wykonanie trwa dwa cykle. Wykonanie pętli srednie trwa ( )* = cykle (do czasu wykonania pętli male dodajemy czas wykonania instrukcji mov R7, #0FFH, tj. 2 cykle oraz instrukcji djnz R6, srednie, tj. 254 razy 3 cykle i raz 2 cykle). Wykonanie pętli duze trwa ( ) = cykle. Wykonanie całej procedury poczekaj trwa (mov R5, #07H) + 5() + 4(call poczekaj) = cykli. Domyślnie częstotliwość zegara systemowego jest 8-krotnie niższa niż częstotliwość oscylatora, czyli f zegar = 24,5MHz/8 3 MHz (1cykl = 1 takt zegara), czas opóźnienia wynosi ok. 460 ms. UWAGA! Występujące w powyższej procedurze symbole poczekaj, duze, srednie i male, zakończone dwukropkiem, to tzw. etykiety. W czasie asemblacji programu etykietom nadawana jest wartość adresu początku instrukcji występującej bezpośrednio po nich, tak więc np. etykiecie poczekaj nadawana jest wartość adresu pierwszego bajtu instrukcji mov R5,#07H. Etykiety umożliwiają symboliczne wskazywanie miejsca w programie źródłowym, zamiast podawania bezwzględnego adresu, co bardzo ułatwia pisanie programów i czyni je znacznie czytelniejszymi ( piszemy jmp poczekaj a nie jmp 1234, gdzie 1234 to adres pierwszego bajtu instrukcji mov R5,#07H) Zakończenie programu Na końcu pliku źródłowego musi się znaleźć dyrektywa: end 7

8 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -8- UWAGA! Występujące w programie źródłowym dyrektywy, deklaracje stałych, zmiennych nie są instrukcjami procesora a informacjami dla programu ASEMBLER tłumaczącego program źródłowy na kod maszynowy. W szczególności dyrektywa end nie jest kodem instrukcji kończącej program (nie ma takiej instrukcji w liście rozkazowej mikroprocesorów) a informacją dla ASEMBLERA, że dana linia programu (zawierająca dyrektywę end) jest ostatnią linią tekstu programu Przebieg ćwiczenia Zespół otrzymuje gotowy program, który cyklicznie zapala i gasi wszystkie diody LED. Wydruk tekstu źródłowego znajduje się na końcu niniejszej instrukcji. wszystkie diody zapalone wszystkie diody zgaszone 2.6. Zadanie do wykonania: Zmodyfikować istniejący program tak, aby zapalona dioda "przesuwała" się najpierw od D1 do D7 w sposób pokazany na rys. 3a, a potem od D7 do D1 w sposób pokazany na rys. 3b. Rys. 3a. Sposób przesuwania zapalonej diody od D1 do D7 Rys. 3b. Sposób przesuwania zapalonej diody od D7 do D1 Sposób przypisania linii portu P7 do poszczególnych diod nie pozwala na realizację postawionego zadania za pomocą prostego algorytmu, np. obracania zawartości słowa sterującego diodami. Najprostszym sposobem realizacji zadania jest umieszczenie w pamięci programu tablicy zawierającej kolejne słowa sterujące stanem diod. Umieszczenie tablicy polega na umieszczeniu w odpowiednim miejscu programu etykiety (nazwa tablicy), podaniu dyrektywy db (define byte) oraz podaniu elementów tablicy rozdzielonych przecinkami. W 8

9 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -9- podanym poniżej przykładzie elementy tablicy nie muszą odpowiadać sekwencji pokazanej na rys. 3a i 3b. Tablica: db ; adres bazowy tablicy znaków 3FH, 25, b, X Dyrektywa db (define byte) inicjalizuje bajt/y w pamięci programu. Pierwszy zdefiniowany bajt jest umieszczony pod adresem Tablica, następny pod adresem o 1 większym, itd. Zapis X oznacza kod ASCII litery X Dostęp do tablicy danych umieszczonych w pamięci programu jest możliwy za pomocą instrukcji: movc W wyniku wykonania tej instrukcji do akumulatora zostaje przesłana zawartość komórki pamięci programu o adresie równym sumie początkowej zawartości akumulatora oraz zawartości wskaźnika danych DPTR. Aby odwołać się do uprzednio zdefiniowanej tablicy znaków, trzeba nadać wartość początkową wskaźnikowi danych (adres początku tablicy): mov DPTR, #Tablica Jeżeli teraz chcemy pobrać do akumulatora, ze zdefiniowanej tablicy, wybrany element tablicy, to do akumulatora musimy wpisać jego numer (elementy liczone są od zera) i wykonać instrukcję: movc Jeżeli przykładowo chcemy pobrać element X, to odpowiedni program będzie wyglądał nastepująco: mov DPTR, #Tablica mov A, #3 movc Pobranie innych elementów tablicy wymaga odpowiedniej modyfikacji zawartości akumulatora lub wskaźnika danych (za pomocą instrukcji inc DPTR). UWAGA: tablicę znaków trzeba umieścić w takim miejscu programu, aby licznik rozkazów nie mógł przyjąć wartości odpowiadających adresom w obszarze tablicy znaków, gdyż oznaczałoby to, że pewien fragment tablicy zostanie potraktowany jako kolejna instrukcja do wykonania. Tablica może być umieszczona np. bezpośrednio po instrukcji bezwzględnego skoku (jmp) albo po instrukcji czy i. Program realizujący zadanie z wykorzystaniem opóźnienia programowego (c:\lab_tm\8051\ \przyklady\ diodki.a51) 9

10 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -10- $NOMOD51 #include <C8051F060.INC> ; DEFINICJE SYMBOLI aktywacja_backlight equ P5.3 ; obsluga podswietlenia LCD LEDs equ P2.5 ; aktywacja diod LED CK_D equ P5.6 ; obsluga bufora sterujacego diodami LED TOS equ 30H ; wierzcholek stosu zapal_wszystko equ 0FFH ; zapalenie wszystkich diod ; Umieszczenie poczatku programu pod adresem 0000H cseg AT 0000h ; Konfiguracja mikrokontrolera mov WDTCN, #0DEh ; wylaczenie watchdoga mov WDTCN, #0ADh ; wylaczenie watchdoga mov SFRPAGE, #CONFIG_PAGE ; wlaczenie odpowiedniej konfiguracji ; SFR-ow mov XBR2, #040h ; wlaczenie krosownicy ; PROGRAM GLOWNY ; inicjalizacja mov SP, #TOS ; inicjalizacja stosu clr aktywacja_backlight ; wylaczenie podswietlania LCD clr LEDs ; uaktywnienie diod LED mov A, #zapal_wszystko ; zaladowanie samych jedynek do akumulatora ; glowna petla programu miga: call zapis_led ; wywolanie procedury zapis_led call poczekaj ; wywolanie procedury poczekaj cpl A ; negacja akumulatora jmp miga ; skok do etykiety miga ; ; PROCEDURY ; zapis_led: ; wyslanie danych do diod LED mov P7, A nop ; 'no operation' - opoznienie nop clr CK_D ; obsluga bufora sterujacego diodami LED nop ; 'no operation' - opoznienie nop setb CK_D ; poczekaj: ; generacja opoznienia 10

11 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -11- mov R5, #07H duze: mov R6, #0FFH srednie: mov R7, #0FFH male: djnz R7, male djnz R6, srednie djnz R5, duze ; end ; dyrektywa informujaca, ze skończył się plik źródłowy 3. Część druga opóźnienie sprzętowe Celem drugiej części ćwiczenia jest zaprogramowanie mikrokontrolera 8051 tak, aby uzyskać efekt "wędrującego" światełka z odmierzaniem opóźnienia za pomocą wewnętrznego licznika T0 i wykorzystaniem systemu przerwań do obsługi tego licznika. W ćwiczeniu zostanie wykorzystane tylko jedno źródło przerwań - licznika T0. Zgodnie z dokumentacją 8051 początek procedury obsługi przerwania pochodzącego od licznika T0 musi być umieszczony pod adresem 000BH. org jmp 000BH Timer0_Int gdzie Timer0_Int to nazwa procedury (etykieta) obsługi przerwania (symbol definiowany przez programistę). Nie umieszcza się w tym miejscu całej procedury obsługi przerwania, gdyż "zakryłaby" ona adresy procedur obsługi przerwań zgłoszonych przez inne źródła. Licznik T0 może pracować w czterech trybach: tryb 0 - licznik 13-bitowy tryb 1 - licznik 16-bitowy tryb 2 - licznik 8-bitowy z automatycznym przeładowaniem (autoreload) tryb 3 - dwa niezależne liczniki 8-bitowe Do programowania trybu pracy służy rejestr specjalny (SFR) TMOD (niedostępny bitowo): GATE C/T M1 M0 GATE C/T M1 M licznik T1 licznik T0 Dla potrzeb niniejszego ćwiczenia licznik T0 powinien być 16-bitowym licznikiem (tryb 1 - M1 = 0, M0 = 1) impulsów zegarowych (czasomierzem - C/T = 0), bramkowanie sygnałem zewnętrznym nie może być stosowane (GATE = 0). W tej sytuacji słowo programujące licznik T0 jest następujące: 11

12 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -12- xxxx0001b gdzie x oznacza, że wartość bitu nie jest istotna Licznik T1 może być używany do taktowania portu szeregowego wykorzystywanego przez system uruchomieniowy do komunikacji z komputerem, dlatego najlepiej tak zaprogramowaće licznik T0, aby nie zmienić wartości czterech starszych bitów rejestru TMOD programujących licznik T1. Zostanie to zrealizowane następująco: T0_TMOD equ 01H ; definicja symbolu anl TMOD, # B ; wyzerowanie młodszej części rejestru TMOD orl TMOD, #T0TMOD ; zaprogramowanie licznika T0 Z punktu widzenia programisty licznik T0 jest widoczny jako dwa 8-bitowe rejestry specjalne TH0 i TL0. Aby licznik odmierzał zadane opóźnienie, w rejestrach musi się znaleźć odpowiednia wartość początkowa. Domyślnie częstotliwość zliczania jest 12 razy niższa od częstotliwości zegara (oznacza to, że licznik zlicza co ok. 4µs). Przerwanie jest zgłaszane wtedy, gdy następuje zmiana zawartości licznika z wartości maksymalnej (0FFFFH=65535) na zero przepełnienie licznika. Maksymalne opóźnienie wynosi zatem ok. 262 ms ( µs). W ćwiczeniu potrzebne jest opóźnienie ok. 400 ms. Zostanie ono zrealizowane w następujący sposób: licznik odliczy opóźnienie równe 4 ms, a zmiana stanu diod nastąpi po odliczeniu 100 przerwań. Opóźnienie licznika równe 4 ms oznacza ok zliczeń, toteż wartość początkowa jest równa Dodanie jedynki na końcu wynika stąd, że "przewinięcie" licznika do wartości równej zero wymaga dodatkowych 4µs. Załadowanie wartości początkowej może wyglądać następująco: T0_Reload equ ; definicja symbolu Timer0_Reload: ; procedura inicjalizacji rejestru licznika T0 mov TH0, #High(T0_Reload) ; załaduj starszy bajt T0_Reload to TH0 mov TL0, #Low(T0_Reload) ; załaduj młodszy bajt T0_Reload to TL0 W tym celu odliczenia 100 przerwań należy zdefiniować bitowy wskaźnik (flagę), który poinformuje program główny, że zgłosiło się setne przerwanie. Potrzebny będzie również licznik liczby zgłoszonych przerwań: Ready bit 0 ; wskaźnik odmierzonego opóźnienia bit 20H.0 Del equ 7FH ; adres licznika liczby zgłaszanych przerwań DelReload equ 100 ; liczba przerwań do odliczenia Inicjalizacja licznika T0 wygląda następująco: Timer0_Init: ; wybranie odpowiedniej strony rejestrow specjalnych mov SFRPAGE, #TIMER01_PAGE ; skonfigurowanie licznika T0 w trybie 1 (16-bitowy) anl TMOD, #0F0H ; iloczyn logiczny zawartosci rejestru TMOD i stalej 0F0H orl TMOD, #T0_TMOD ; suma logiczna zawartosci rejestru TMOD i stalej ; T0_TMOD ; zapisanie wartosci poczatkowej licznika 12

13 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -13- call Timer0_Reload ; uruchomienie licznika setb TR0 ; nadanie wartosci 1 bitowi TR0 (TCON) ; przywrocenie odpowiedniej strony rejestrow specjalnych mov SFRPAGE, #CONFIG_PAGE Konieczne jest również uaktywnienie systemu przerwań setb ET0 ; aktywacja przerwania licznika T0 setb EA ; globalna aktywacja systemu przerwań Organizacja rozszerzenia opóźnienia jest następująca: wskaźnik Ready jest zerowany na początku programu, a do licznika zgłoszonych opóźnień podstawiana jest wartość 50: clr Ready ; wyzerowanie wskaźnika mov Del, #DelReload ; rozszerzenie opóźnienia W procedurze obsługi przerwania zawartość Del jest dekrementowana. Jeżeli w wyniku dekrementacji zawartość ta jest równa zeru, to znaczy, że zgłosiło się 50-te przerwanie, założone opóźnienie zostało zatem odmierzone. W tej sytuacji wskaźnik Ready jest ustawiany, a do komórki pamięci o adresie Del podstawiana jest ponownie wartość 50, aby odmierzyć kolejne opóźnienie. W całości procedura obsługi przerwania wygląda następująco: Timer0_Init: ; wybranie odpowiedniej strony rejestrow specjalnych mov SFRPAGE, #TIMER01_PAGE ; skonfigurowanie licznika T0 w trybie 1 (16-bitowy) anl TMOD, #0F0H ; iloczyn logiczny zawartosci rejestru TMOD ; i stalej 0F0H orl TMOD, #T0_TMOD ; suma logiczna zawartosci rejestru TMOD i stalej ; T0_TMOD ; zapisanie wartosci poczatkowej licznika call Timer0_Reload ; uruchomienie licznika setb TR0 ; nadanie wartosci 1 bitowi TR0 (TCON) ; przywrocenie odpowiedniej strony rejestrow specjalnych mov SFRPAGE, #CONFIG_PAGE W programie głównym testowany jest stan wskaźnika Ready. Zapalenie/zgaszenie diod następuje wtedy, gdy Ready ma wartość 1, po czym wskaźnik Ready jest zerowany. czeka: jnb Ready, czeka cpl A ; negacja zawartości akumulatora call zapis_led ; wywolanie procedury zapis_led clr Ready ; wyzerowanie flagi Ready jmp czeka 13

14 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -14- Zespół otrzymuje gotowy program, który cyklicznie zapala i gasi wszystkie diody LED jednocześnie. Zadanie do wykonania: Zmodyfikować program startowy tak, aby zapalona dioda "przesuwała" się podobnie jak w pierwszej części ćwiczenia. Program realizujący zadanie z odmierzaniem opóźnienia przy pomocy wewnętrznego licznika T0 i wykorzystaniem systemu przerwań do obsługi tego licznika (C:\TM_LAB\8051\ przyklady\diodki_int.a51) $NOMOD51 #include <C8051F060.INC> ; DEFINICJE SYMBOLI aktywacja_backlight equ P5.3 ; obsluga podswietlenia LCD LEDs equ P2.5 ; aktywacja diod LED CK_D equ P5.6 ; obsluga bufora sterujacego diodami LED TOS equ 30H ; wierzcholek stosu zapal_wszystko equ 0FFH ; zapalenie wszystkich diod ready bit 0 ; definicja flagi (20H.0) T0_TMOD equ 1H ; konfiguracja licznika T0 w trybie 1 (16-bitowy) T0_Reload equ ; wartość poczatkowa licznika T0 Del equ 7FH ; zliczanie przerwan DelReload equ 100 ; liczba przerwan do zliczenia ; Umieszczenie poczatku programu pod adresem 0000H cseg AT 0000h jmp Poczatek ; skok do faktycznego poczatku programu ; Umieszczenie poczatku procedury obslugi przerwania licznika T0 pod adresem 0000BH org 000BH jmp Timer0_Int ; skok do faktycznego poczatku procedury obslugi ; przerwania licznika T0 ; konfiguracja mikrokontrolera Poczatek: mov WDTCN, #0DEh; wylaczenie watchdoga mov WDTCN, #0ADh; wylaczenie watchdoga mov SFRPAGE, #CONFIG_PAGE ;wlaczenie odpowiedniej ; konfiguracji SFR-ow mov XBR2, #040h ; wlaczenie krosownicy ; PROGRAM GLOWNY ; inicjalizacja mov SP, #TOS ; inicjalizacja stosu 14

15 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -15- clr aktywacja_backlight ; wylaczenie podswietlania LCD clr LEDs ; uaktywnienie diod LED mov A, #zapal_wszystko ; zaladowanie samych jedynek do akumulatora mov Del, #DelReload ; zaladuj liczbe przerwan do odliczenia clr Ready ; wyzerowanie flagi Ready (UWAGA! definicja symbolu jakim ; nazywana jest flaga nie powoduje nadania jej wartosci) call Timer0_Init ; wywolanie procedury konfiguracji licznika T0 ; aktywacja systemu przerwan setb ET0 ; uaktywnienie przerwania licznika T0 setb EA ; globalne uaktywnienie systemu przerwan ; ; glowna petla programu ; miga: jnb Ready, miga ; jezeli flaga Ready=0, nie rob nic cpl A ; negacja akumulatora call zapis_led ; wywolanie procedury zapis_led clr Ready ; wyzerowanie flagi Ready jmp miga ; skok do etykiety czeka ; ; PROCEDURY ; zapis_led: ; wyslanie danych do diod LED mov P7, A nop ; no operation - opoznienie nop clr CK_D ; obsluga bufora sterujacego diodami LED nop ; no operation - opoznienie nop setb CK_D ; Timer0_Init: ; wybranie odpowiedniej strony rejestrow specjalnych mov SFRPAGE, #TIMER01_PAGE ; skonfigurowanie licznika T0 w trybie 1 (16-bitowy) anl TMOD, #0F0H ; iloczyn logiczny zawartosci rejestru TMOD i stalej 0F0H orl TMOD, #T0_TMOD ; suma logiczna zawartosci rejestru TMOD i stalej ; T0_TMOD ; zapisanie wartosci poczatkowej licznika call Timer0_Reload ; uruchomienie licznika setb TR0 ; nadanie wartosci 1 bitowi TR0 (TCON) ; przywrocenie odpowiedniej strony rejestrow specjalnych mov SFRPAGE, #CONFIG_PAGE ;

16 IMiO PW, LPTM, Ćwiczenie 1, Wędrujące światełko -16- Timer0_Reload: ; zapisanie poczatkowej wartosci rejestrow licznika mov TH0, #High(T0_Reload) ; zapis starszego bajtu stalej T0_Reload ; w rejestrze TH0 mov TL0, #Low(T0_Reload) ; zapis mlodszego bajtu stalej T0_Reload ; w rejestrze TL0 ; ; procedura obslugi przerwania licznika T0 Timer0_Int: mov SFRPAGE, #TIMER01_PAGE ; wybierz strone rejestrow specjalnych ; umozliwiajaca obsluge licznika T0 call Timer0_Reload ; zaladuj wartosc poczatkowa do licznika T0 mov SFRPAGE, #CONFIG_PAGE ; wroc do wlasciwej strony rejestrow ; specjalnych djnz Del, Timer0_Int_Exit ; jezeli nie odliczono zadanej liczby przerwan ; wyjdz z procedury mov Del, #DelReload ; zaladuj liczbe przerwan do odliczenia setb Ready ; ustaw flage Ready Timer0_Int_Exit: i ; wroc z procedury obslugi przerwania ; end 16

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED Ćwiczenie 2 Siedmiosegmentowy wyświetlacz LED 2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się studentów ze sposobem obsługi wielopozycyjnego 7-segmentowego wyświetlacza LED multipleksowanego programowo

Bardziej szczegółowo

Ćwiczenie 7 Matryca RGB

Ćwiczenie 7 Matryca RGB IMiO PW, LPTM, Ćwiczenie 7, Matryca RGB -1- Ćwiczenie 7 Matryca RGB IMiO PW, LPTM, Ćwiczenie 7, Matryca RGB -2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z inną oprócz RS - 232 formą szeregowej

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki 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,

Bardziej szczegółowo

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

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne

Bardziej szczegółowo

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury Cel ćwiczenia: Głównym celem ćwiczenia jest nauczenie się obsługi klawiatury. Klawiatura jest jednym z urządzeń wejściowych i prawie zawsze występuje

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Struktura portów (CISC) Port to grupa (zwykle 8) linii wejścia/wyjścia mikrokontrolera o podobnych cechach i funkcjach Większość linii we/wy może pełnić dwie lub trzy rozmaite funkcje. Struktura portu

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Systematyczny przegląd. (CISC) SFR umieszczane są w wewnętrznej pamięci danych (80H 0FFH). Adresowanie wyłącznie bezpośrednie. Rejestry o adresach podzielnych przez 8 są też dostępne bitowo. Adres n-tego

Bardziej szczegółowo

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

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna Technika Mikroprocesorowa Laboratorium 4 Obsługa liczników i przerwań Cel ćwiczenia: Celem ćwiczenia jest nabycie umiejętności obsługi układów czasowo-licznikowych oraz obsługi przerwań. Nabyte umiejętności

Bardziej szczegółowo

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe MIKROKONTROLER RODZINY MCS 5 Cykl rozkazowy mikrokontrolera rodziny MCS 5 Mikroprocesory rodziny MCS 5 zawierają wewnętrzny generator sygnałów zegarowych ustalający czas trwania cyklu zegarowego Częstotliwość

Bardziej szczegółowo

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

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Przerwania w architekturze mikrokontrolera X51

Przerwania w architekturze mikrokontrolera X51 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

Bardziej szczegółowo

Pracownia elektryczno-elektroniczna klasa IV

Pracownia elektryczno-elektroniczna klasa IV Ćwiczenie nr 5 Cel ćwiczenia: Ćwiczenie ma na celu zaznajomienie z metodami odliczania czasu z wykorzystaniem układów czasowo - licznikowych oraz poznanie zasad zgłaszania przerwań i sposobów ich wykorzystywania

Bardziej szczegółowo

Struktura programu w asemblerze mikrokontrolera 8051

Struktura programu w asemblerze mikrokontrolera 8051 Struktura programu w asemblerze mikrokontrolera 8051 Program w asemblerze, dający ten sam kod wynikowy, może być napisany na wiele sposobów. Źle napisany program po pewnym czasie (a być może już w czasie

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Liczniki i timery laboratorium: 03 autor: mgr inż. Michał Lankosz dr hab. Zbisław

Bardziej szczegółowo

architektura komputerów w 1 1

architektura komputerów w 1 1 8051 Port P2 Port P3 Transm. szeregowa Timery T0, T1 Układ przerwań Rejestr DPTR Licznik rozkazów Pamięć programu Port P0 Port P1 PSW ALU Rejestr B SFR akumulator 8051 STRUKTURA architektura komputerów

Bardziej szczegółowo

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

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW MIKROKONTROLER 85 - wiadomości podstawowe. Schemat blokowy mikrokontrolera 85 Obszar rejestrów specjalnych

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Obsługa portu szeregowego laboratorium: 05 autor: mgr inż. Michal Lankosz dr hab.

Bardziej szczegółowo

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie mikrokontrolerów. 8 listopada 2007 Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 8 listopada 2007 Alfanumeryczny wyświetlacz LCD umożliwia wyświetlanie znaków ze zbioru będącego rozszerzeniem ASCII posiada zintegrowany sterownik

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

SYSTEM PRZERWA Ń MCS 51

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

Bardziej szczegółowo

Hardware mikrokontrolera X51

Hardware mikrokontrolera X51 Hardware mikrokontrolera X51 Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Hardware mikrokontrolera X51 (zegar)

Bardziej szczegółowo

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

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów Marcin Stępniak Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów 1. Informacje Poniższe laboratoria zawierają podsumowanie najważniejszych informacji na temat

Bardziej szczegółowo

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

Ćwiczenie 6 Komunikacja z komputerem (łącze RS232) IMiO PW, LPTM, Ćwiczenie 6, Komunikacja z komputerem -1- Ćwiczenie 6 Komunikacja z komputerem (łącze RS232) IMiO PW, LPTM, Ćwiczenie 6, Komunikacja z komputerem -2-1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

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

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Ryszard J. Barczyński, 2009 2013 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

Bardziej szczegółowo

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

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052) Laboratorium Techniki Mikroprocesorowej Informatyka studia dzienne Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z możliwościami zastosowania mikrokontrolerów

Bardziej szczegółowo

Lista rozkazów mikrokontrolera 8051

Lista rozkazów mikrokontrolera 8051 Lista rozkazów mikrokontrolera 8051 Spis treści: Architektura mikrokontrolera Rozkazy Architektura mikrokontrolera Mikrokontroler 8051 posiada trzy typy pamięci: układ zawiera pamięć wewnętrzną (On-Chip

Bardziej szczegółowo

Politechnika Warszawska

Politechnika Warszawska Politechnika Warszawska Wydział Elektryczny Laboratorium Podstaw Techniki Mikroprocesorowej Skrypt do ćwiczenia M.38 Zbieranie pomiarów w czasie rzeczywistym - asembler 1.Wstęp W ćwiczeniach od M.38 do

Bardziej szczegółowo

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

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury Marcin Stępniak Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury 1. Informacje 1.1. Stos Stos jest strukturą danych, w której dane dokładane są na wierzch stosu

Bardziej szczegółowo

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

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec) Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01 PRACA KROKOWA MIKROKONTROLERA Cel ćwiczenia: Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji symulatora. Operacje na plikach,

Bardziej szczegółowo

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51 Architektura mikrokontrolera MCS51 Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Architektura mikrokontrolera

Bardziej szczegółowo

Programowanie mikrokontrolera 8051

Programowanie mikrokontrolera 8051 Programowanie mikrokontrolera 8051 Podane poniżej informacje mogą pomóc w nauce programowania mikrokontrolerów z rodziny 8051. Opisane są tu pewne specyficzne cechy tych procesorów a także podane przykłady

Bardziej szczegółowo

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51 Architektura mikrokontrolera MCS51 Ryszard J. Barczyński, 2018 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Architektura mikrokontrolera

Bardziej szczegółowo

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

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych Dodatek A Wyświetlacz LCD. Przeznaczenie i ogólna charakterystyka Wyświetlacz ciekłokrystaliczny HY-62F4 zastosowany w ćwiczeniu jest wyświetlaczem matrycowym zawierającym moduł kontrolera i układ wykonawczy

Bardziej szczegółowo

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

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51. Ćwiczenie nr 4 Cel ćwiczenia: Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51. Wiadomości wstępne: Klawiatura sekwencyjna zawiera tylko sześć klawiszy.

Bardziej szczegółowo

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny

Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny Ćwiczenie 3 Wyświetlacz ciekłokrystaliczny Warszawa, 2007-11-09 IMiO PW, LPTM, Ćwiczenie 3, Wyświetlacz ciekłokrystaliczny -2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z obsługą programową wyświetlacza

Bardziej szczegółowo

TECHNIKA MIKROPROCESOROWA

TECHNIKA MIKROPROCESOROWA LABORATORIUM TECHNIKA MIKROPROCESOROWA Port transmisji szeregowej USART MCS'51 Opracował: Tomasz Miłosławski 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się ze sposobami komunikacji mikrokontrolera

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

Metody obsługi zdarzeń

Metody obsługi zdarzeń SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

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

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci Laboratorium 1: Wprowadzenie do środowiska programowego oraz podstawowe operacje na rejestrach i komórkach pamięci Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji

Bardziej szczegółowo

Wstęp...9. 1. Architektura... 13

Wstęp...9. 1. Architektura... 13 Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości

Bardziej szczegółowo

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

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów Operacje na stosie Stos jest obszarem pamięci o dostępie LIFO (Last Input First Output). Adresowany jest niejawnie przez rejestr segmentowy SS oraz wskaźnik wierzchołka stosu SP. Używany jest do przechowywania

Bardziej szczegółowo

Start Bity Bit Stop 1 Bit 0 1 2 3 4 5 6 7 Par. 1 2. Rys. 1

Start Bity Bit Stop 1 Bit 0 1 2 3 4 5 6 7 Par. 1 2. Rys. 1 Temat: Obsługa portu komunikacji szeregowej RS232 w systemie STRC51. Ćwiczenie 2. (sd) 1.Wprowadzenie do komunikacji szeregowej RS232 Systemy bazujące na procesorach C51 mogą komunikować się za pomocą

Bardziej szczegółowo

LABORATORIUM. TIMERY w mikrokontrolerach MCS 51

LABORATORIUM. TIMERY w mikrokontrolerach MCS 51 Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Zakład Cybernetyki i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA TIMERY w mikrokontrolerach MCS 51 Opracował: mgr in Ŝ. Andrzej Biedka

Bardziej szczegółowo

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 9-236 Łódź, Pomorska 49/53 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie

Bardziej szczegółowo

Przerwania, polling, timery - wykład 9

Przerwania, polling, timery - wykład 9 SWB - Przerwania, polling, timery - wykład 9 asz 1 Przerwania, polling, timery - wykład 9 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Przerwania, polling, timery - wykład 9 asz 2 Metody obsługi zdarzeń

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

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

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy: Współpraca mikroprocesora z urządzeniami zewnętrznymi Urządzenia wejścia-wyjścia, urządzenia których zadaniem jest komunikacja komputera z otoczeniem (zwykle bezpośrednio z użytkownikiem). Do najczęściej

Bardziej szczegółowo

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

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe Mikrokontroler ATmega32 System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe 1 Przerwanie Przerwanie jest inicjowane przez urządzenie zewnętrzne względem mikroprocesora, zgłaszające potrzebę

Bardziej szczegółowo

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

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

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza

Bardziej szczegółowo

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa Systemy wbudowane Mikrokontroler 8051 Budowa dr inż. Maciej Piechowiak Wprowadzenie rdzeń CPU z jednostką artymetyczno-logiczną (ALU) do obliczeń na liczbach 8-bitowych, uniwersalne dwukierunkowe porty

Bardziej szczegółowo

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz

Bardziej szczegółowo

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

Pamięci EEPROM w systemach mikroprocesorowych, część 2 Pamięci EEPROM w systemach mikroprocesorowych, część 2 Tym artyku³em koòczymy prezentacjí sposobûw programowania szeregowych pamiíci EEPROM. Poniewaø najwiíksz¹ popularnoúci¹ ciesz¹ sií wúrûd uøytkownikûw

Bardziej szczegółowo

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 Dane techniczne : Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780 a) wielkość bufora znaków (DD RAM): 80 znaków (80 bajtów) b) możliwość sterowania (czyli podawania kodów znaków) za pomocą

Bardziej szczegółowo

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

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51 Ćwiczenie 30 Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51 Cel ćwiczenia Poznanie architektury oraz zasad programowania mikrokontrolerów rodziny 51, aby zapewnić

Bardziej szczegółowo

Programowanie w językach asemblera i C

Programowanie w językach asemblera i C Programowanie w językach asemblera i C Mariusz NOWAK Programowanie w językach asemblera i C (1) 1 Dodawanie dwóch liczb - program Napisać program, który zsumuje dwie liczby. Wynik dodawania należy wysłać

Bardziej szczegółowo

SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej.

SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej. SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej. Prowadzący: Dr M. Wnuk Wykonał: Marcin Kawalec 1. Wstęp. Zadaniem projektowym było zaprojektowanie i wykonanie bariery świetlnej. Układ

Bardziej szczegółowo

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

Bardziej szczegółowo

Zerowanie mikroprocesora

Zerowanie mikroprocesora Zerowanie mikroprocesora Zerowanie (RESET) procesora jest potrzebne dla ustalenia początkowych warunków pracy po włączeniu zasilania: adres początku programu stan systemu przerwań zawartość niektórych

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

Opis układów wykorzystanych w aplikacji

Opis układów wykorzystanych w aplikacji Opis układów wykorzystanych w aplikacji Układ 74LS164 jest rejestrem przesuwnym służącym do zamiany informacji szeregowej na równoległą. Układ, którego symbol logiczny pokazuje rysunek 1, posiada dwa wejścia

Bardziej szczegółowo

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów. Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Obsługa portów wejścia/wyjścia mikrokontrolera laboratorium: 02 autor: mgr inż.

Bardziej szczegółowo

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

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. 13 4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy,

Bardziej szczegółowo

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

LABORATORIUM nr 2. Temat: Obsługa wyświetlacza siedmiosegmentowego LED Laboratorium nr 2 Obsługa wyświetlacza siedmiosegmentowego Mirosław Łazoryszczak LABORATORIUM nr 2 Temat: Obsługa wyświetlacza siedmiosegmentowego LED 1. ARCHITEKTURA MCS-51 (CD.) Do realizacji wielu zadań

Bardziej szczegółowo

Szkolenia specjalistyczne

Szkolenia specjalistyczne Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,

Bardziej szczegółowo

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP Liczniki, rejestry lab. 08 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA GÓRNICZO-HUTNICZA WWW.AGH.EDU.PL

Bardziej szczegółowo

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

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3. 1. Przerwania na procesorze 80C51 Przerwania są mechanizmem umożliwiającym połączenie zdarzeń (sygnałów) z odpowiednim wykonaniem fragmentu programu - wywoływanymi niezależnie od aktualnie wykonywanego

Bardziej szczegółowo

Asembler - język maszynowy procesora

Asembler - język maszynowy procesora UWAGA! Treść niniejszego dokumentu powstała na podstawie cyklu artykułów pt. Mikrokontrolery? To takie proste zamieszczonych w czasopiśmie Elektronika dla Wszystkich. Asembler - język maszynowy procesora

Bardziej szczegółowo

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

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

Bardziej szczegółowo

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

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3. 1. Mechanizm przerwań w procesorze C51 Przerwania są mechanizmem umożliwiającym połączenie zdarzeń (sygnałów) z odpowiednim wykonaniem fragmentu programu - wywoływanymi niezależnie od aktualnie wykonywanego

Bardziej szczegółowo

Programowanie mikrokontrolerów. 5 grudnia 2007

Programowanie mikrokontrolerów. 5 grudnia 2007 Programowanie mikrokontrolerów Marcin Engel Marcin Peczarski 5 grudnia 2007 Przerwania Umożliwiają asynchroniczną obsługę różnych zdarzeń, np.: zmiana stanu wejścia, zakończenie przetwarzania analogowo-cyfrowego,

Bardziej szczegółowo

Techniki mikroprocesorowe i systemy wbudowane

Techniki mikroprocesorowe i systemy wbudowane Techniki mikroprocesorowe i systemy wbudowane Wykład 1 Procesory rodziny AVR ATmega. Wstęp Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział

Bardziej szczegółowo

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

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro 1. Cel ćwiczenia Celem ćwiczenia jest zaprojektowanie sterowania układem pozycjonowania z wykorzystaniem sterownika VersaMax Micro oraz silnika krokowego. Do algorytmu pozycjonowania wykorzystać licznik

Bardziej szczegółowo

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Współpraca z układami peryferyjnymi i urządzeniami zewnętrznymi Testowanie programowe (odpytywanie, przeglądanie) System przerwań Testowanie programowe

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

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

LABORATORIUM UKŁADY WY Ś WIETLANIA INFORMACJI Z WY Ś WIETLACZAMI 7-SEGMENTOWYMI LED Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Zakład Cybernetyki i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA UKŁADY WY Ś WIETLANIA INFORMACJI Z WY Ś WIETLACZAMI 7-SEGMENTOWYMI

Bardziej szczegółowo

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak TMiK Podstawy Techniki Mikroprocesorowej Materiały pomocnicze do wykładu Lidia Łukasiak 1 Treść przedmiotu Wprowadzenie System mikroprocesorowy Mikroprocesor - jednostka centralna Rodzaje pamięci Mikrokontrolery

Bardziej szczegółowo

Kurs Podstawowy S7. Spis treści. Dzień 1

Kurs Podstawowy S7. Spis treści. Dzień 1 Spis treści Dzień 1 I System SIMATIC S7 - wprowadzenie (wersja 1401) I-3 Rodzina sterowników programowalnych SIMATIC S7 firmy SIEMENS I-4 Dostępne moduły i ich funkcje I-5 Jednostki centralne I-6 Podstawowe

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

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

4 Transmisja szeregowa, obsługa wyświetlacza LCD. 1 4 Transmisja szeregowa, obsługa wyświetlacza LCD. Zagadnienia do przygotowania: - budowa i działanie interfejsu szeregowego UART, - tryby pracy, - ramka transmisyjna, - przeznaczenie buforów obsługi

Bardziej szczegółowo

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33 Spis treści 3 1. Wprowadzenie...11 1.1. Wstęp...12 1.2. Mikrokontrolery rodziny ARM...13 1.3. Architektura rdzenia ARM Cortex-M3...15 1.3.1. Najważniejsze cechy architektury Cortex-M3... 15 1.3.2. Rejestry

Bardziej szczegółowo

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4 Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest

Bardziej szczegółowo

Podstawy Informatyki Języki programowania c.d.

Podstawy Informatyki Języki programowania c.d. Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

Technika mikroprocesorowa I Wykład 2

Technika mikroprocesorowa I Wykład 2 Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,

Bardziej szczegółowo

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307 Język C Wykład 9: Mikrokontrolery cz.2 Łukasz Gaweł Chemia C pokój 307 lukasz.gawel@pg.edu.pl Pierwszy program- powtórka Częstotliwość zegara procesora μc (należy sprawdzić z kartą techniczną μc) Dodaje

Bardziej szczegółowo

Opis procedur asemblera AVR

Opis procedur asemblera AVR Piotr Kalus PWSZ Racibórz 10.05.2008 r. Opis procedur asemblera AVR init_lcd Plik: lcd4pro.hvr Procedura inicjuje pracę alfanumerycznego wyświetlacza LCD za sterownikiem HD44780. Wyświetlacz działa w trybie

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo