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

Jak napisać program na mikrokontroler 8051 do sterowania światłami na przejściu?

zombiak18 28 Lut 2008 18:38 1535 10
REKLAMA
  • #1 4855846
    zombiak18
    Poziom 10  
    Posty: 5
    Wykorzystując mikrokontroler 8051 napisz program sterujący światłami na przejściu dla pieszych w stanie spoczynku

    świeci światło zielone dla samochodu czyli czerwone dla pieszych, po przeciśnięciu przycisku przez pieszego po 3

    sec następuje zmiana świateł: zapala sie zielone dla pieszego a czerwone dla samochodu. Stan ten trwa przez 15 sec.

    po tym czasie dla samochodów zapala sie światło żółte, a światło zielone dla pieszego zaczyna pulsować z

    częstotliwością 1hz. Po tym czasie stan wraca do stanu spoczynku. Zaprojektowanym systemie wykorzystać układ

    przerwań zewnętrznych.

    Dane od nauczyciela:
    żarówki pod dowolny port oprócz port 3. a port 3 szeregowy i podpięty pod przełącznik. Scom timer liczniki pracować

    w trybie 1 i zliczać 50ms ta czynność przez 20 razy powtórzyć wtedy uzyskamy 1sec czyli częstotliwość 1hz.






    Ktoś wie jak napisać program?? Był bym wdzięczny o jakakolwiek pomoc.
  • REKLAMA
  • #2 4855933
    Bigfoot
    Poziom 25  
    Posty: 982
    Pomógł: 74
    Ocena: 13
    Ja wiem bo sie uczylem - Ty nie wiesz bo sie nie uczyles. Rozwiazanie: zaczac sie uczyc.

    BF
  • REKLAMA
  • #3 4855961
    zombiak18
    Poziom 10  
    Posty: 5
    Tylko że to jest mój 1 miesiąc z programowaniem na asemblerze i zadnego pascala czy C++ nie mialem;/
  • #4 4856059
    oj
    Poziom 42  
    Posty: 6632
    Pomógł: 788
    Ocena: 480
    Uczysz się asemblera i w tym masz napisać oprogramowanie.

    Chyba już coś umiesz, wiec przedstaw chociaż kawałek programu.
  • REKLAMA
  • #5 4856089
    Bigfoot
    Poziom 25  
    Posty: 982
    Pomógł: 74
    Ocena: 13
    No to czego nie wiesz? Jakiej kwestii nie rozumiesz? W czym pomoc? Pokaz co juz napisales, opisz jaka masz idee rozwiazania, jaki wymysliles algorytm...

    BF
  • #6 4856106
    zombiak18
    Poziom 10  
    Posty: 5
    Algorytm:
    Start
    Zaprogramowac port szeregowy (w prostokącie)
    Zaprogramowac Timery-liczniki (w prostokącie)
    Ustawic stan spoczynku (w prostokącie)
    Czy wcisnieto klawisz (w rombie)
    jezeli tak
    Uruchom Timer-licznik (w prostokącie)
    Czy minelo 3 sec (w rombie)
    jezeli tak to w dol
    jezeli nie to czy znowu minely 3 sec

    Tylko tyle wiem ;/ wiem zalet ale inni z klasy tez tylko tyle zdołali zrobić
  • #7 4857586
    romsik
    Poziom 15  
    Posty: 116
    Pomógł: 5
    Ocena: 8
    po co Ci port szeregowy?
    Czy aby na pewno to mająbyć żarówki- (potrzebujesz schemat czy tylko program)? Musisz określić który pin portu będzie odpowiadał za które światło i jaki stan powoduje swiecenie światła.
    Potem musisz dla róznych stanów świecenia świateł przyporządkować stany portu. to dopiero początek do pracy koniec roku blisko!!!!!
  • REKLAMA
  • #8 4857978
    zombiak18
    Poziom 10  
    Posty: 5
    Powiem tak mając dobry algorytm resztę programu powinienem dać rade zrobić.

    i nie wiem czy mój początek algorytmu jest właściwy.

    Co do portu szeregowego to tak nauczyciel powiedział, chyba to jest jeden z sposobów zrobienia takiego zadania.
  • #9 4858448
    romsik
    Poziom 15  
    Posty: 116
    Pomógł: 5
    Ocena: 8
    człowieku weż kartke paieru i napisz :
    światło zielone dlal pieszych-P1.0
    światłoczerwone dla pieszych.......
    potem swiatło sie świeci Px.y=0
    potem stan1:
    auta jadą P=...
    stan2:
    ludzie idą itd jak w treści zadania
    potem poczytaj o układzie czasowo-licznikowym'51
    https://www.elektroda.pl/rtvforum/topic859628.html
    i przerwaniach
    i jak wtedy będziesz miał pytania to pogadamy

    aha i dopytaj jeszcze co z tym portem szeregowym, bo napisana treść zadania jest bardzo niejasna (przynajmniej dal mnie)
    powodzenia
  • #10 4859234
    zombiak18
    Poziom 10  
    Posty: 5
    Moim zdaniem pod port szeregowy P3.2 powinien być podpięty przełącznik.
    Timer ma sie uruchomić kiedy wciśniemy przycisk a zatrzymać sie po wyznaczonym czasie.
  • Pomocny post
    #11 4861958
    romsik
    Poziom 15  
    Posty: 116
    Pomógł: 5
    Ocena: 8
    http://www.atmel.com/dyn/resources/prod_documents/doc0368.pdf
    tutaj sprawdzisz, że P3.2 to nie"port szeregowy", a wejście przerwania zewnętrznego - dalej drąż treść zadania i męcz kartki swoimi zapiskami
    ja włączanie Timera 0 zrobiłbym tak


    ............
    org 03h
    setb tr0; włączenie zliczania czasu
    clr exo ; ; wyłączenie przerwania zewnętrego żeby nie przeszkadało jak jakis głupek będzie trzymał przycisk przy przejściu dal pieszych
    reti
    ...........

    powodzenia
    ps może warto poczytać książkę/: "programowanie mikrokontrolera 8051" P.P. Gałka

    Dodano po 1 [minuty]:

    http://www.atmel.com/dyn/resources/prod_documents/doc0368.pdf
    tutaj sprawdzisz, że P3.2 to nie"port szeregowy", a wejście przerwania zewnętrznego - dalej drąż treść zadania i męcz kartki swoimi zapiskami
    ja włączanie Timera 0 zrobiłbym tak


    ............
    org 03h
    setb tr0; włączenie zliczania czasu
    clr exo ; ; wyłączenie przerwania zewnętrego żeby nie przeszkadało jak jakis głupek będzie trzymał przycisk przy przejściu dal pieszych
    reti
    ...........

    powodzenia
    ps może warto poczytać książkę/: "programowanie mikrokontrolera 8051" P.P. Gałka

