Untitled15

Untitled15



22 4. Jak odczytywać i zapisywać dane ...

zmierzyć temperaturę, to dopóki nie zostanie wykonany pomiar, dopóty nie wiadomo jaka jest jej wartość. Należy pamiętać, że:

•    pamięć ROM jest pamięcią tylko do odczytu, mikrokontroler nie może do niej nic wpisać,

•    pamięć RAM jest przystosowana do zapisu i odczytu, mikrokontroler może odczytywać i zapisywać dane.

Realizowany przez mikrokontroler program jest ciągiem poleceń, instrukcji, rozkazów, które są zrozumiałe przez mikrokontroler. Ponieważ konstruktorem mikrokontrolera 8051 jest amerykańska firma Intel, dlatego nazwy rozkazów pochodzą z języka angielskiego, podobnie jak wszystkie inne pojęcia wiążące się z mikrokontrolerem. W instrukcjach nie są stosowane pełne nazwy poleceń, a jedynie ich skróty, zwane mnemonikami. W zależności od typu instrukcji w skład instrukcji poza mnemonikiem wchodzą argumenty (od jednego do trzech).

Najpowszechniejszym rozkazem są rozkazy, instrukcje przesłań, których składnia jest następująca:

źródło (source),_

skąd przesyłana (pobierana) jest dana

MOV dst, ser


mnemonik,_

nazwa instrukcji, rozkazu


przeznaczenie (destination), dokąd przesyłana jest dana


Skrót instrukcji MOV pochodzi od słowa move czyli przesunięcia, ruszenia czegoś z miejsca. W rozkazie tym użyto tylko dwóch argumentów. Pierwszy (dst) do określenia komórki pamięci lub rejestru specjalnego SFR, do których ma być przesunięta dana. Drugi (ser) także do określenia adresu komórki pamięci lub rejestru specjalnego, z których ma być pobrana dana. Kolejność argumentów jest bardzo ważna. W instrukcjach 2-argumentowych jako pierwszy występuje zawsze adres docelowy, a jako drugi adres źródłowy. W innych instrukcjach liczba argumentów zmienia się od jednego do trzech, w zależności od realizowanej funkcji.

Patrząc na rysunek 4-1 nietrudno zauważyć, że do adresowania wewnętrznej pamięci RAM wystarcza 8 bitów, czyli jeden bajt, ponieważ wewnętrzna magistrala adresowa jest 8-bitowa.

Dlatego przesłanie danych między dwiema komórkami wewnętrznej pamięci RAM można wykonać poprzez następujący rozkaz:

MOV 4Ah . 8

Wykonując ten rozkaz, mikrokontroler pobiera zawartość komórki o adresie 8 i przesyła ją do komórki o adresie 4Ah. Adresy argumentów podane zostały w różnych kodach. Pierwszy (4Ah) w kodzie szesnastkowym, a drugi (8) w kodzie dziesiętnym. Adresy można także podawać w kodzie binarnym i ósemkowym,

np:

4Ah 74 = 0100 lOlOb = 112o

Przedstawiony sposób adresowania obu komórek pamięci RAM nazywany jest adresowaniem bezpośrednim, ponieważ oba adresy są częścią rozkazu i w sposób jawny (bezpośredni) wskazują na miejsce w pamięci RAM.

To co jest zrozumiałe dla człowieka wcale nie musi być zrozumiałe dla mikroprocesora. Program zawierający mnemoniki wykonywanych instrukcji jest czytelny dla człowieka. Jeśli te same instrukcje mają być zrozumiałe dla mikrokontrolera, to muszą zostać przetłumaczone na ciąg zero-jedynko wy. Proces tłumaczenia i kodowania nazw instrukcji i ich argumentów nazywany jest asemblacją. Wynika z tego (w dużym skrócie), że program będący ciągiem poleceń tłumaczony jest na kod wynikowy za pośrednictwem programu zwanego asemblerem. Przytoczona powyżej instrukcja MOV 4Ah,8 zamieniona zostaje na trzy bajty w postaci:

kod rozkazu

1000 OlOlb •    • au'    •

0000 100Gb ^ adres komork. pamięci z której

0100 lOlOb pobierana jest dana

Xxadres komórki pamięci do której przesyłana jest dana

W celu łatwiejszej interpretacji z ciągu zero-jedynkowego wyodrębnione zostały 3 bajty, a w każdym bajcie rozróżniono 4 mniej i 4 bardziej znaczące bity. Taka postać rozkazów jest przyjmowana i wykonywana przez mikrokontroler. Nie jest ona za bardzo czytelna dla człowieka. Jeśli program liczy kilkaset lub kilka tysięcy takich ciągów zero-jedynkowych to nietrudno o pomyłkę. Dlatego na przyszłość należy pozostać przy mnemonikach instrukcji.

Pamięć programu ROM oraz zewnętrzna pamięć danych RAM adresowane są za pośrednictwem 16-bitowej magistrali adresowej. Dlatego do ich adresowania należy użyć 16-bitowego rejestru. Takim rejestrem jest licznik rozkazów PC oraz wskaźnikowy rejestr danych DPTR. W przypadku zewnętrznej pamięci RAM możliwy jest jeszcze jeden sposób adresowania poprzez połączenie 8-bitowego rejestru R0 lub R1 i portu P2. Jednym z argumentów w tych rozkazach jest akumulator A, do którego przesyłane są lub z którego pobierane są dane ( rysunek 4-2).


Wyszukiwarka

Podobne podstrony:
Untitled17 26 4. Jak odczytywać i zapisywać dane ... instrukcja: zapis binarny
Untitled18 (2) 28 4. Jak odczytywać i zapisywać dane portów realizowane instrukcji.   &nbs
Untitled18 (2) 28 4. Jak odczytywać i zapisywać dane portów realizowane instrukcji.   &nbs
Untitled19 (5) 30 4. Jak odczytywać i zapisywać dane ... Odczytywanie danych zapisanych w pamięci pr
Untitled20 4. Jak odczytywać i zapisywać dane 4. Jak odczytywać i zapisywać dane HPytania i problemy
Untitled14 4. Jak odczytywać i zapisywać dane z pamięci programu ROM i zewnętrznej pamięci danych RA
12456 Untitled16 (2) 24 4. Jak odczytywać i zapisywać dane4.1 Odczyt danych z pamięci programu ROM W
IMG?09 trochę o dziełach sztuki, jak rozpoznawać oryginały i podrobione. Z tego ^. pamiętam to oni n

więcej podobnych podstron