|
  Najważniejszym zadaniem układu sterowania jest dekodowanie przesłanego z pamięci programu rozkazu i generacja na jego podstawie odpowiednich sygnałów sterujących pozostałymi elementami mikrokontrolera. Z układem sterowania współpracuje licznik rozkazów PC (16-bitowy rejestr zawierający adres kolejnego rozkazu przeznaczonego do wykonania) i rejestr rozkazów (rejestr przechowujący ostatnio pobrany rozkaz). Współpracuje z nim także układ przerwań (układ sterowania jest odpowiedzialny za sprzętową generację rozkazu LCALL wywołania procedury obsługi przerwania).   Układ sterowania jest odpowiedzialny za generację następujących sygnałów zewnętrznych: • PSEN' - strob odczytu z zewnętrznej pamięci programu. • RD' - strob odczytu z zewnętrznej pamięci danych. • WR' - strob zapisu do zewnętrznej pamięci danych. • ALE - sygnał sterujący buforem zatrzaskującym młodszy bajt adresu pamięci zewnętrznej.   Do układu sterowania są natomiast doprowadzone następujące sygnały zewnętrzne: • EA' - linia wyłączająca wewnętrzną pamięć programu. • RST - linia zerowania mikrokontrolera.   Ponieważ po dołączeniu zasilania do mikrokontrolera jego rejestry i układy mogą przyjmować trudne do przewidzenia stany, natychmiast po włączeniu zasilania powinien zostać wygenerowany sygnał zerujący. Prawidłowe wyzerowanie mikrokontrolera polega na podaniu na wyprowadzenie RST stanu "1" przez co najmniej 2 cykle maszynowe. Podczas włączania zasilania poziom wysoki powinien być utrzymywany dłużej (ok. 10-20ms) w związku z koniecznością wzbudzenia się wewnętrznego generatora, a czynność tą wykonuje poniższy układ:   Po włączeniu zasilania układu, poziom wysoki utrzymuje się na wyprowadzeniu RST przez czas ładowania kondensatora. Stała czasowa obwodu RC z zapasem zapewnia konieczny czas występowania poziomu wysokiego na wyprowadzeniu. Podczas normalnej pracy możliwe jest wyzerowanie mikrokontrolera przez naciśnięcie przycisku RESET, co spowoduje doprowadzenia poziomu wysokiego do wyprowadzenia RST i rozładowanie kondensatora. Po zwolnieniu przycisku poziom wysoki na wyprowadzeniu RST utrzyma się do czasu naładowania kondensatora (podobnie jak przy włączeniu zasilania). Sygnał RESET powoduje inicjację wszystkich zasobów mikrokontrolera: • ustawienie zawartości wskaźnika stosu SP=7. • ustawienie jedynek na wszystkich liniach portów we/wy. • wyzerowanie pozostałych rejestrów specjalnych (jedynie SBUF przyjmuje nieokreśloną zawartość). • zawartość pamięci danych pozostaje nie zmieniona (po włączeniu zasilania jest nieokreślona).   Układ sterowania mikrokontrolera wykonanego w technologii CMOS (80C51) steruje również trybami oszczędzania energii. Od strony programowej ustawienie określonego trybu odbywa się za pośrednictwem rejestru PCON:  | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | | SMOD | - | - | - | GF1 | GF0 | PD | IDL | | Bity rejestru PCON mikrokontrolera 8051 |
• SMOD - odpowiedzialny za określenie prędkości transmisji przez układ transmisji szeregowej. • GF1, GF0 - bity ogólnego przeznaczenia. • PD - bit sterujący przejściem mikrokontrolera w stan uśpienia PD (ang. Power Down); ustawienie powoduje przejście do stanu uśpienia, zerowany jest sprzętowo przy wyjściu ze stanu uśpienia. • IDL - bit sterujący przejściem mikrokontrolera w stan uśpienia IDL (ang. Idle); ustawienie powoduje przejście do stanu uśpienia, zerowany jest sprzętowo przy wyjściu ze stanu uśpienia.
|