Praca krokowa

Praca krokowa (ang. single step) umożliwia ręczne sterowanie wykonywaniem programu - rozkaz po rozkazie - przez wstrzymanie pracy procesora na dowolnie długi czas, po wykonaniu kolejnego rozkazu. Podczas wstrzymania pracy procesora do portów BUS i P2 3-0 jest wysyłany adres rozkazu, który będzie pobrany do wykonania jako następcy. W ten sposób jest możliwe śledzenie drogi przebiegu wykonywanego programu. Jeżeli do portu BUS zostały wcześniej wpisane jakieś dane (np. rozkazem OUTL), to w czasie pracy krokowej zostaną one zniszczone. Można je, jeśli to konieczne, wpisać do dodatkowego rejestru buforowego narastającym zboczem sygnału ALE.

Do sterowania pracą krokową służą sygnały /SS i ALE. Odbywa się to w następujący sposób:
- żądaniem wstrzymania pracy procesora jest stan niski na wejściu /SS (/SS = 0);
- w odpowiedzi procesor wstrzymuje pracę w stanie S3 najbliższego cyklu maszynowego, ale dopiero po dokończeniu rozkazu wykonywanego w chwili zgłoszenia (jeżeli jest to rozkaz wykonywany w dwóch cyklach, to przed zatrzymaniem zostaną wykonane oba cykle); wstrzymanie pracy jest sygnalizowane jedynką logiczną na ALE (ALE = 1); na wyjściach portów BUS i P2 3-0 znajduje się adres następnego rozkazu;
- stan wstrzymania może trwać dowolnie długo; kończy się on w wyniku podania stanu wysokiego na wejście /SS (/SS = 1) - następuje wtedy dokończenie wykonywania wstrzymanego rozkazu, co jest sygnalizowane sygnałem ALE = 0;
- aby zatrzymać procesor w czasie wykonywania następnego rozkazu, należy podać stan niski na wejście /SS (/SS = 0) i to natychmiast po stwierdzeniu, że ALE = 0; jeżeli pozostanie /SS = 1, to procesor będzie nadal pracował w normalnym trybie.

Na rysunku powyżej pokazano schemat przykładowego układu do sterowania pracą krokową mikrokomputera 8048.Do wejścia /SS mikrokomputera jest dołączone wyjście przerzutnika D. Jego stan decyduje więc o trybie pracy. Jeśli przełącznik PR2 jest zwarty, to do przerzutnika jest na stałe wpisana jedynka, a zatem /SS = 1 i mikrokomputer pracuje normalnie. Jeżeli natomiast przełącznik PR2 jest rozwarty, to stan niski na ALE powoduje wyzerowanie przerzutnika, czyli zgłoszenie żądania wstrzymania pracy procesora (/SS = 0).Ten stan trwa do chwili przyciśnięcia przycisku PR1 (sterowanie ręczne) lub pojawienia się impulsu KROK (sterowanie automatyczne).Sprawia to, że do przerzutnika wpisuje się jedynka i wytwarza się stan /SS = 1. Sygnał ALE = 0 powoduje ponowne wyzerowanie przerzutnika - sytuacja powtarza się, aż do zwarcia przełącznika PR2.

Powrót