Mikrokontroler Intel 8051 - schemat blokowy

Mikroprocesor Intel 8051 to typowy, bardzo popularny mikrokontroler 8 bitowy,

którego odpowiedniki produkowane są przez wiele firm (np. Phillips, Samsung, Atmel).

         Mikrokontrolery nazywamy też mikroprocesorami jednoukładowymi lub mikrokomputerami jednoukładowymi. Różnica pomiędzy

typowym mikroprocesorem takim jak np. Intel 8086 a mikrokontrolerem polega na tym, że mikrokontroler jest kompletnym, niezależnym

systemem komputerowym. Ma  wszystko co trzeba  w środku. W praktyce spotyka się mikrokontrolery 4-bitowe, 8-bitowe i 16-bitowe.

Schemat funkcjonalny

Rys. 1. Funkcjonalny schemat blokowy mikrokontrolera 8051

Ośmiobitowa jednostka centralna mikrokontrolera 8051 może wykonywać 111

rozkazów (49 jednobajtowych, 45 dwubajtowych i 17 trzybajtowych).

Pamięć wewnętrzna układu 8051 składa się z 2 pamięci:

  •   pamięci wewnętrznej programu (pamięci ROM)
  •   pamięci wewnętrznej danych o pojemności 128 bajtów

 

 

Rys.2. Architektura mikrokontrolera Intel 8051

Wewnętrzna pamięć programu (pamięć typu ROM) ma pojemność 4 kB i organizację bajtową. Może być rozszerzona

do 64 kB przez dołączenie pamięci zewnętrznej. Wewnętrzna pamięć danych (typu RAM) ma pojemność 128B iorganizację bajtową, ale możliwe jest dołączenie zewnętrznej pamięci danych o pojemności do 64 kB (w ramach osobnej przestrzeni adresowej.

    Pamięć wewnętrzna danych 8051 zorganizowana jest ten sposób, że adresy 0-127 stanowią pamięć użytkową, a adresy 128-255 (89H-0FFH) to tzw. rejestry specjalne, czyli rejestry SFR (ang. special function registers)

 W pamięci użytkowej słowa o adresach 0-7, 8-15, 16-23, 24-31 stanowią 4 zestawy uniwersalnych rejestrów roboczych (ang. working registers) R0, R1, R2, R3, R4, R5, R6, R7. Rejestry te są dostępne w programie jako rejestry adresowane. Mamy np. instrukcję MOV A, R1. W danym momencie dostępne są rejestry tylko jednego zestawu wskazywanego przez 2 bitowy wskaźnik zestawu rejestrów RS (ang. register bank switch) zawarty w słowie stanu programu. Pamięć programu jest adresowana przez 16-bitowy licznik rozkazów PC (ang. program counter). Bity 11-15 licznika rozkazów wyznaczają numer strony pamięci natomiast bity 0-10 określają adres na stronie. W czasie zerowania mikrokontrolera licznik PC jest zerowany. Słowo stanu programu (ang. program status word) - PSW - jest pamiętane w 8-bitowym rejestrze SFR po adresem 0D0H . Słowo PSW może być adresowane bitowo. W wewnętrznej pamięci danych (w obszarze pamięci użytkowej) może być umieszczony stos (ang. stack) o dowolnej wielkości ograniczonej pojemnością pamięci. Stos jest adresowany przez 8 bitowy wskaźnik stosu SP (ang. stack pointer). SP ma adres 81H w przestrzeni SFR SP wskazuje wierzchołek stosu (ang. top of the stack) . Zawartosć rejestru SP jest przed każdym zapisaniem bajtu na stos zwiększana o 1, a po każdym odczytaniu ze stosu bajtu zmniejszana o 1. Ze stosu korzystamy zawsze automatycznie w czasie wykonania instrukcji CALL (skok do podprogramu). Na stos zapisujemy wówczas 2 bajtową zawartość licznika rozkazów. Również automatycznie zapisujemy na stos zawartość licznika rozkazów PC (2 bajty) przy przyjęciu przerwania Ze stosem współpracują również w sposób standardowy 2 instrukcje PUSH i POP. Za pomocą instrukcji PUSH (z adresowaniem bezpośrednim) można zapisać na stosie zawartość dowolnej wewnętrznej komórki pamięci danych (również rejestrów specjalnych). Do zdejmowania danych ze stosu używamy instrukcji POP.