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. 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

  • ośmiobitowa jednostka arytmetyczno-logiczna (ALU)
  • cztery przełączane banki rejestrów roboczych (4 x R0...R7)
  • 4 kB pamięci wewnętrznej ROM (pamięć zewnętrzna ROM do 64 kB)
  • 128 B pamięci wewnętrznej RAM (pamięć zewnętrzna RAM do 64 kB)
  • zbiór rejestrów specjalnych SFR
  • układ generatora sygnału taktującego (czyli zegar procesora)
  • cztery ośmiobitowe równoległe porty P0...P3
  • jeden port szeregowy (obsługuje zarówno transmisję synchroniczną jak i asynchroniczną)
  • dwa liczniki/czasomierze działające w jednym z czterech trybów
  • jednobitowy procesor funkcji logicznych
  • system przerwań z układem priorytetów

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)

AdresSymbolBit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
0xF0*B
0xE0*ACC
0xD0*PSWCYACF0RS1RS0OV-P
0xC0*IP---PSPT1PX1PT0PX0
0xB0*P3/RD/WRT1T0/INT1/INT0TxDRxD
0xA8*IEEA--ESET1EX1ET0EX0
0xA0*P2
0x99SBUF
0x98*SCONSM0SM1SM2RENTB8RB8TIRI
0x90*P1
0x8DTH1
0x8CTH0
0x8BTL1
0x8ATL0
0x89TMODGATEC/TM1MOGATEC/TM1M0
0x88*TCONTF1TR1TF0TR0IE1IT1IE0IT0
0x87PCONSMOD---GF1GF0PDIDL
0x83DPH
0x82DPL
0x81SP
0x80*P0

Ważniejsze rejestry specjalne

  • ACC – akumulator, jeden z najczęściej wykorzystywanych rejestrów, gdyż obsługuje większość operacji arytmetycznych, logicznych, skoków warunkowych i wiele innych
  • B – dodatkowy rejestr, wykorzystywany w trakcie operacji mnożenia (MUL) i dzielenia (DIV)
  • PSW – rejestr stanu programu (Program Status Word), jest to zbiór różnych flag (wskaźników):
    • PSW.0=P – parzystość, flaga jest ustawiana gdy wynikiem operacji jest liczba parzysta,
    • PSW.1=F1 – począwszy od 8052, flaga którą może zdefiniować użytkownik,
    • PSW.2=OV (Overflow) – przepełnienie, przekroczenie zakresu liczb w kodzie uzupełnienia do 2 (U2),
    • PSW.3=RS0 (Register Bank Switch) młodszy bit numeru banku,
    • PSW.4=RS1 (Register Bank Switch) starszy bit numeru banku,
    • PSW.5=F0 – flaga ogólnego zastosowania,
    • PSW.6=AC (Auxiliary Carry) – przeniesienie z młodszej do starszej tetrady (istotne w rozkazach arytmetycznych BCD),
    • PSW.7=CY (Carry) – przeniesienie z najstarszego bitu (oznacza np. przekroczenie zakresu przy sumowaniu NKB),
  • Porty P0-P3 – wykorzystywane są do komunikacji ze światem zewnętrznym (wszelkimi urządzeniami peryferyjnymi), niektóre mają jeszcze dodatkowe funkcje,
    • P0 i P2 – mogą zostać wykorzystanie jako wyprowadzenia szyny systemowej mikrokontrolera
    • P1 – port ogólnego zastosowania,
    • P3 – port posiada wyspecjalizowane linie (w SFR przedstawiane jako bity),
      • RD – odczyt pamięci danych,
      • WR – zapis pamięci danych,
      • T0,T1 – wejścia timerów zewnętrznych (zliczanie impulsów trybie pracy timerów jako liczniki),
      • INT0,INT1 – wejścia zewnętrznych przerwań,
      • TxD, RxD – wysyłanie (Transmit) i odbieranie (Receive) danych (Data) przy transmisji szeregowej,
  • Sterowanie przerwań,
    • IE – zezwolenia dla przerwań (Interrupt Enable),
      • EA – ogólne zezwolenie dla przerwań,
      • ES – zezwolenie dla przerwań od transmisji szeregowej,
      • ET0, ET1 – zezwolenie dla przerwań od timerów,
      • EX0, EX1 – zezwolenie dla przerwań zewnętrznych,
    • IP – priorytety przerwań (Interrupt Priority),
      • PS – priorytet dla przerwań od transmisji szeregowej,
      • PT0, PT1 – priorytet dla przerwań od timerów,
      • PX0, PX1 – priorytet dla przerwań zewnętrznych,
    • TCON – tylko młodsze 4 bity,
      • IE0, IE1 – flagi przerwań zewnętrznych (zgłoszenie zewnętrznego przerwania),
      • IT0, IT1 – sposób zewnętrznego przerwania (0 – poziom niski, 1 – opadające zbocze),
  • DPTR – 16-bitowy wskaźnik adresu danych,
    • DPH – starszy bajt wskaźnika,
    • DPL – młodszy bajt wskaźnika,
  • SP – wskaźnik stosu (Stack Pointer),

