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

Asambler: Jak zaprogramować diodę LED na P1.7 mikrokontrolera 8051?

smiglo19900 14 Wrz 2009 16:47 2213 8
REKLAMA
  • #1 7016854
    smiglo19900
    Poziom 12  
    Posty: 74
    Ocena: 15
    Witam mam problem ponieważ chce w Asamblerze napisać program który zapala i gasi diode led połaczoną do P1.7 mikrokontrolera 8051 a dioda bedzie sie zapalać gdy na linii bedzie stan niski. Napisałem troche i niewiem czy to bedzie dobrze. Z góry dzieki za pomoc.

    ORG000H
    AJMP START
    ORG100H
    START:CLR P1.7
    MOV A,10
    LCALL DELAY_100 MS

    jakby miało być dalej?
  • REKLAMA
  • REKLAMA
  • #3 7017078
    rusala
    Poziom 22  
    Posty: 475
    Pomógł: 44
    Ocena: 6
    dalej SETB P1.7 ;-)
  • #5 7017581
    rusala
    Poziom 22  
    Posty: 475
    Pomógł: 44
    Ocena: 6
    no po CPL to w zadnym, ale jesli kolega chce uzywac CLR to i SETB jest na miejscu o ile doda sie drugie wywolanie opoznienia.
  • REKLAMA
  • #6 7017595
    smiglo19900
    Poziom 12  
    Posty: 74
    Ocena: 15
    Czyli obie są poprawne teraz?

    ORG000H
    AJMP START
    ORG100H
    START:CPL P1.7
    MOV A,10
    LCALL DELAY_100 MS
    SJMP START
    END

    ORG000H
    AJMP START
    ORG100H
    START:CLR P1.7
    MOV A,10
    LCALL DELAY_100 MS
    SJMP START
    START:SETB P1.7
    END
  • REKLAMA
  • Pomocny post
    #7 7017608
    rusala
    Poziom 22  
    Posty: 475
    Pomógł: 44
    Ocena: 6
    w przedostatniej linijce nie moze byc znowu START a po niej musialoby byc jeszcze raz wywolanie opoznienia czyli LCALL DELAY_100 MS
  • #8 7317305
    Plaxsimo
    Poziom 14  
    Posty: 102
    Pomógł: 5
    Ocena: 12
    progam mrugająca dioda
    do zestawu dydaktycznego DSM51

    LED EQU P1.7
    LJMP START
    ORG 100H
    START:

    LOOP:
    CLR LED
    MOV A,#10
    LCALL DELAY_100MS
    SETB LED
    MOV A,#10
    LCALL DELAY_100MS
    LJMP LOOP
  • #9 9364269
    Hektor666
    Poziom 2  
    Posty: 2
    Podpinam się pod temat z taką małą prośbą:
    mam do napisania program taki że jeśli w komórce 30H jest liczba parzysta dioda pod P1.7 ma zamrugać 5 razy w sekundowych odstepach a jeśli liczba jest nieparzysta to dioda ma nie mrugać. pomóżcie coś na to bo kombinuje i nie bardzo wiem jak to ugryźć

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy programowania diody LED podłączonej do portu P1.7 mikrokontrolera 8051 w asemblerze, gdzie dioda ma się zapalać przy stanie niskim na linii. Zaproponowano użycie instrukcji CPL P1.7 do przełączania stanu diody zamiast CLR, co pozwala na cykliczne miganie. Alternatywnie można stosować parę instrukcji CLR P1.7 i SETB P1.7 z odpowiednimi wywołaniami opóźnienia (LCALL DELAY_100MS) między nimi. Podkreślono konieczność poprawnego użycia etykiet i pętli, np. SJMP START lub LJMP LOOP, aby program działał w nieskończoność. Przykładowy kod mrugającej diody zawiera sekwencję CLR LED, opóźnienie, SETB LED, opóźnienie i powrót do początku pętli. W dyskusji pojawiła się także prośba o program sterujący miganiem diody w zależności od parzystości liczby w pamięci 30H, jednak bez rozwiązania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA