Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Pracownia systemów mikroprocesorowych

Aro90ta
-
-
Posty:3
Rejestracja:31 sty 2010, o 20:49
Lokalizacja:Leszczyny
Pracownia systemów mikroprocesorowych

Postautor: Aro90ta » 31 sty 2010, o 20:54

Witam.
Z góry przepraszam, jak źle umieściłem temat, wybaczcie, ale właśnie się zarejestrowałem... Proszę Was bardzo o pomoc :(

Moim zadaniem (pracą semestralną) jest następujące ćwiczenie, w którym prosiłbym Was o wszelaką pomoc, czy to wskazówki do pisania programu, czy ogólne spostrzeżenia, jak to będzie "sobie działać" - na jakiej zasadzie.
Treść ćwiczenia:

"Napisać program powodujący miganie diody LED (segmentu LED) z włączeniem innej diody LED po naciśnięciu klawisza K0. Wykorzystać liczniki T0 i T1 oraz system przerwań."

Jestem w 4 klasie technikum, podstawy programowania mikrokontrolera 8051 w Asemblerze mam opanowane, ale ciężko mi ruszyć z tym...;]
Na swoim stanowisku pracuję na układzie SAB 80c535 i to na tym będę chciał przedstawić moją pracę. Będę wdzięczny za wszelaką pomoc!
Dziękuję z góry i pozdrawiam.

Awatar użytkownika
pajaczek
Moderator
Moderator
Posty:2653
Rejestracja:24 sty 2005, o 00:39
Lokalizacja:Winny gród

Postautor: pajaczek » 31 sty 2010, o 23:24

No dobrze, ale z czym właściwie masz problem.

Przyjrzyj się układowi, zobacz do jakich wyprowadzeń są podłączone diody, czy bezpośrednio czy przez tranzystory. Podanie jakiego stanu na wyprowadzenie spowoduje zapalenie/zgaszenie diody. Pozapalaj sobie i pogaś diody, później przeniesiesz to na timery.
Druga dioda, ta sterowana przyciskiem ma tylko świecić, nie migać? Więc zapewne timer przewidziany jest do eliminacji drgania styków.

Napisz może z czym masz problem, lub co już napisałeś to coś się ruszy dalej.

Aro90ta
-
-
Posty:3
Rejestracja:31 sty 2010, o 20:49
Lokalizacja:Leszczyny

Postautor: Aro90ta » 2 lut 2010, o 00:47

Obrazek

taki układzik.
hmm diody są bezpośrednio połączone z pinami portów.
Tzn np zmienialiśmy stan diody podając różne wartości na port (8 diod).
Programowo odnosząc się do portu bajtowo lub też pinowo.
problem w tym, że przerażają mnie te liczniki...
Nie macie może jakiegoś programu, którego można by skorygować, taki ogólny chodzi mi pod '51 aby jakość przedstawiał on działanie tego zadania ??
Ta dioda ma świecić, a gdy naciśniemy klawisz K0, to zaczyna świecić druga dioda, a ta pierwsza zaczyna migać i tu właśnie korzystamy z tego, że jak naciśniemy K0 to licznik T0 się przepełnia i zaczyna zliczać T1, z inna częstotliwością ?? A gdzie systemy przerwań ?? Przynajmniej narazie takie jest moje wyobrażenie...:( Kurcze zielono mi...;/ Jakby było trzeba to mogę zarzucić listeningi, które wykorzystywałem do pracy na diodach samych i klawiaturze tego układu. Proszę pomóżcie ! Pozdrawiam.

P.S. Na lekcji nie operowałem zbytnio licznikami na tym układzie...

Aro90ta
-
-
Posty:3
Rejestracja:31 sty 2010, o 20:49
Lokalizacja:Leszczyny

Postautor: Aro90ta » 6 mar 2010, o 17:20

Program ma dawać takie efekty:

Dioda D0 przez cały cykl miga sobie, nie zmieniając żadnej częstotliwości - zależna od licznika T0. Teraz problem zaczyna się wtedy, kiedy pod wpływem przerwania naciśnięcia klawisza K0 uruchamiamy licznik T1 i to on zapala diodę D1, która miga wolniej lub szybciej od D0 (efekt musi być widoczny naszymi oczyma pomiędzy diodami). Czyli jak nie ma przerwania z Klawisza - tylko D0 miga sobie wg licznika T0. Jest przerwanie - D0 ciągle tak samo + mamy włączenie T1, który taktuje miganie D1. T1 pracuje podczas trzymania K0, gdy puścimy go, D1 gaśnie - pozostaje nadal pracujący T0 z diodą D0.

Poniżej program, jaki do tej pory udało mi się napisać:

Kod: Zaznacz cały

MOV TMOD,#00010001B SETB TR0 SETB TR1 START: MOV P1,#00001111B BADANIE: JBC TF0,ZMIANA LJMP BADANIE ZMIANA: MOV P1,#11111111B MOV R2,#0 MOV R3,#0 ET: DJNZ R2,ET DJNZ R3,ET CLR TF0 LJMP START END
Program ten uruchamia licznik T0 i segment LED, który pokazuje efekt jego działania - miga prawidłowo. Teraz trzeba do programu dopiąć adres klawisza (0FFE2H) oraz trzeba skonfigurować licznik T1.
Mam możliwość na bieżąco testować układ, więc czekam na sugestie! :)
Bardzo mi zależy na tym, aby mieć jakieś wskazówki dotyczące tej konfiguracji. Na razie stoję w miejscu... Dzięki z góry za porady!
Pozdrawiam,
Aro90TA

Wróć do „8051”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości