Intel P8051

Intel 8051mikrokontroler stworzony przez firmę Intel w 1980 roku. Zapoczątkował rodzinę mikrokontrolerów MCS-51 (od ang. MicroComputer System) będących udoskonalonymi lub wyspecjalizowanymi mikrokontrolerami o tej samej, ośmiobitowej architekturze i kompatybilnej z pierwowzorem liście rozkazów. Mikrokontrolery należące do rodziny MCS-51 do dziś znajdują szerokie zastosowanie w niemal każdej dziedzinie elektroniki.

Mikrokontrolery te są wykonane w zmodyfikowanej architekturze harwardzkiej. Należą do grupy mikrokontrolerów CISC.

Oprócz możliwości programowania mikrokontrolera w asemblerze rodziny MCS-51, istnieje również możliwość programowania w kompilowanych językach wysokiego poziomu – najczęściej wykorzystywany do tego celu jest język C.

Intel nie produkuje już samodzielnie nowych chipów z serii MCS-51 od marca 2007 roku[1]. Produkcją do dzisiaj zajmują się firmy trzecie, m.in. Dallas Semiconductor, Philips i Atmel. Również różne firmy sprzedają układy z serii MCS-51 jako tzw. IP-core, najczęściej stosowane w bezpośrednio programowalnych macierzach bramek.

Specyfikacja mikrokontrolera 8051

Rejestry specjalne

Obszar pamięci o adresach od 0x80 do 0xFF nazywany jest obszarem rejestrów specjalnych (SFR – Special Function Registers). Rejestry te pozwalają na sterowanie różnymi funkcjami mikrokontrolera. Obszar ten nie jest ciągły (nie wszystkie adresy są zajęte) – umożliwia to ewentualne uzupełnienie obszaru o nowe funkcje.

Układ rejestrów w pamięci

* – adresowane bitowo (adresy podzielne przez 8)

Adres Symbol Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0xF0* B
0xE0* ACC
0xD0* PSW CY AC F0 RS1 RS0 OV - P
0xC0* IP - - - PS PT1 PX1 PT0 PX0
0xB0* P3 /RD /WR T1 T0 /INT1 /INT0 TxD RxD
0xA8* IE EA - - ES ET1 EX1 ET0 EX0
0xA0* P2
0x99 SBUF
0x98* SCON SM0 SM1 SM2 REN TB8 RB8 TI RI
0x90* P1
0x8D TH1
0x8C TH0
0x8B TL1
0x8A TL0
0x89 TMOD GATE C/T M1 MO GATE C/T M1 M0
0x88* TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
0x87 PCON SMOD - - - GF1 GF0 PD IDL
0x83 DPH
0x82 DPL
0x81 SP
0x80* P0

Ważniejsze rejestry specjalne

Timery 8051

Sterowanie timerów:

M1 M0 Tryb
0 0 0 licznik 13-bitowy
0 1 1 licznik 16-bitowy
1 0 2 licznik 8-bitowy z autoprzeładowaniem
1 1 3 T0 i T1 jako osobne liczniki 8-bitowe

W trybie 3 działa de facto tylko TLx (młodsze 8 bitów licznika), w momencie wygenerowania sygnału przepełnienia, do TLx ładowana jest wartość THx który w tym trybie pełni funkcje rejestru stałej.

Timery generują sygnał TFx przy przekroczeniu maksymalnej wartości – odpowiednio 2^13, 2^16, 2^8. Jako że są to liczniki zliczające w przód, oraz ich inkrementacja następuje co jeden cykl zegarowy w celu kontrolowania odmierzanego przez nie czasu Tx jako wartość początkowa do TH | TL należy wpisać wartość

Tx = (maksimum zakresu w danym trybie-X)*12 *Tosc

gdzie: maksimum zakresu w trybie 16 bit = 65 536, 8-bitowym = 256, a Tosc = 1/Częstotliwość układu taktującego W trybie 2 należy tą samą wartość wpisać zarówno do rejestrów TH i TL

Inne mikrokontrolery rodziny MCS-51

Oryginalny układ 8051 firmy Intel jest przestarzały i od dawna nieużywany w nowych konstrukcjach. Jednakże na rynku istnieje wiele udoskonalonych wersji tego mikrokontrolera – od prostych klonów kompatybilnych elektrycznie (pin-to-pin) z pierwowzorem, aż po rozbudowane układy, w których rdzeń 8051 stanowi jedynie małą część systemu.

Mikrokontrolery rodziny MCS-51 kompatybilne z 8051 co do pinów oraz na poziomie asemblera:

Mikrokontrolery rodziny MCS-51 kompatybilne z 8051 co do pinów, ale niezgodne na poziomie asemblera

Zmiany w stosunku do oryginalnego układu 8051 obejmują także:

Swój sukces rodzina MCS-51 zawdzięcza m.in. wyjątkowej łatwości rozbudowy, nie wymagającej jakiejkolwiek modyfikacji listy rozkazów. Wiąże się to ze sposobem uwzględniania dodatkowych elementów w przestrzeni adresowej mikrokontrolera – jest w niej wiele niewykorzystanych adresów, ułatwiających dostęp do nowych elementów za pośrednictwem dodatkowych rejestrów specjalnych (SFR).

Przypisy

Linki zewnętrzne