rejestr |
pamięć | |
adresowy |
RAM |
P2.7 .. P2.0 P0.7 .. PO.O
sterowanie portu P2 |
sterowanie portu PO |
16 | ||
TT 'j |
LjTtL. | |||
— |
adresy | |||
rejestr portu P2 |
rejestr portu PO |
pamięć
ROM/
/EPROM
Rys. 2-2 Schemat blokowy mikrokontrolera 8051.
Takie przyporządkowanie wymaga multipleksowania stanów linii portów. Oznacza to, że w określonych momentach czasowych stany tych linii zależą od aktualnie wykonywanej przez mikrokontroler funkcji. Wprowadza to pewne ograniczenia. Nie można korzystać z portów PO i P2 jeśli konstruktor dołączy do mikrokontrolera zewnętrzną pamięć"]programu lub danych. Także wykorzystanie linii portu P3 jest ograniczone jeśli planuje się uaktywnienie łą-i ŁH "
Generator umożliwia poprzez dołączenie zewnętrznego rezonatora kwarcowego lub ceramicznego ustalenie żądanej częstotliwości pracy mikrokontrolera. Sygnał z generatora synchronizuje pracę całego procesora oraz służy do określenia momentów czasu, w których pojawiają się sygnały sterujące wymianą danych mikrokontrolera z otoczeniem, np. sygnały RD (odczytu) i WR (zapisu) z/do zewnętrznej pamięci danych.
Do adresowania pamięci programu służy 16-bitowy licznik rozkazów PC (Program Counter). Szesnastobitowy adres umożliwia zaadresowanie 2 ’= 65 536 komórek pamięci, tzn. 64 KB. Należy pamiętać, że 1 KB - 2U 1024 bajty. Z zaadresowanej komórki pamięci programu procesor pobiera.xoz-kaz, który złożony jest z jednego, dwóch lub trzech bajtów. Po pobraniu każdego bajtu rozkazu następuje zwiększenie licznika rozkazów PC o jeden (licznik rozkazów jest inkrementowany). W ten sposób licznik rozkazów PC wskazuje na adres pierwszego bajtu następnego do wykonania rozkazu. Przy pobieraniu rozkazów z zewnętrznej pamięci programu jej adres przesyłany jest za pośrednictwem portu PO i P2, a bajty rozkazów przesyłane są poprzez port PO. Zawartość licznika rozkazów PC może być zmieniana odpowiednimi rozkazami, co umożliwia wykonywanie skoków do różnych fragmentów programu.
Jednostka arytmetyczno-logiczna wykonuje podstawowe działania a-rytmetyczne i logiczne na danych. Należą do nich dodawanie arytmetyczne (binarne i dziesiętne), odejmowanie, mnożenie, dzielenie, porównanie, przesunięcie o jeden bit w lewo lub w prawo, suma i iloczyn logiczny, różnica symetryczna oraz negacja. Wynik operacji wykonywanych w jednostce arytmetycz-no-logicznej może mieć wpływ na kolejność wykonywanych rozkazów, działania programu.
Z jednostką arytmetyczno-logiczną są funkcjonalnie powiązane trzy rejestry o ściśle sprecyzowanym przeznaczeniu:
• akumulator A lub ACC (Acaimulator) służy przede wszystkim do przechowywania jednego z argumentów' (danej) w operacjach arytmetycznych i logicznych, a po ich wykonaniu do przechowywania wyniku operacji. Jednak część operacji logicznych wykonywana jest poza akumulatorem. Tylko w' akumulatorze można przesuwać daną o jeden bit w' lewo lub w prawo. Akumulator, co jest jego zasadniczą wradą, u-czestniczy przy przesyłaniu wszystkich danych z/do zewnętrznej pamięci danych oraz pobierania argumentów' z. pamięci programu.