Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mikrokontroler DSM-51

10 Mar 2009 22:58 3703 5
  • Poziom 2  
    Witam,
    Mam do opracowania w sprawozdaniu pytanie o takiej treści: W jaki sposób rozróżnia się adres akumulatora od adresu poszczególnych bitów?

    Nie bardzo rozumiem o co chodzi w tym pytaniu, prosze o pomoc.
  • Poziom 31  
    W mikrokontrolerach '51 akumulator dostepny jest:

    1. jako rejest specjalny w instrukcjach arytmetyczno-logicznych - oznaczenie A,

    2. jako komórka o jakimś adresie w obszarze pamięci RAM (blok rejestrów specjalnych SFR) i dostępna w trybie adresacji bezpośredniej - oznaczenie ACC,

    3. dodatkowo można uzyskać dostęp do poszczególnych bitów w operacjach bitowych, mają własne adresy - oznaczenie od ACC.0 do ACC.7

    Tak rozumiem pytanie i mam nadzieje, że da się zrozumieć opis :)

    Pozdr!
  • Poziom 14  
    Cytat:
    W jaki sposób rozróżnia się adres akumulatora od adresu poszczególnych bitów?

    Asembler rozróżnia to po rozkazie.
    Np MOV E0,#0 -WPISZ DO KOMÓRKI E0 (AKUMULATOR) WARTOŚĆ 0
    CLR E0 - wyzeruj bit zerowy akumulatora.
    Czyli jeśli jest MOV to wiadomo ,że chodzi o wartość 8 bitową( jest 1 wyjątek od tej reguły)
    jeśli jest rozkaz CLR lub SETB to wiadomo, że chodzi o bit.
    I jeszcze jedno DSM-51 TO NIE JEST MIKROKONTROLER!!!!
    To Dydaktyczny System Mikroprocesorowy zbudowany do nauki programowania mikrokotrolerów z rodziny '51.

    Pozdrawiam

  • Poziom 37  
    Tylko rejestry o adresach podzielnych przez 8 można adresować bitowo.
    Np. mamy rejestr o adresie E0. Więc pierwszy bit ma adres - E0, drugi E1, trzeci E2... ósmy E7. Kolejny adres tj. E8 jest pierwszym bitem rejestru E8.
    Adresy bitowe dotyczą tylko instrukcji bitowych, w innych instrukcjach adres jest traktowany jako adres rejestru (8 bitów).
    Cała przestrzeń SFR można adresować bitowo - ale tylko adresy podzielne przez 8. Część dolnej pamięci RAM również można tak adresować - nie pamiętam do jakiego adresu.
  • Poziom 2  
    Witam, nie znalazłem tematu, który by pasował do mojego pytania, więc napisałem tu, jeśli w złym miejscu to proszę o przeniesienie.

    Podobnie jak Kolega wyżej mam do opracowania punkt w sprawozdaniu. Punkt ten brzmi: Na czym polega obsługa urządzeń zewnętrznych przez mikrokontroler po przeszukaniu wielu stron internetowych i opracowań skleciłem coś takiego: Mikrokontroler współpracuje z wieloma urządzeniami zewnętrznymi, które wymagają obsługi ze strony mikrokontrolera. W systemach pracujących w czasie rzeczywistym definiuje się maksymalny dopuszczalny czas oczekiwania urządzenia na obsługę. Dzięki mechanizmowi przerwań mikrokontroler jest wstanie zapewnić obsługę żądań zgłaszanych przez urządzenia zewnętrzne. Na sygnał przerwania pochodzący od urządzenia zewnętrznego mikrokontroler przerywa aktualnie wykonywany program i przechodzi do procedury obsługi przerwania. Po jej zakończeniu mikrokontroler wraca do poprzednio realizowanego programu. Oprócz przerwań wywoływanych przez urządzenia zewnętrzne, mikrokontrolery obsługują sytuacje nadzwyczajne powstające w wyniku realizacji programu lub wynikające ze specyficznych warunków pracy bloków funkcjonalnych układu.

    Niestety, przy oddaniu sprawozdania dr napisał przy tym punkcie: nie na temat.
    W zwiazku z powyższym zwracam się (do osób bardziej kompetetnych ode mnie, gdyż elektroniką się nie interesuje) z pytaniem, czy owe opracowanie jest błędne? Czy mogłby ktoś polecić jakąś ksiażke/strone/inne opracowanie, które mogło by mi wyjaśnic ten problem i napisać odpowiednią treść w tym punkcie.
    Byłbym wdzięczny za odpowiedź.
  • Poziom 31  
    No pewnie, że nie na temat (chociaż prawda). Generalnie chodzi (pewnie) o dostęp do urządzeń zewnętrznych poprzez zewnętrzną magistralę adresową/danych. 8051 ma 16 bitową magistralę adresową i 8-bitową magistralę danych (przy czym część magistrali adresowej jest multipleksowana z danymi). Procesor ma też kilka sygnałów sterujących (poczytaj o ALE, PSEN, oraz o WR i RD), które są wykorzystywane przy dostępie do zasobów zewnętrznych. Teraz konkrety. Jeżeli w systemie mamy kilka urządzeń zewnętrznych to możemy je "podłączyć" do dwukierunkowej magistrali danych (wszystkie równolegle !). Problem polega na tym, że na raz nie mogą te urządzenia korzystać z magistrali. Zwykle urządzenia zewnętrzne mają sygnał nazywany CE ("chip enable"), który zezwala na aktywność (w innym przypadku nogi urządzenia zewnętrznego będą (w wielu przypadkach) znajdować się w stanie wysokiej impedancji HiZ). Jak sterować CE -> najprościej robiąc dekoder adresu. Można to zrobić tak, że CE jest podłączone do określonej linii adresowej 8051. Zakładamy, że (przykładowo) jest to ostatnia linia. Co oznacza,że ustawienie 16 linii adresowej nastąpi przy ustawieniu adresu równego 8000H. Zapis do urządzenia może być realizowany za pomocą instrukcji MOVX @DPTR,A (gdy DPTR=8000H), odczyt MOVX A,@DPTR. Prosta komenda a powoduje wygenerowanie wielu potrzebnych sygnałów sprzętowych.
    Kolejna sprawa to kierunek (zapis odczyt). Jeżeli urządzenie ma linie WR i RD to muszą być odpowiednio podłączone do tych wyprowadzonych z 8051.

    Kombinacji jest na prawdę sporo. Ale nie wiem czy jeszcze ktoś odwołuje się do urządzeń używając magistrali równoległej. Nawet port LPT "upadł" pod wszechobecnym USB (szeregowym). Poza tym ilość linii ciągnącej się po całej płytce (+ zakłócenia) również odstrasza skutecznie.