Podsumowanie tematu

✨ Dyskusja dotyczy napisania programu w asemblerze dla mikrokontrolera 8051, który steruje światłami na przejściu dla pieszych zgodnie z określonym algorytmem: w stanie spoczynku świeci zielone światło dla samochodów i czerwone dla pieszych; po naciśnięciu przycisku przez pieszego i odczekaniu 3 sekund następuje zmiana świateł na zielone dla pieszych i czerwone dla samochodów przez 15 sekund; następnie dla samochodów zapala się światło żółte, a zielone dla pieszych pulsuje z częstotliwością 1 Hz; po tym czasie system wraca do stanu spoczynku. W zadaniu należy wykorzystać przerwania zewnętrzne (wejście na P3.2) oraz timer/licznik w trybie 1 do odmierzania czasu (50 ms x 20 = 1 s). Dyskusja podkreśla konieczność przypisania konkretnych pinów portów (z wyłączeniem portu 3 dla żarówek) do poszczególnych świateł oraz wykorzystania przerwania zewnętrznego do wykrywania naciśnięcia przycisku. Uczestnicy sugerują rozpoczęcie od zaprojektowania algorytmu i mapowania pinów, a także studiowanie dokumentacji mikrokontrolera 8051, w tym obsługi timerów i przerwań. Podkreślono, że P3.2 to wejście przerwania zewnętrznego, a nie port szeregowy. Zaproponowano fragment kodu asemblerowego do włączenia timera i obsługi przerwania. Zalecane jest prowadzenie notatek i dalsze studiowanie materiałów, np. dokumentacji Atmel oraz książki "Programowanie mikrokontrolera 8051" autorstwa P.P. Gałki.
Wygenerowane przez model językowy.
REKLAMA