Ćwiczenie s1 - Katedra Energoelektroniki i Automatyki Systemów

Transkrypt

Ćwiczenie s1 - Katedra Energoelektroniki i Automatyki Systemów
Mikrokontrolery 8 bit - wprowadzenie
TECHNIKA MIKROPROCESOROWA – 3EB
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
WWW.KEIASPE.AGH.EDU.PL
Temat:
AKADEMIA GÓRNICZO-HUTNICZA
WWW.AGH.EDU.PL
Mikrokontrolery 8 bitowe – wprowadzenie
Cele ćwiczenia
 Zapoznanie z budową i podstawowymi elementami mikrokontrolerów
 Nabycie umiejętności tworzenia prostych aplikacji programowych dla mikrokontrolerów 8 bit w
języku Assembler
Wstęp
Współcześnie dostępnych jest na rynku bardzo wiele rodzin i typów mikroprocesorów i
mikrokontrolerów.
Mikroprocesor - to układ elektroniczny wysokiej skali integracji, zwykle w jednolitej obudowie
układu scalonego, umożliwiający prowadzenie operacji arytmetycznych i logicznych na danych
cyfrowych o różnej długości słowa bitowego. Operacje mogą być prowadzone wielowątkowo,
równocześnie. Efektem działania są wyniki – dane w postaci cyfrowej.
Mikrokontroler - to układ elektroniczny wysokiej skali integracji, zwykle w jednolitej obudowie
układu scalonego, który zawiera w sobie mikroprocesor oraz inne układy współpracujące z nim,
umożliwiające wprowadzenie i wyprowadzenie danych w procesora dla innych układów
zewnętrznych, zbieranie danych oraz zapis aplikacji tworzonej przez programistę dla całego
mikrokontrolera.
Najważniejsze trzy elementy mikrokontrolera to:
 Mikroprocesor – z jednostką arytmetyczno-logiczną ALU i rejestrami roboczymi,
 pamięć ROM (dla aplikacji) i RAM (dla danych)
 układ wej/wyj (I/O) – komunikacja z peryferiami zewnętrznymi.
Schemat blokowy ogólnej architektury mikrokontrolerów pokazano na rysunku 1.
PAMIĘĆ
ROM
PAMIĘĆ
RAM
Ukł.
czasowolicznikowy
we/wy
szeregowe
lub...
ZEGAR
8 bit
CPU
System
przerwań
Blok
we/wy
8
8
8
8
P3
P2
P1
P0
Rysunek 1 – Mikrokontroler 8 bit – schemat blokowy i najważniejsze elementy jego architektury
W branży mikrokontrolerów wciąż podstawą organizacji ich architektury jest opracowana w latach
80-tych i 90-tych XX wieku rodzina mikrokontrolerów 8051. Najważniejsze i najpopularniejsze
współcześnie rodziny mikrokontrolerów, bazujące historycznie na tej architekturze to: AVR, ARM …
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
1/8
Mikrokontrolery 8 bit – wprowadzenie
Na rysunku 2 pokazano bardziej szczegółowo elementy mikrokontrolera, z umieszczonym pod
spodem opisem.
Rysunek 2 – Mikrokontroler 8 bit – szczegółowa budowa i architektura
Najważniejsze elementy – rejestry, flagi, wskaźniki:
 ALU – jednostka arytmetyczno-logiczna – wynik działania z ALU zawsze do A, ACC
 A, ACC (B) – rejestr(y) akumulatora
 PSW – słowo stanu --- rejestr flag – m.in. C (CY), P. …
 SP – wskaźnik stosu
 PC – licznik rozkazów – 16 bit
 DPTR – rej adresowania zewnętrznego – 16 bit
 4 porty we/wy – każdy port 8 bitowy (8 linii) – każda linia może być wej lub wyj. Każdy port
