Mikrokontrolery III doc

POLITECHNIKA ŚLĄSKA

WYDZIAŁ TRANSPORTU

KATEDRA SYSTEMÓW INFORMATYCZNYCH TRANSPORTU

ROK AKADEMICKI 2010/2011

LABORATORIUM Z ELEKTRONIKI

SPRAWOZDANIE Z ĆWICZENIA LAB. NR 9

TEMAT: Pamięć wewnętrzna mikrokontrolera 8051

Data wykonania ćwiczenia lab.: 28.03.2011

GRUPA DZIEKAŃSKA: T 21 B

  1. Michał Kudela

  2. Jaromir Bracki

  3. Piotr Zieliński

KATOWICE, DNIA 03.04.2011

  1. Pamięć wewnętrzna mikrokontrolera 8051.

ROM - Największy rozmiar zbioru obiektu, który może powstać po kompilacji, to

64kB, jakkolwiek znacznie większe rozmiary pamięci ROM (do 1MB - kompilator

Keil, do 4MB - kompilator Raisonance) mogą być obsługiwane w trybie

przełączanych banków pamięci (BANKED) opisanym w dalszej części artykułu.

Zmienne mogą być deklarowane przy użyciu słowa kluczowego code

umieszczającego je w pamięci programu mikrokontrolera. Nazwa zmienne jest tu

myląca, ponieważ zadeklarowana na przykład tablica, może pełnić rolę wzorca –

nigdy zaś zmiennej.

RAM - Dostępne są trzy modele pamięci: SMALL, COMPACT i LARGE.

mikrokontrolera

adresowanej przez port P0 (z bankami przełączanymi przez P2). Używany

jest tryb adresowania pośredniego. Wewnętrzne rejestry mikrokontrolera

są w dalszym ciągu używane do przechowywania lokalnych zmiennych i

parametrów.

adresowanej za pośrednictwem @DPTR. Wewnętrzne rejestry

mikrokontrolera w dalszym ciągu używane są do przechowywania

zmiennych i parametrów.

BANKED - (przełączane banki pamięci). Program może zajmować do 1MB -

kompilator Keil lub 4MB - kompilator Raisonance. Pamięć przełączana jest w

formie „stron” o rozmiarze 64kB każda przy pomocy innych niż właściwe dla P0 i

P1 wyprowadzeń mikrokontrolera albo też za pomocą zatrzasków latch

umieszczonych w przestrzeni adresowej, powyżej adresu 0xFFFF. Każdy 64kB blok

pamięci programu musi posiadać ustawiony tak zwany blok wspólny (COMMON

AREA) dla biblioteki funkcji przełączającej banki pamięci.

SMALL - pamięć RAM, 128 bajtów

Używając modelu SMALL, należy zredukować do minimum liczbę zmiennych globalnych

używanych w programie. Pozwoli to programowi linkera na nakładkowanie funkcji w taki

sposób, aby aplikacja pracowała efektywnie. Dla mikrokontrolerów z serii 8052 / 8032

deklaracje zmiennych w przestrzeni IDATA powyżej adresu 0x80 mogą pozwolić aplikacji

na uzyskanie dodatkowej przestrzeni do przechowywania zmiennych. Należy jednak

pamiętać, że obszar ten używany jest również na stos mikrokontrolera.

Model SMALL można także stosować przy kompilacji nawet bardzo dużych programów,

umieszczając obiekty duże i takie, do których nie jest wymagany bardzo szybki dostęp, w

zewnętrznej pamięci RAM. Dobrze jest tam również ulokować zmienne, które muszą być

dostępne w czasie rzeczywistym podczas uruchamiania urządzenia z mikrokontrolerem

przy pomocy emulatora, ponieważ emulatory (takie jak produkowane przez Hitex albo

Raisonance) mają bezpośredni dostęp do tego segmentu pamięci. Ten model najlepszy

jest również dla aplikacji o krytycznym czasie wykonywania, jako że gwarantuje on

najszybszy dostęp do zmiennych i parametrów przez funkcje, podczas gdy duże obszary

danych mogą zostać umieszczone poza układem mikrokontrolera.

COMPACT - pamięć RAM 256 bajtów poza układem, 128 lub256 bajtów w układzie.

COMPACT to model pamięci dostosowany do programów, gdzie dla przykładu wewnętrzny

RAM mikrokontrolera przeznaczony jest na zmienne systemu operacyjnego. Model ten

jest rzadko używany dla całego programu. Najbardziej użyteczna kombinacja to jego

połączenie z modelem SMALL używanym lokalnie dla procedur obsługi przerwań.

COMPACT stosuje się przede wszystkim do programów zawierających dużą liczbę

zmiennych, które nie wymagają krótkiego czasu dostępu. Odbywa się on bowiem za

pomocą instrukcji MOVX A,@Ri wykorzystującej tryb adresowania pośredniego przy

