36 5. Działanie mikrokontrolera
CYKL MASZYNOWY n CYKL MASZYNOWY n +1
36 5. Działanie mikrokontrolera
TAKT SI S2 S3 S4 FAZA Pl P2 PI 1*2 Pl l*2lri P2
osc inr
S5 S6 SI
Pl P2|P1 P2 Pl P2
S2 ( S3 S4 S5 S6 SI
Pl P2|P1 P2|P1 P2.P1 F2|P1 P2 Pl P2
pobranie rozkazu pobranie następnego rozkazu
A
pobranie drugiego bajtu rozkazu
Rys. 5-5 Wykonanie rozkazu dwubajtowego.
Rozkazy trójbajtowe są wykonywane w dwóch cyklach maszynowych. W jednym cyklu maszynowym, w taktach SI i S4, są pobierane dwa bajty rozkazu, a w takcie SI drugiego cyklu maszynowego jest pobierany trzeci bajt rozkazu. Bajt nowego rozkazu jest pobierany w takcie SI trzeciego cyklu maszynowego, rysunek 5-6.
CYKL MASZYNOWY n CYKL MASZYNOWY n +1
S4 S5 Pl P2 Pl P2
Lfuifir
S6 SI
Pl P2 Pl T2
uuTfin
TAKT SI S2 S3 S4 S5 S6 SI S2 S3 FA7A Pl P2|Pl P2 Pl P2;P1 P2 Pl P2|P1 P2 Pl P2 Pl P2jPl P2
osc umnniLimr^^
pobranie rozkazu pobranie trzeciego bajtu rozkazu
SI S2 S3 S4 S5 S6 SI S2 S3 S4 $5 S6 SI
pobranie drugiego bajtu rozkazu
pobranie następnego rozkazu
Rys. 5-6 Wykonanie rozkazu trójbajtowego.
W rodzinie '51 występują również rozkazy jednobajtowe i dwubajtowe, które są wykonywane w dwóch lub czterech cyklach maszynowych. W czterech cyklach maszynowych są wykonywane tylko rozkazy mnożenia (MUL AB) i dzielenia (DIV AB).
Na rysunku 5-7 jest podany przykład rozkazu jednobajtowego wykonywanego w dwóch cyklach maszynowych.
Po pobraniu każdego bajtu rozkazu następuje automatyczne zwiększenie o jeden licznika rozkazów.
Znajomość liczby cykli maszynowych potrzebnych na wykonanie po-s/rzeeóhwch rozkazów iest konieczna w przypadku generowania przez mikro-
kontroler odcinków czasów o dużej dokładności. Sygnały o krótkich czasach uzyskuje się najczęściej przez wykonanie programu wymagającego odpowiedniej liczby cykli maszynowych.
CYKL MASZYNOWY n
CYKL MASZYNOWY n+1
: S2 |
S3 S4 |
2 Pl P2 |
ri P2| pi P2 |
Liifirm |
S5 S6 SI
Pl P2| Pl P2 Pl P2
pobranie rozkazu
S2 S3 Pl P2 Pl P2
S4 | S5
Pl P2 Pl P2
S6 SI
Pl P2 Pl P2|
pobranie następnego rozkazu
S2 S3 S4 S5 S6 SI S2 S3 S4 S5 S6
Rys. 5-7 Rozkaz jednobajtowy wykonywany w dwóch cyklach maszynowych.
Jeżeli mikrokontroler pobiera rozkazy z pamięci zewnętrznej, to musi istnieć możliwość wysłania na zewnątrz adresu komórki pamięci, z której jest pobierany rozkaz oraz wejście poprzez, które rozkaz jest przesyłany do struktury wewnętrznej mikrokontrolera. W' mikrokontrolerach rodziny '51 można również dołączyć zewnętrzną pamięć RAM służącą do chwilowego przechowywania danych. Do dostępu zarówno do pamięci programu jak i danych wykorzystuje się dwa ośmiobitowe porty PO i P2. Żeby zmniejszyć liczbę wyprowadzeń obsługujących pamięci zewnętrzne przez port PO jest wysyłany mniej znaczący bajt 16-bitowego adresu oraz są przesyłane bajty rozkazów oraz dane do lub z pamięci RAM. Dla rozdzielenia bajtu adresu od rozkazów i danych jest stosowany zatrzask, w którym jest zapamiętywany adres. Rozdzielenie dostępu do pamięci danych i programu odbywa się sygnałami PSEN i RD ,rysunek 5-8.
PSEN odblokowuje pamięć programu na czas pobierania z niej rozkazów,
WR wpisuje dane do zewnętrznej pamięci RAM,
RD odczytuje dane z pamięci zewnętrznej RAM
Rys. 5-8
Połącz.enie mikrokontrolera z pamięciami zewnętrznymi.