logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[prosba] Assembler: Pętla zmieniająca bit P1.0 co 4 cykle zegarowe, 8051 LED wąż

AruzO 22 Sty 2006 18:38 1268 1
REKLAMA
  • #1 2207637
    AruzO
    Poziom 1  
    Posty: 1
    witam !

    potrzebuje pomocy z tematem ktory mam do opracowania ale nie mam najbledszego pojecia jak sobie z tym poradzic. pomyslalem ze tutaj znajde napewno kogos kto znalby odpowiedzi na ponizsze pytnia. oto one:

    1) Napisz w asemblerze pętlę, w której będzie zmieniany bit 0 portu P1 (P1.0) na przeciwny dokładnie co 4 cykle zegarowe. Ten fragment programu nie może zająć więcej niż 8 bajtów pamięci programu.

    2) Napisz w assemlerze procedurę dającą efekt węża na diodach LED podłączonych do wszystkich ośmiu wyprowadzeń portu P1 mikrokontrolera 8051.

    3) W dowolnym języku programowania napisz fragment programu, który wykona się tylko pod warunkiem, że w rejestrze lub zmiennej A ustawione są dwa najmłodsze bity. Wartości pozostałych bitów nie mogą wpływać na decyzję.

    4) Napisz procedurę obracającą wał silnika krokowego o zadaną w jednym z rejestrów liczbę kroków. Silnik jest taki sam jak na ćwiczeniach - unipolarny, dwufazowy. Wszystkie 4 fazy są podłączone do wyprowadzeń czterech młodszych bitów portu P1.

    5) Mamy do dyspozycji silnik krokowy, który ma 200 kroków na pełny obrót. Mamy zadanie ustawić konkretny kąt w stopniach. Z jaką dokładnością to zrobimy, jeśli sterujemy silnik falowo (sterowanie jednofazowe)?

    6) Przedstaw w skrócie zastosowania przerwań sprzętowych. Jakie parametry należy ustalić po obu stronach komunikujących się poprzez interfejs RS232 urządzeń?

    z góry dziekuje za wszelka pomoc

    Pozdrowienia
  • REKLAMA
  • #2 2208744
    Dyrek
    Poziom 16  
    Posty: 129
    Pomógł: 21
    Ocena: 1
    Programów za ciebie nie napiszę ale dam podpowiedzi :) Załączam liste rozkazów dla 8051 (jakbyś jej jeszcze nie miał) są tam opisane cykle, ilość bajtów, składnia, argumenty itp, skorzystaj z niej i spróbuj sam rozwiązać problem :)

    Ad1 wykorzystaj rozkazy CPL, NOP oraz SJMP
    Ad2 tu nie jest sprecyzowane czy dioda ma przesuwać się cały czas w jedną stronę czy wracać gdy dojdzie do końca, tak czy siak należy wykorzystać rozkaz RR i/lub RL
    Ad3 rozkazem:
    ANL A,#11b
    wyodrębniamy dwa najmłodsze bity a potem wykorzystujemy rozkaz skoku warunkowego CJNE
    Ad4 powiedzmy że w R1 jest podana liczba kroków - wtedy używasz instrukcji DJNZ której argumentem jest R1, ale jeszcze musi być napisany kod wykonujący jeden krok - pomocny rozkaz RR lub RL
    Ad5 Nie bardzo się orientuję w nazewnictwie (falowo, jednofazowo) więc ci nie pomoge (360/200=1,8 ale to zbyt proste :) chyba chodzi o coś innego)
    Ad6 poszukaj literatury, specyfikacji w formie pdf'ów procesorów tej serii

    Sorki zapomniałem wczoraj dołączyć plik z listą rozkazów
    Załączniki:
    • listrozk.zip (43.04 KB) Musisz być zalogowany, aby pobrać ten załącznik.
REKLAMA