pomocy rejestru R0 lub R1. COMPACT może być również bardzo użyteczny dla aplikacji

wymagających stosu o dużym rozmiarze, co może oznaczać konieczność umieszczenia go

w zewnętrznej pamięci RAM poza układem mikrokontrolera.

LARGE - pamięć RAM do 64kB poza układem, 128 lub 256 bajtów w układzie.

Model LARGE pozwala na niezbyt szybki dostęp do bardzo dużego obszaru pamięci RAM i

jest przypuszczalnie najłatwiejszym do użycia. Podobnie jak poprzednio, niezbyt często

używa się go w odosobnieniu – raczej w połączeniu z modelem SMALL. Tak jak w

COMPACT, nadal używane są rejestry mikrokontrolera.

  1. Opis blokowy programów, które zostały wykonane podczas Laboratorium:

    1. Odliczanie I :

MOV R1, #0FH ;zapisanie do rejestru R1 wartości 15

MOV A, R1 ;zapisanie do akumulatora zawartości R1

MOV R0, A ;zapisanie A w R0

L00 ;etykieta

LCALL LCD_CLR ;wywołanie czyszczenia wyświetlacza

MOV A, R0 ;zapisanie do akumulatora zawartości R0

LCALL WR_HEX ;wywołanie wyświetlenia liczby z akumulatora

MOV A, R0 ;zapisanie do akumulatora zawartości R0

JZ L01 ;skok do L01, gdy akumulator = 0

DEC A ;dekrementacja A

MOV R0, A ;zapisanie A w R0

MOV R1, #0AH ;zapisanie w R1 wartości 10

LCALL DEL_100 ;wywołanie opóźnienia A*ms

LJMP L00 ;skok do etykiety

L01: ;etykieta

CLR P1.7 ;zapalenie diody

L02: ;etykieta

LJMP L02 ;skok do etykiety

.END ;koniec programu

Schemat blokowy:

N

T

  1. Odliczanie II :

MOV R1, #0FH ;zapisanie do rejestru R1 wartości 15

MOV A, R1 ;zapisanie do akumulatora zawartości R1

MOV R0, A ;zapisanie A w R0

L00 ;etykieta

LCALL LCD_CLR ;wywołanie czyszczenia wyświetlacza

MOV A, R0 ;zapisanie do akumulatora zawartości R0

LCALL WR_HEX ;wywołanie wyświetlenia liczby z akumulatora

MOV A, R0 ;zapisanie do akumulatora zawartości R0

JZ L01 ;skok do L01, gdy akumulator = 0

DEC A ;dekrementacja A

MOV R0, A ;zapisanie A w R0

MOV R1, #0AH ;zapisanie w R1 wartości 10

LCALL DEL_100 ;wywołanie opóźnienia A*ms

LJMP L00 ;skok do etykiety

L01: ;etykieta

LJMP L01 ;skok do etykiety

.END ;koniec programu

Schemat blokowy:

N

T

  1. Rejestr :

Schemat blokowy:

N

T

  1. Odliczanie od wartości zapisanych w rejestrze

Schemat blokowy

N T

T

N

N

T

  1. Odliczanie od 00H do 0FH

Schemat blokowy :

T

N

T N

  1. WNIOSKI:

Opis działania programów, które zostały wykonane podczas Laboratorium:

  1. Program wyświetla 0F przez ok. 1 sekundę, a następnie odlicza do zera wstecz. Dioda zapala się od razu po osiągnięciu wartości zerowej licznika i świeci bezustannie, aż do momentu zakończenia programu.

  2. Program wyświetla 0F przez ok. 1 sekundę, a następnie odlicza do zera wstecz. Dioda nie zapala się po osiągnięciu wartości zerowej licznika.

  3. Program po wciśnięciu klawisza „0” wyświetla „07” natomiast po wciśnięciu innego dowolnego klawisza wyświetla „05”.

  4. Program liczy wstecz z interwałem jednej sekundy do zera od jednej z dwóch wartości zapisanych w rejestrach R1( naciśniecie o powoduje wybór banku 0 , naciśniecie każdego innego wybór banku 2)

  5. Program liczy w przód od 00H do 0FH z interwałem 0,5 sekundy i wyświetla wynik na wyświetlaczu LCD


Wyszukiwarka

Podobne podstrony:
program I III doc
Wykłady PST sem 6 III doc
PROJ1 szablon 2009 10 -rok III - DOC
Rozdział III 1 (2) doc
Rozdział III 4 doc
Rozdział III 3 (2) doc
odpowiedzi lista III doc
III 3 doc
Rozdział III 1 doc
III 2 doc
Projekt II obliczenia (III) (2) doc
Rozdział III 2 doc
Rozdział III 6 doc
Philip Kotler cz III doc
Rozdział III 5 doc
Rozdział III 5 (2) doc
Rozdział III 4 (2) doc
III 1 doc
program I III doc

więcej podobnych podstron