Z. Struktura pamięci mikrokontrolera 13
transmisja szeregową reprezentuje dwa niezależne rejestry. Jeden do zapisu (rejestr nadawanego znaku), a drugi do odczytu (rejestr odebranego znaku). Odczyt zawartości rejestru SBUF daje inną wartość niż wpisana.
Poniżej omówiono łącznie z adresami wybrane rejestry specjalne (SFR) mikroprocesora:
* Akumulator (ACC * AccumuJator) - adres OEOH
Jest jednym z ważniejszych rejestrów procesora, ponieważ większość rozkazów wykorzystuje ten rejestr. Oznaczany jest w mnemonikach instrukcji jako ACC (symboliczny adres komórki rejestru specjalnego) lub skróconym symbolem A (nazwa rejestru).
• Rejestr B (B - Register) - adres OFOH
Rejestr specjalnego przeznaczenia w operacjach mnożenia i dzielenia, zawierający jeden z argumentów oraz bardziej znaczącą część wyniku mnożenia lub resztę w operacji dzielenia. W innych sytuacjach może być używany jako rejestr ogólnego przeznaczenia.
Wskaźnik stosu (SP • Stack Pointer) • adres 81H
Stosem nazywany jest fragment wewnętrznej pamięci KAM adresowany zawartością specjalnego rejestru oznaczonego jako wskaźnik stosu (SP). Możliwy jest dostęp do bajtów bezpośrednio adresowanych przez wskaźnik stosu, znajdujących się na wierzchołku stosu, a nie w jego wnętrzu. Oznacza to, że możliwy jest jedynie dostęp do szczytu stosu. Sytuację tę można porównać do sterty książek ułożonych jedna na drugiej. Dokładając kolejną książkę umieszczamy ją na szczycie sterty. Zabierając książkę z.e sterty zabieramy książkę leżącą na jej szczycie. Książki leżące we wnętrzu sterty nie są dostępne.
Informacja wpisywana do stosu (do wewnętrznej pamięci RAM adresowanej tym rejestrem) powoduje automatyczne zwiększenie zawartości wskaźnika stosu o liczbę wpisywanych bajtów. Jeśli w trakcie wykonanej instrukcji do stosu wpisywany jest jeden bajt to wskaźnik stosu zwiększany jest o jeden, jeśli dwa bajty to o dwa. Odczyt, pobranie jednego lub dwóch bajtów ze stosu powoduje automatyczne zmniejszenie zawartości wskaźnika stosu o jeden lub o dwa. 8-biłowy wskaźnik stosu (SP) wskazuje ostatnią zajętą komórkę stosu. Zrealizowanie programu:
MOV SP,#30H SPc=3ÓH. wpisanie \vartości początkowej PUSH 10H SP <= SP + 1, (SP) <= (10H)
,.;wpisanie do stosu zawartości komórki wewnętrznej ' .pamięci RAM o adresie 10H, np. (10H)-12H PUŚH ACC SP <= SP + 1. (SP) c= ACC
.wpisanie do stosu zawartości akumulatora, np. A~OCH PUSH 0 SP <= 5P + 1. (SP) <= B
;wpisanic do stosu zawartości rejestru li. np. B=4EH
Mikrokontroler 80(C)51 - programowanie
Atireunmtiic. Mnemonik: Struktura baitóio: Cykle Znacz-
maszynowe: niki:
bezpośrednie: CPL bil 1 1 0 1 1 1 0 0 1 (Tj 1
| adres bitu ~]
Opis działania:
Negacja logiczna wybranego bitu o adresie bit w wewnętrznej pamięci RAM.
Przykład:
Generowanie impulsu na linii wyjściowej portu PI.1 o czasie trwania jednego cyklu
maszynowego:
lmpu!s..P1:
CPL PU ;P1.1 ernot PL1
CPL P1.1 ;P1.1 c=not PL1
ANL Cbit Logical And for Bil
Działanie: ' C<= C and bit C c= C and nol(bit)
Adresowanie: Mnemonik: Struktura bajtów: Cykle Znacz-
maszynowe: mki:
bezpośrednie: |
' ANL |
Cbit |
! i o o o 1 o o i o | |
adres bitu | |||
bezpośrednie: |
ANL |
C/bil |
1 1 0 1 1 | 0 0 0 0 | |
adres bitu |
Opis działania:
Iloczyn logiczny znacznika przeniesienia C i:
• wybranego bitu o adresie bit,
• negacji wybranego bitu o adresie bit.
Mikrokonuoler 8(HC)SI - proklamowanie