Timery 8051

Sterowanie timerów:

  • TMOD – młodsze 4 bity odpowiadają timerowi 0, starsze – timerowi 1
    • GATE – bramkowanie, zliczanie impulsów kiedy GATE=0
    • C/T – tryb pracy timera (0 – timer wewnętrzny, 1 – licznik impulsów zewnętrznych)
    • M0, M1 – ustalają trybu pracy licznika
M1M0Tryb
000licznik 13-bitowy
011licznik 16-bitowy
102licznik 8-bitowy z autoprzeładowaniem
113T0 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.

  • TCON – starsze 4 bity
    • TF0, TF1 – flaga przepełnienia timera
    • TR0, TR1 – flaga pracy timera (0 – stop, 1 – zliczanie)

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:

  • 8052 wersja posiada
    • dodatkowy obszar 128 bajtów wewnętrznej pamięci RAM o adresach identycznych z rejestrami specjalnymi. Dla rozróżnienia jest on adresowany indeksowo
    • 8KB wewnętrzne pamięci ROM (4 strony)
    • trzeci 16-bitowy licznik / czasomierz (timer)
    • dodatkowe rejestry specjalne SFR do obsługi trzeciego licznika
  • 8031 wersja bez wewnętrznej pamięci ROM
  • 83C51 wersja z wewnętrzną pamięcią OTP
  • 87C51 wersja z 4KB wewnętrzęj pamięci EPROM zamiast pamięci ROM
  • AT89C51 wersja z wewnętrzną pamięcią Flash EEPROM
  • AT89S51 wersja AT89C51 programowana szeregowo za pomocą SPI

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

  • z rodziny Atmel AT89
    • AT90S44 - 4KB pamięci Flash, 256B pamięci EEPROM, 256B pamięci RAM
    • AT90S8515 - 8KB pamięci Flash, 512B pamięci EEPROM, 512B pamięci RAM
  • z rodziny Atmel AVR
    • ATMEGA161 - 16KB pamięci Flash, 512B pamięci EEPROM, 1KB pamięci RAM

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

  • znacznie zmniejszony pobór mocy, szczególnie w tzw. trybach uśpienia
  • zwiększoną częstotliwość taktowania
  • miniaturyzację obudów, zwiększenie lub zmniejszenie (w wersjach uproszczonych) liczby wyprowadzeń
  • udoskonaloną interpretację sygnałów wejścia-wyjścia oraz sygnału reset (umożliwiającą bardziej elastyczne wykorzystanie portów i zwiększającą odporność na zakłócenia)
  • dodatkowe rejestry specjalne SFR, związane m.in. z nowymi układami czasowo – licznikowymi, dodatkowymi wskaźnikami adresów, dodatkowymi portami wejścia / wyjścia, w tym np. interfejsami szeregowymi, wejściami przerwań, przetwornikami analogowo – cyfrowymi, zegarami czasu rzeczywistego, układami szyfrującymi itp.

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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.