ma przyporządkowany rejestr 8 bitowy w pamięci RAM mikrokontrolera
WAŻNE! Więcej szczegółowych informacji można znaleźć w wybranych pozycjach literaturowych
zebranych na stronie WWW oraz w serwisach internetowych poświęconych mikrokontrolerom 8
bitowym rodziny 8051 i AVR.
Podstawa – rodzina mikrokontrolerów 8051
Przedstawiając mikrokontroler danej rodziny, wybiera się kilka najważniejszych elementów.
Jednym z nich jest mapa pamięci RAM, z której może korzystać programista w celu umieszczania
danych do działań oraz wyników działań realizowanych w ramach tworzonej przez niego aplikacji.
W mapie pamięci RAM podane są adresy komórek pamięci (rejestrów) oraz zaznaczone obszary w
których nadano rejestrom np. specjalne nazwy, komórki pamięci cechują się określonymi
właściwościami lub są zarezerwowane do konkretnych celów.
Na rysunku 3 pokazano mapę pamięci klasycznego mikrokontrolera rodziny 8051.
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
2/8
Mikrokontrolery 8 bit – wprowadzenie
Rysunek 3 – Mapa pamięci RAM dla mikrokontrolerów rodziny 8051
Ważne informacje praktyczne:
W mikrokontrolerach rodziny 8051 wszystkie operacje arytmetyczne i logiczne na danych są
wykonywane w jednym rejestrze – akumulatorze A (ACC). Wynik operacji (np. dodawania,
odejmowania itp.) pojawia się również w rejestrze A i dlatego, jeżeli jest on istotny i ma być
zachowany, zawsze trzeba go natychmiast przesłać do jakiejś komórki pamięci RAM
mikrokontrolera. W przeciwnym wypadku zostanie on „nadpisany” nowymi danymi wpisanymi do
rejestru A i utracony.
Tylko mnożenie i dzielenie są wykonywane na dwóch rejestrach: A – akumulator i B – akumulator
pomocniczy.
Mikrokontrolery mogą być programowane różnymi metodami i przy użyciu różnych języków
programowania. Najpowszechniej stosowany obecnie jest język C i C++. Jednak podstawowym
językiem jest tzw. Assembler. Jego rozkazy są bezpośrednio kompilowane na tzw. język
maszynowy (zapisany za pomocą 0 i 1-ek, zrozumiały dla mikrokontrolera). Posługiwanie się
Assemblerem wymaga od programisty większej wiedzy technicznej na temat budowy i
funkcjonowania danego mikrokontrolera i zmusza go do znajomości jego budowy i architektury.
Dlatego też zwykle pierwsze zapoznanie z programowaniem rozpoczyna się właśnie od tego języka.
Pisząc bowiem programy w języku C korzysta się z bibliotek, gdzie zapisane są i przyporządkowane
nazwy określonych rejestrów i ich lokalizacja w pamięci mikrokontrolera, a programista nie musi
dokładniej wnikać w architekturę mikrokontrolera. W rzeczywistości jednak jest to złudne poczucie
komfortu, bowiem jej znajomość pozwala na sprawniejsze uruchamianie aplikacji na rzeczywistych
układach, gdzie ważne jest dodatkowo dobre skonfigurowanie np. sygnałów przerwań, określonych
parametrów startowych itp.
WAŻNE! Więcej szczegółowych informacji można znaleźć w wybranych pozycjach literaturowych
zebranych na stronie WWW oraz w serwisach internetowych poświęconych mikrokontrolerom 8
bitowym rodziny 8051 i AVR.
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
3/8
Mikrokontrolery 8 bit – wprowadzenie
Program ćwiczenia -----------------------------------------1) Zapoznanie z pakietem Pinnacle 52 – wersja tylko 32 bitowa!!!
2) Zapoznanie z ogólną strukturą programu w języku Assembler i zasadami programowania
3) Napisanie i uruchomienie prostego programu dla mikrokontrolera wprowadzającego do różnych
trybów adresowania danych umieszczanych w pamięci RAM lub rejestrach roboczych np. A.
Pakiet Pinnacle 52 – symulator mikrokontrolerów rodziny 8051
Pakiet dostępny tylko w wersji dla komputerów 32 bitowych!!!
Można znaleźć w serwisach internetowych inne symulatory – jednak nie są one już tak przejrzyste
graficznie, a zarazem zawierające najpotrzebniejsze informacje dla programisty.
W pakiecie Pinnacle 52 możliwe jest pisanie programów, ich kompilacja i symulacja pracy na
platformach architektury mikrokontrolerów rodziny 8051 i 8052. Wygląd okna głównego narzędzia
pokazano na rysunku 4.
Rysunek 4 – Okno pakietu Pinnacle 52 z oknami podglądu najważniejszych elementów architektury
mikrokontrolerów
W oknie tym uruchomione są już okna: nowego projektu, widoku rejestrów, widoku kodu
programu, widoku pamięci wewnętrznej RAM oraz widoku portów. Wybrane okna podglądu można
uruchomić z menu View – jak pokazano na rysunku 5. Na początku użytkowania pakietu
należy wybrać te okna podglądu i rozmieścić je w oknie głównym, tak by były dobrze
widoczne.
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
4/8
Mikrokontrolery 8 bit – wprowadzenie
Rysunek 5 – Wybór okien do widoku w panelu głównym
Program nr 001 – podstawowe tryby adresowania pamięci RAM
Zapoznanie z działaniem pakietu symulacyjnego najlepiej zacząć już na pewnym prostym
przykładzie. Dlatego w pliku nr 001 proponuje się poznanie zasad i podstawowych trybów
adresowania pamięci RAM i rejestrów. Program zapisuje się w języku Assembler’a – aby poznać
dokładniej architekturę wewnętrzną mikrokontrolera.
Pisząc programy Assemblerowe włączamy CapsLock.
UNIKAMY RÓWNIEŻ POLSKICH ZNAKÓW!!!
Ogólna struktura programu w języku Assembler:
(komendy, dyrektywy, warunki, ustawienia początkowe – może ich nie być)
ETYKIETA1:
ROZKAZY …
ROZKAZY …
ETYKIETA2:
ROZKAZY …
…
SKOK DO ETYKIETY (np. 1)
END
W programie nr 001 pokazano wybrane tryby adresowania oraz pokazano prostą obsługę portów
wej/wyj. Są to elementy niezbędne do sprawnego tworzenia nawet najprostszych aplikacji na
mikrokontrolery rodziny 8051 i AVR. Poniżej zamieszczono zapis kodu programu nr 001.
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
5/8
Mikrokontrolery 8 bit – wprowadzenie
; ----- PROGRAM 001 ------------------------------------------------; TRYBY ADRESOWANIA I OBSLUGA PORTOW
ADRESY1:
MOV R0,#15
MOV R1,#15H
MOV R2,#00010001B
SETB RS0
ADRESY2:
MOV R0,00H
MOV 09H,02H
MOV 30H,01H
ADRESY3:
MOV A,R1
MOV R2,A
CLR RS0
OWY
MOV R7,A
ADRESY4:
MOV R0,#50H
MOV @R0,A
ADRESY5:
MOV 40H,#26
MOV 40H+2,#27
MOV 40H+4,#28
ADRESY6:
SETB 20H.0
SETB 21H.1
PORT_OUT_IN:
MOV P0,42H
MOV P1,44H
MOV 52H,P2
MOV 54H,P3
LJMP ADRESY1
END
;ADR NATYCHMIASTOWE REJESTROWE
;WYBOR BANKU REJESTRÓW NR 01 (1)
;ADR BEZPOSREDNIE REJESTROWE
;ADR BEZPOSREDNIE
;ADR REJESTROWE
;ZMIANA BANKU REJ NA NR 00 (0) - POPRZEDNI, DEFAULT-
;ADR POSREDNIE
;ADR INDEKSOWE
;ADR BITOWE (KOMORKI 20H DO 2FH)
;SKOK DO PIERWSZEJ ETYKIETY - PETLA PROGRAMU !!!
; --------------------------------------------------------------------------------
Ważne – obsługa pakietu symulacji na przykładzie pliku nr 001
Na przykładzie pliku prowadzący pokazuje i wyjaśnia postępowanie związane kompilacją programu,
symulacją krokową i ciągłą, obserwacją działania programu itp. Najważniejsze elementy i narzędzia
wykorzystywane w trakcie symulacji pokazano na rysunkach 6, 7 i 8.
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
6/8
Mikrokontrolery 8 bit – wprowadzenie
Rysunek 6 – Najważniejsze elementy obsługi symulacji aplikacji mikrokontrolera
Rysunek 7 – Narzędzie kompilacji i linkowania – generacja kodu maszynowego dla mikrokontrolera
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
7/8
Mikrokontrolery 8 bit – wprowadzenie
Rysunek 8 – Skróty klawiszowe do obsługi symulacji – praca krokowa – klawisz funkcyjny F8
PODSUMOWANIE
Po zajęciach Student powinien:
 znać budowę i zasadę działania prostego mikrokontrolera 8 bitowego rodziny 8051
 umieć poprawnie napisać prosty program aplikacyjny dla mikrokontrolera w języku Assembler
 umieć skompilować plik programu i zasymulować jego pracę w środowisku Pinnacle 52, z
umiejętnością wskazania rejestrów
KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII
8/8

Podobne dokumenty