Architektura mikrokontrolera MCS51 Ryszard J. Barczyński, 2018 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego
Architektura mikrokontrolera MCS51 Co siedzi w środku?... Wersje μc 8051 są nieprawdopodobnie liczne, ale wszystkie posiadają pewne stałe elementy. Występują zarówno w postaci dyskretnej, wbudowanej w większe układy, jak i IP-Core w układach FPGA czy ASIC. Opracowany w latach 80 XX wieku jest popularny do dziś pozostając jak dotychczas najpopularniejszym mikrokontrolerem wszechczasów.
8 bitowy procesor optymalizowany pod kątem sterowania rozbudowane operacje logiczne (również bitowe) 64 kb przestrzeni adresowej programu 64 kb przestrzeni adresowej danych 128 B wewnętrznej pamięci RAM dwa 16 bitowe liczniki/zegary dwukierunkowy UART 6 źródeł przerwań z 5 pozycyjnym wektorem i priorytetami wewnętrzny zegar systemowy
Architektura mikrokontrolera X51
Architektura mikrokontrolera X51 (wyprowadzenia)
Architektura mikrokontrolera X51 (jak to działa)
(obszary adresowe) Pamięć programu Pamięć RAM
(połączenie pamięci zewnętrznej już mocno historyczne)
(połączenie pamięci zewnętrznej zależności czasowe)
(SFR)
(SFR) PSW słowo stanu programu (adresowane bity) CY AC F0 RS1 RS0 OV - P CY PSW.7 Wskaźnik przeniesienia AC PSW.6 Wskaźnik przeniesienia pomocniczego F0 PSW.5 Wskaźnik boolowski dla użytkownika RS1 PSW.4 Bit wyboru banku rejestrów RS0 PSW.3 Bit wyboru banku rejestrów OV PSW.2 Wskaźnik nadmiaru P PSW.0 Wskaźnik parzystości
(SFR) PCON rejestr sterowania zasilaniem SMOD - - - GF1 GF0 PD IDL SMOD GF1 GF2 PD IDL Bit zdwojonej prędkości transmisji UART Wskaźnik boolowski ogólnego przeznaczenia Wskaźnik boolowski ogólnego przeznaczenia Przejście w stan czuwania (power down) Przejście w stan uśpienia (idle)
(SFR) IE rejestr zezwolenia na przerwania (adresowany bitowo) EA - - ES ET1 EX1 ET0 EX0 EA IE.7 Bit zezwolenia na przerwania ES IE.4 Bit zezwolenia na przerwania z portu szeregowego ET1 IE.3 Bit zezwolenia na przerwania z licznika T1 EX1 IE.2 Bit zezwolenia na przerwania z wejścia INT1 ET0 IE.1 Bit zezwolenia na przerwania z licznika T0 EX0 IE.0 Bit zezwolenia na przerwania z wejścia INT0
(SFR) IE rejestr priorytetu przerwań (adresowany bitowo) - - - PS PT1 PX1 PT0 PX0 Jedynka wpisana na pozycję określonego bitu to wysoki priorytet Przypisanie bitów - takie samo jak w rejestrze zezwoleń na przerwania
(SFR) TCON rejestr sterowania licznikami T0 i T1 (adresowany bitowo) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1 TCON.7 Wskaźnik przepełnienia licznika T1 TR1 TCON.6 Bit sterowania licznika T1 (1=start, 0=stop) IE1 TCON.5 Wskaźnik przerwania zewnętrznego INT1 IT1 TCON.4 Bit wyboru sposobu przerwania (1=zbocze, 0=poziom) Pozostałe bity pełnią identyczną rolę w stosunku do licznika T0
(SFR) TMOD rejestr sterujący trybem pracy liczników T0 i T1 Licznik T1 Licznik T0 GATE C/T M1 M0 GATE C/T M1 M0 GATE gdy = 1, wejście licznika jest bramkowane linią INTx C/T gdy = 1 zlicza impulsy na wejściu Tx, gdy = 0 zlicza impulsy zegara M1, M0 tryb pracy zegara 0 0 licznik 13 bitowy (zgodny z 8048) 0 1 licznik/układ czasowy 16 bitowy 1 0 8 bitowy licznik/układ czasowy z automatycznym załadowaniem 1 1 TL0 i TH0 pracują jako liczniki 8 bitowe (T1 jest zatrzymany)
(SFR) SCON rejestr sterowania trybem portu szeregowego SM0 SM1 SM2 REN TB8 RB8 TI RI SM0, SM1 tryb pracy portu szeregowego Szybkość transmisji 0 0 synchroniczny (rejestr przesuwający) Fosc/12 0 1 8 bitowy UART programowana 1 0 9 bitowy UART Fosc/64 lub Fosc/32 1 1 9 bitowy UART programowana SM2 używany do transmisji międzyprocesorowej REN odblokowanie odbiornika TB8 dziewiąty bit nadawany RB8 dziewiąty bit odbierany TI, RI wskaźnik przerwania od nadajnika i odbiornika
Wektor przerwań Przerwanie IE0 TF0 IE1 TF1 RI oraz TI Adres wektora 0003h 000Bh 0013h 001Bh 0023h Przykładowy początek kodu programu CSEG ; Begin: JMP Start ; ORG Begin+0Bh ; Timer 0 int. vector JMP TIinter ; ORG Begin+023h ; Serial interrupt JMP RsInt