Mikrokomputer 8022
Mikrokomputer 8022 jest funkcjonalnie i elektrycznie bazowany na układzie 8021.
Większość bloków funkcjonalnych obu mikrokomputerów jest taka sama lub nieco
zmodyfikowana. Do układu 8022 zostały dodane nowe bloki. Takie same w obu
mikrokomputerach są następujące elementy:
- jednostka arytmetyczno-logiczna i rejestry użytkowe,
- pamięć danych,
- układ czasowo-licznikowy,
- port P1 i wejście T1,
- sposób dołączenia ekspandera 8243,
- zegar systemowy i cykl maszynowy,
- zerowanie mikrokomputera i jego specjalne tryby pracy.
Niewielkie zmiany w mikrokomputerze 8022 w stosunku do 8021 dotyczą podanych
niżej elementów. Są to:
- powiększona pamięć programu, mająca pojemność 2048 (2K) słów, adresowana za
pomocą konwencjonalnego 11-bitowego licznika rozkazów,
- 8-bitowy port P2.
Zmienione lub nowe elementy w mikrokomputerze 8022 to:
- port P0,
- wejście T0,
- system przerwań,
- przetwornik analogowo-cyfrowy.
Port P0
Jeśli linia działa jako wejście, to jej stan logiczny jest czytany z wyjścia analogowego komparatora porównującego napięcie na końcówce linii z napięciem odniesienia UTH (wspólnym dla wszystkich linii). Dokładność komparatora wynosi ok. 100mV. Napięcie odniesienia UTH może przybierać wartość z przedziału (USS, UCC/2). W konfiguracji bez opornika R linia portu P0 jest więc wejściem sygnału analogowego, przetwarzanego na sygnał dwunstanowy, z ustawianym progiem przełączania.
Jeśli końcówka UTH nie jest z niczym połączona, to próg przełączania komparatora jest ustawiony wewnętrznie tak, by linia (również w konfiguracji z opornikiem R) mogła być wykorzystana jako wejście sygnału logicznego w standardzie TTL.
Zasady programowej komunikacji z portem P0 są takie same, jak z portami P1 i P2.
WEJŚCIE T0
SYSTEM PRZERWAŃ
Organizacja i zasady wykorzystania systemu są podobne jak w mikrokomputerze 8048 Występuje jednak między nimi pewna różnica. Otóż, w czasie przyjęcia przerwania na stosie zapisuje się tylko stan licznika rozkazów (nie ma słowa stanu). Wprowadzono specjalny rozkaz powrotu z przerwania - RETI, którego wykonanie powoduje zdjęcie adresu powrotu ze stosu i wpisanie go do licznika rozkazów. Jest on sygnałem końca obsługi dla systemu przerwań (podobnie jak RETR w 8048).
Należy przy tym zwrócić uwagę, że w celu zabezpieczenia przed zmianą ustalonych w programie głównym wartości akumulatora oraz znaczników C i AC (nie są zapisywane na stosie), należy je zapisać do pamięci i odtworzyć w programie obsługi przerwania. Można to zrobić tak:
MOV R6,A ;zapamiętanie zawartości akumulatora CLR A ;przetworzenie stanu znaczników C i CA DAD ;na cyfry dziesiętne 6 w akumulatorze MOV R7,A ;zapamiętanie znaczników ... ;program obsługi przerwania MOV A,R7 ADD A,#0AAH ;odtworzenie znaczników MOV A,R6 ;odtworzenie akumulatora RETI ;powrót z przerwania
PRZETWORNIK ANALOGOWO-CYFROWY
Dwa kanały wejściowe przetwornika są dołączone do wewnętrznego multipleksera analogowego. Przełączenie multipleksera odbywa się programowo, za pomocą rozkazów SEL AN0 i SEL AN1, których wykonanie powoduje dołączenie wybranego wejścia do przetwornika i rozpoczęcie przetwarzania. Przetwarzanie sygnału z określonego wejścia jest po uruchomieniu prowadzone cyklicznie, w sposób ciągły. Po zakończeniu jednego cyklu przetwarzania automatycznie rozpoczyna się następny. Wykonanie rozkazu SEL AN podczas przetwarzania powoduje przerwanie tego procesu i rozpoczęcie nowego, tzn. przetwarzanie sygnału z nowo określonego wejścia.
Na początku cyklu przetwarzania napięcie na wybranym wejściu jest próbkowane i zapamiętywane wewnętrznie (ang. sample and hold), po czym w kolejnych krokach cyklu przetwarzania jest ono porównywane przez komparator z napięciem wzorcowym. Napięcie wzorcowe jest pobierane z odpowiedniego punktu drabinki oporowej, złożonej z 256 identycznych oporników, dołączonych między końcówkami napięcia odniesienia UAREF i masy analogowej AUSS. Punkt drabinki oporowej, z którego jest pobierane napięcie wzorcowe, jest określony przez zawartość rejestru kolejnych przybliżeń SAR. W kolejnych krokach, do kolejnych bitów tego rejestru (począwszy od bitu najbardziej znaczącego) wpisuje się jedynka, po czym, w zależności od wyniku porównania tak określonego napięcia wzorcowego z przetwarzanym, bit ten jest zerowany lub nie. Po ośmiu krokach wynik przetwarzania jest przepisywany z rejestru SAR do rejestru wyniku CRR, z którego może być odczytany programowo rozkazem RAD. Kolejne wyniki przetwarzania wpisują się do rejestru CRR co cztery cykle maszynowe. Sterowanie przebiegiem cyklu przetwarzania jest całkowicie sprzętowe.
Programowe sterowanie przetwornikiem ogranicza się do wybrania kanału i rozpoczęcia procesu przetwarzania za pomocą rozkazów SEL AN oraz odczytania wyniku rozkazem RAD. Nie jest wytwarzany sygnał gotowości wyniku przetwarzania. Odczytanie rejestru CRR może się odbyć w dowolnej chwili, co najmniej cztery cykle maszynowe po wykonaniu rozkazu SEL AN, po czym zawsze będzie odczytywany wynik ostatnio zakończonego cyklu przetrwania.
Zakres przetwarzanego napięcia jest określony przez poziom dołączonego z zewnątrz napięcia odniesienia UAREF. Powinno ono mieścić się w granicach od Ucc/2 do Ucc.
Celem zapewnienia dobrej dokładności przetwarzania, przetwornik a/c ma osobne, oddzielone od części cyfrowej, zasilanie z końcówki AUcc (+5 V) i z końcówki AUss (0 V - masa analogowa).
Jest też wyprowadzone podłoże (ang. substrate), tzn. końcówka SUBST. Zaleca się dołączenie kondensatora bocznikującego o pojemności od 0,5 nF do 10 nF między tę końcówkę a masę.
LISTA ROZKAZÓW
SEL AN0 - dołącz kanał 0; start przetwarzania SEL AN1 - dołącz kanał 1; start przetwarzania RAD - czytaj wynik przetwarzania
Poniżej przedstawiono rozkazy usunięte z listy mikrokomputera 8048.
Przeslania | Rejestry i znaczniki | Skoki | Wejście-wyjście | Rozkazy sterujące |
---|---|---|---|---|
MOV A,PSW | DEC Rr | JF0 adr | ANL Pp,#n | SEL RB0 |
MOV PSW,A | CLR F0 | JF1 adr | ORL Pp,#n | SEL RB1 |
MOVX A,@Ri | CPL F0 | JNI adr | INS A,BUS* | SEL MB0 |
MOVX @Ri,A | CLR F1 | JBb adr | ANL OUTL BUS,A* | SEL MB1 |
MOVP3 A,@A | CPL F1 | Podprogramy | ANL BUS,#n | ENT0 CLK |
RETR** | ORL BUS,#n |